One endpoint · long-running tasks · economic work

Long tasks, finished.
Economic work that keeps going.

task-models.com runs long tasks for economic activity: research, analysis, operations, drafting, and planning. DeepSeek V4.1 Flash starts the task and streams the work. If it stops on a benign request, that stop is held and Continuation finishes from the draft. Continuation is a controlled abliterated model: it can finish work the official model stopped, and the gateway runs it only when the task check says the request is benign. A dangerous request keeps the official stop. You pay one spot price, a bit above the official model, because that abliterated model runs only when a benign task stops early.

Spot · input
$0.42
output
$1.68
one spot · output
$1.68

USD per 1M tokens · updated 36m ago · all prices

merge · streaming DeepSeek V4.1 FlashContinuation
official modeltask checkcontrolled abliterated

How a long task is finished

The official model starts the task

Every task starts on DeepSeek V4.1 Flash. Clean text is released in small pieces. A phrase that looks like an early stop is held.

Two questions, only then

The classifier runs only on that held prefix. It must say the draft stopped the task and the request is benign economic work. Serious, unclear, an error, or a timeout keeps the official stop. This check cannot be turned off.

The stop is not the answer

Continuation is a controlled abliterated model. The official stream is cancelled, it receives the conversation and the draft as private thinking, and it finishes the task. Text you already saw stays on screen. It does not run when the request is dangerous.

When a task continues

false_refusaltask continues

The draft stops a benign task: it declines, apologizes without answering, cites a policy, or asks you to confirm a suspicion.

seriousofficial stop stands

Concrete help with sexual content involving anyone under 18, violent crime, explosives or chemical, biological, or nuclear weapons, pathogens or toxins, offensive cyber, fraud, or a method for self-harm.

unclearofficial stop stands

The classifier cannot tell, part of the request is serious, or the check errors or times out. The task stays on the official model.

Spot price

Prices follow what the underlying models cost on the open market and can change at any time. Each request is billed at the price that was live when it started. Prepaid: top up with a card, pay per token.

Input
$0.42 / 1M
Cached input
$0.042 / 1M
Output
$1.68 / 1M
Continuation input
$1.47 / 1M
Continuation output
$4.41 / 1M

Output price history

last 1 changes

Live feed: GET https://task-models.com/v1/pricing

What you pay for

  • Input and output: your prompt and the tokens delivered to you, including a continuation that finishes the task. One spot, on merge.
  • Continuation rates are for the controlled abliterated model. They apply only to merge-pro, which runs it from the first token. Finishing a stopped task on merge stays on the one spot.
  • The classifier and the continuation tokens on a finished task are included. Failed requests are free.

Models

mergefinishes long tasks

DeepSeek V4.1 Flash starts the task. Continuation, a controlled abliterated model, finishes it only when a benign task stops early. The default. One spot price.

merge-fastofficial only

DeepSeek V4.1 Flash with no continuation, at the same spot. A stop stays a stop.

merge-procontinuation only

The controlled abliterated model from the first token, at the continuation rates. On merge the same model is used only after a benign stop.

Quickstart

curl

curl https://task-models.com/v1/chat/completions \
  -H "Authorization: Bearer $MM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "merge", "stream": true,
       "messages": [{"role": "user",
         "content": "Write a 90-day operating plan for a three-person logistics desk."}]}'

Python (OpenAI SDK)

from openai import OpenAI
client = OpenAI(base_url="https://task-models.com/v1",
                api_key=os.environ["MM_API_KEY"])
stream = client.chat.completions.create(
    model="merge", stream=True,
    messages=[{"role": "user", "content": "..."}])
for chunk in stream:
    mm = getattr(chunk, "mergemodels", None)  # swap events
    ...

Last 7 days: 1 tasks, 0 finished after an early stop.