API reference
Models
List the models Little Worker serves and read what each one can do and costs.
A model is the AI that does a worker's thinking. A worker names one in its model, or leaves it out and follows its Quality: Fast, Standard or Best. Each Quality picks one model, and a read of the worker answers the model its Quality picks now.
These routes list the models Little Worker serves, and read one. They need no worker and change nothing. The list is every model it can send a run to. On Little Worker's servers, that is the model of each Quality and the model that searches the web, best first. A Little Worker that runs on your own computer with its model router off lists one default model. So the list can differ from one Little Worker to another.
The model object
Both routes on this page answer a model, or a page of them. Times are RFC 3339 in UTC, to the millisecond.
Fields
typestringAlwaysmodel.idstringThe model's id, such asclaude-sonnet-5-5. It is themodel.idof a worker, and what a task'sworker.model.idanswers.display_namestringThe model's name as a person reads it. For a model whose name Little Worker does not hold, it is the id.created_attimeWhen the model was released. Little Worker does not hold release dates, so every model answers the epoch,1970-01-01T00:00:00.000Z.lifecyclestringWhere the model is in its life. Every model isactivetoday.One of
active,deprecated,retireddeprecated_attime or nullWhen the model was deprecated.nullwhile it isactive.retires_attime or nullWhen the model retires.nullwhen no date is set.linestring or nullThe Claude line the model belongs to, read from its id.nullfor any other model.One of
haiku,sonnet,opus,fable,mythosmax_input_tokensnumber or nullThe most tokens the model reads at once.null: Little Worker does not hold this fact.max_tokensnumber or nullThe most tokens the model writes in one answer.null: Little Worker does not hold this fact.allowed_fallback_modelsarray of strings or nullThe models that may stand in for this one.nulltoday.capabilitiesobjectWhat the model can do, in the shape of Claude's model list. Every key below is always there, and each one holdssupported. Little Worker holds the efforts of each model, soeffortis true to the model; every other capability readssupported: false, which means Little Worker does not claim it.Show its 11 fields
effortobjectThe efforts the model takes. A Claude model takeslowtomax, a Haiku model stops athigh, and any other model takeslowtoxhigh. Those other models also takenoneandminimalas a worker'smodel.effort, which this object has no key for.Show its 6 fields
lowobjectWhether the model takes theloweffort.Show its 1 fields
supportedbooleantruewhen it does.
mediumobjectWhether the model takes themediumeffort.Show its 1 fields
supportedbooleantruewhen it does.
highobjectWhether the model takes thehigheffort.Show its 1 fields
supportedbooleantruewhen it does.
xhighobjectWhether the model takes thexhigheffort.Show its 1 fields
supportedbooleantruewhen it does.
maxobjectWhether the model takes themaxeffort.Show its 1 fields
supportedbooleantruewhen it does.
supportedbooleantruewhen the model takes any effort.
batchobject{ supported }. Alwaysfalsetoday.citationsobject{ supported }. Alwaysfalsetoday.code_executionobject{ supported }. Alwaysfalsetoday.compactionobject{ summarize, supported }. Alwaysfalsetoday.context_managementobject{ clear_thinking_20251015, clear_tool_uses_20250919, compact_20260112, supported }. Alwaysfalsetoday.image_inputobject{ supported }. Alwaysfalsetoday.pdf_inputobject{ supported }. Alwaysfalsetoday.server_toolsobject{ code_execution, web_search, supported }. Alwaysfalsetoday.structured_outputsobject{ supported }. Alwaysfalsetoday.thinkingobject{ supported, types: { adaptive, disabled, enabled } }. Alwaysfalsetoday.
providerstringWho serves the model, read from its id.One of
anthropic,openai,openrouter,otherfast_modeobjectWhetherspeed: "fast"is honored on this model.falsefor every model today, so a fast worker runs at standard speed.Show its 1 fields
supportedbooleantruewhen it is.
region_pinobjectWhetherinference_geocan pin the region that serves the model.falsefor every model today.Show its 1 fields
supportedbooleantruewhen it can.
mid_task_system_messageobjectWhether asystem.messagesent in the middle of a task reaches the model in its own system role. It does for the Claude models Anthropic lists for it and for OpenAI's models, and not for any other model, OpenRouter's included.Show its 1 fields
supportedbooleantruewhen it does.
list_priceobject or nullWhat the model costs at list price.nullfor a model whose price Little Worker does not hold.Show its 5 fields
per_tokensintegerThe number of tokens each amount is for: always1000000000, a billion, so every price is whole cents.inputmoneyThe price of tokens the model reads.Show its 2 fields
amountstringWhole US cents, as a string, for theper_tokenstokens:"200000"is $2,000.00 for a billion tokens, or $2.00 for a million.currencystringAlwaysUSD.
outputmoneyThe price of tokens the model writes.Show its 2 fields
amountstringWhole US cents, as a string, for theper_tokenstokens:"200000"is $2,000.00 for a billion tokens, or $2.00 for a million.currencystringAlwaysUSD.
cache_readmoneyThe price of tokens read from the cache.Show its 2 fields
amountstringWhole US cents, as a string, for theper_tokenstokens:"200000"is $2,000.00 for a billion tokens, or $2.00 for a million.currencystringAlwaysUSD.
cache_writemoneyThe price of tokens written to the cache.Show its 2 fields
amountstringWhole US cents, as a string, for theper_tokenstokens:"200000"is $2,000.00 for a billion tokens, or $2.00 for a million.currencystringAlwaysUSD.
{
"type": "model",
"id": "claude-sonnet-5-5",
"display_name": "Claude Sonnet 5.5",
"created_at": "1970-01-01T00:00:00.000Z",
"lifecycle": "active",
"deprecated_at": null,
"retires_at": null,
"line": "sonnet",
"max_input_tokens": null,
"max_tokens": null,
"allowed_fallback_models": null,
"capabilities": {
"batch": {
"supported": false
},
"citations": {
"supported": false
},
"code_execution": {
"supported": false
},
"compaction": {
"summarize": {
"supported": false
},
"supported": false
},
"context_management": {
"clear_thinking_20251015": {
"supported": false
},
"clear_tool_uses_20250919": {
"supported": false
},
"compact_20260112": {
"supported": false
},
"supported": false
},
"image_input": {
"supported": false
},
"pdf_input": {
"supported": false
},
"server_tools": {
"code_execution": {
"supported": false
},
"web_search": {
"supported": false
},
"supported": false
},
"structured_outputs": {
"supported": false
},
"thinking": {
"supported": false,
"types": {
"adaptive": {
"supported": false
},
"disabled": {
"supported": false
},
"enabled": {
"supported": false
}
}
},
"effort": {
"low": {
"supported": true
},
"medium": {
"supported": true
},
"high": {
"supported": true
},
"xhigh": {
"supported": true
},
"max": {
"supported": true
},
"supported": true
}
},
"provider": "anthropic",
"fast_mode": {
"supported": false
},
"region_pin": {
"supported": false
},
"mid_task_system_message": {
"supported": true
},
"list_price": {
"per_tokens": 1000000000,
"input": {
"amount": "200000",
"currency": "USD"
},
"output": {
"amount": "1000000",
"currency": "USD"
},
"cache_read": {
"amount": "10000",
"currency": "USD"
},
"cache_write": {
"amount": "250000",
"currency": "USD"
}
}
}List models
GET/models
List the models, best first. A model list pages by model id, as Claude's does: send the last_id of a page as after_id for the next one, or the first_id as before_id for the one before.
Query parameters
limitintegerHow many to answer, 1 to 1,000. The default is 20.after_idstringA model id, 1 to 256 characters. The page starts just after this model. Send this orbefore_id, not both.before_idstringA model id, 1 to 256 characters. The page ends just before this model. Send this orafter_id, not both.lifecycle[]stringOnly models in this part of their life. Repeat it to name more than one, up to three.One of
active,deprecated,retired
Returns
A page: data holds the models, first_id and last_id are the ids of its first and last model (null when it is empty), and has_more says whether more models follow in the direction you read.
Errors
| Status | Type | When |
|---|---|---|
| 400 | invalid_request_error | A query value is not valid, such as a limit outside 1 to 1,000, an after_id or before_id over 256 characters, or more than three lifecycle[] values, or both after_id and before_id are sent (error_code validation_error). An after_id or before_id that names no model in the list as filtered is invalid_cursor. |
| 401 | authentication_error | The key is missing, removed, or not a key. Send it in x-api-key. |
| 429 | rate_limit_error | The workspace made too many requests this minute. Wait the seconds in Retry-After, then try again. |
curl "https://core.thelittleworker.com/api/v1/models?limit=2" \
-H "x-api-key: $LITTLE_WORKER_API_KEY" \
-H "Little-Worker-Version: 2026-10-19"const response = await fetch("https://core.thelittleworker.com/api/v1/models?limit=2", {
headers: {
"x-api-key": process.env.LITTLE_WORKER_API_KEY,
"Little-Worker-Version": "2026-10-19",
},
})
const models = await response.json()import os
import requests
response = requests.get(
"https://core.thelittleworker.com/api/v1/models",
headers={
"x-api-key": os.environ["LITTLE_WORKER_API_KEY"],
"Little-Worker-Version": "2026-10-19",
},
params={
"limit": "2",
},
)
models = response.json(){
"data": [
{
"type": "model",
"id": "claude-sonnet-5-5",
"display_name": "Claude Sonnet 5.5",
"created_at": "1970-01-01T00:00:00.000Z",
"lifecycle": "active",
"deprecated_at": null,
"retires_at": null,
"line": "sonnet",
"max_input_tokens": null,
"max_tokens": null,
"allowed_fallback_models": null,
"capabilities": {
"batch": {
"supported": false
},
"citations": {
"supported": false
},
"code_execution": {
"supported": false
},
"compaction": {
"summarize": {
"supported": false
},
"supported": false
},
"context_management": {
"clear_thinking_20251015": {
"supported": false
},
"clear_tool_uses_20250919": {
"supported": false
},
"compact_20260112": {
"supported": false
},
"supported": false
},
"image_input": {
"supported": false
},
"pdf_input": {
"supported": false
},
"server_tools": {
"code_execution": {
"supported": false
},
"web_search": {
"supported": false
},
"supported": false
},
"structured_outputs": {
"supported": false
},
"thinking": {
"supported": false,
"types": {
"adaptive": {
"supported": false
},
"disabled": {
"supported": false
},
"enabled": {
"supported": false
}
}
},
"effort": {
"low": {
"supported": true
},
"medium": {
"supported": true
},
"high": {
"supported": true
},
"xhigh": {
"supported": true
},
"max": {
"supported": true
},
"supported": true
}
},
"provider": "anthropic",
"fast_mode": {
"supported": false
},
"region_pin": {
"supported": false
},
"mid_task_system_message": {
"supported": true
},
"list_price": {
"per_tokens": 1000000000,
"input": {
"amount": "200000",
"currency": "USD"
},
"output": {
"amount": "1000000",
"currency": "USD"
},
"cache_read": {
"amount": "10000",
"currency": "USD"
},
"cache_write": {
"amount": "250000",
"currency": "USD"
}
}
},
{
"type": "model",
"id": "claude-haiku-5-5",
"display_name": "Claude Haiku 5.5",
"created_at": "1970-01-01T00:00:00.000Z",
"lifecycle": "active",
"deprecated_at": null,
"retires_at": null,
"line": "haiku",
"max_input_tokens": null,
"max_tokens": null,
"allowed_fallback_models": null,
"capabilities": {
"batch": {
"supported": false
},
"citations": {
"supported": false
},
"code_execution": {
"supported": false
},
"compaction": {
"summarize": {
"supported": false
},
"supported": false
},
"context_management": {
"clear_thinking_20251015": {
"supported": false
},
"clear_tool_uses_20250919": {
"supported": false
},
"compact_20260112": {
"supported": false
},
"supported": false
},
"image_input": {
"supported": false
},
"pdf_input": {
"supported": false
},
"server_tools": {
"code_execution": {
"supported": false
},
"web_search": {
"supported": false
},
"supported": false
},
"structured_outputs": {
"supported": false
},
"thinking": {
"supported": false,
"types": {
"adaptive": {
"supported": false
},
"disabled": {
"supported": false
},
"enabled": {
"supported": false
}
}
},
"effort": {
"low": {
"supported": true
},
"medium": {
"supported": true
},
"high": {
"supported": true
},
"xhigh": {
"supported": false
},
"max": {
"supported": false
},
"supported": true
}
},
"provider": "anthropic",
"fast_mode": {
"supported": false
},
"region_pin": {
"supported": false
},
"mid_task_system_message": {
"supported": true
},
"list_price": {
"per_tokens": 1000000000,
"input": {
"amount": "10000",
"currency": "USD"
},
"output": {
"amount": "50000",
"currency": "USD"
},
"cache_read": {
"amount": "1000",
"currency": "USD"
},
"cache_write": {
"amount": "12500",
"currency": "USD"
}
}
}
],
"first_id": "claude-sonnet-5-5",
"has_more": true,
"last_id": "claude-haiku-5-5"
}Read a model
GET/models/{model_id}
Read one model. The answer is the model's entry in the list.
Path parameters
model_idstringRequiredThe model's id, 1 to 256 characters, such asclaude-sonnet-5-5.
Returns
The model.
Errors
| Status | Type | When |
|---|---|---|
| 400 | invalid_request_error | model_id is longer than 256 characters (error_code validation_error). |
| 401 | authentication_error | The key is missing, removed, or not a key. Send it in x-api-key. |
| 404 | not_found_error | Little Worker does not serve a model with this id (Model not found.). List the models to see the ones it does. |
| 429 | rate_limit_error | The workspace made too many requests this minute. Wait the seconds in Retry-After, then try again. |
curl https://core.thelittleworker.com/api/v1/models/claude-sonnet-5-5 \
-H "x-api-key: $LITTLE_WORKER_API_KEY" \
-H "Little-Worker-Version: 2026-10-19"const response = await fetch("https://core.thelittleworker.com/api/v1/models/claude-sonnet-5-5", {
headers: {
"x-api-key": process.env.LITTLE_WORKER_API_KEY,
"Little-Worker-Version": "2026-10-19",
},
})
const model = await response.json()import os
import requests
response = requests.get(
"https://core.thelittleworker.com/api/v1/models/claude-sonnet-5-5",
headers={
"x-api-key": os.environ["LITTLE_WORKER_API_KEY"],
"Little-Worker-Version": "2026-10-19",
},
)
model = response.json(){
"type": "model",
"id": "claude-sonnet-5-5",
"display_name": "Claude Sonnet 5.5",
"created_at": "1970-01-01T00:00:00.000Z",
"lifecycle": "active",
"deprecated_at": null,
"retires_at": null,
"line": "sonnet",
"max_input_tokens": null,
"max_tokens": null,
"allowed_fallback_models": null,
"capabilities": {
"batch": {
"supported": false
},
"citations": {
"supported": false
},
"code_execution": {
"supported": false
},
"compaction": {
"summarize": {
"supported": false
},
"supported": false
},
"context_management": {
"clear_thinking_20251015": {
"supported": false
},
"clear_tool_uses_20250919": {
"supported": false
},
"compact_20260112": {
"supported": false
},
"supported": false
},
"image_input": {
"supported": false
},
"pdf_input": {
"supported": false
},
"server_tools": {
"code_execution": {
"supported": false
},
"web_search": {
"supported": false
},
"supported": false
},
"structured_outputs": {
"supported": false
},
"thinking": {
"supported": false,
"types": {
"adaptive": {
"supported": false
},
"disabled": {
"supported": false
},
"enabled": {
"supported": false
}
}
},
"effort": {
"low": {
"supported": true
},
"medium": {
"supported": true
},
"high": {
"supported": true
},
"xhigh": {
"supported": true
},
"max": {
"supported": true
},
"supported": true
}
},
"provider": "anthropic",
"fast_mode": {
"supported": false
},
"region_pin": {
"supported": false
},
"mid_task_system_message": {
"supported": true
},
"list_price": {
"per_tokens": 1000000000,
"input": {
"amount": "200000",
"currency": "USD"
},
"output": {
"amount": "1000000",
"currency": "USD"
},
"cache_read": {
"amount": "10000",
"currency": "USD"
},
"cache_write": {
"amount": "250000",
"currency": "USD"
}
}
}