Skip to content

Thinking Machines Inkling

Inkling is Thinking Machines’ flagship open-weights model: a Mixture-of-Experts architecture with 975 billion total and 41 billion active parameters per token. It reasons step by step before answering, and that effort is adjustable per request. It is called through /v1/chat/completions with the thinkingmachines/inkling canonical model id.

ModelContextInput / Cache Read / Output ($/1M)
thinkingmachines/inkling64KSee pricing note
Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "thinkingmachines/inkling",
"messages": [
{ "role": "user", "content": "Write a short haiku." }
],
"max_tokens": 1024
}'

Inkling has reasoning on by default and thinks before answering on every request. You control the effort with the reasoning_effort field; the valid values are six levels: none, minimal, low, medium, high, xhigh. none turns reasoning off entirely.

Effort can also be passed as a suffix on the model id:

thinkingmachines/inkling -> default (reasoning on)
thinkingmachines/inkling:none -> reasoning off
thinkingmachines/inkling:high -> high effort
thinkingmachines/inkling:xhigh -> highest effort
Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "thinkingmachines/inkling",
"messages": [{ "role": "user", "content": "What is 17 * 23?" }],
"reasoning_effort": "none",
"max_tokens": 256
}'

Reasoning tokens are returned inside completion_tokens and billed as output (not billed separately). The practical consequence: if max_tokens is very small, the budget can be consumed during the reasoning phase, leaving content empty and finish_reason set to length. Keep max_tokens generous even for short answers. See Reasoning Effort for details.

A boolean reasoning field is not supported; to turn reasoning off, use reasoning_effort: "none" (or the :none suffix).

Inkling accepts images only as base64 data URLs (data:image/...;base64,...). Remote http(s) image URLs are not supported and are rejected with 400. Audio input is not accepted through this endpoint.

Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "thinkingmachines/inkling",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Name the dominant color in this image." },
{ "type": "image_url", "image_url": { "url": "data:image/png;base64,<base64>" } }
]
}
],
"max_tokens": 512
}'

Standard OpenAI tools / tool_choice fields are supported (auto and required). When the model calls a tool, finish_reason is tool_calls and content is empty. See Tool Calling for the general flow.

response_format: { "type": "json_object" } is supported and returns a valid JSON object. json_schema (strict schema enforcement) is not honored on this endpoint.

Re-sending the same prompt prefix triggers a prompt-cache read; usage.prompt_tokens_details.cached_tokens is populated and those tokens are billed at the cache-read price. The cache warms after a few requests. There is no cache-write fee.

Inkling is priced with a limited-time launch discount; after the discount window ends the price automatically switches to the list price. The current input, cache-read, and output prices are shown on the model detail page. No platform margin is added to model prices; the margin applies only when adding credit.