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. Inkling Small offers the same architecture and the same capabilities with 276 billion total and 12 billion active parameters, at roughly a third of the price. Both reason step by step before answering, and that effort is adjustable per request. They are called through /v1/chat/completions.

| Model | Context | Input / Cache Read / Output ($/1M) | |---|---|---| | thinkingmachines/inkling | 256K | See pricing note | | thinkingmachines/inkling-small | 256K | See pricing note |

The two models share one capability set, so every example on this page works with either. Prefer Inkling Small for high-volume work and Inkling when you need the highest quality.

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).

Both models accept images only as base64 data URLs (data:image/...;base64,...). Remote http(s) image URLs are not supported and are rejected with 400.

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
}'

Both models accept audio input. Send it as an input_audio content part with base64-encoded WAV (16 kHz mono recommended):

Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "thinkingmachines/inkling-small",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What do you hear in this recording?" },
{ "type": "input_audio", "input_audio": { "data": "<base64-wav>", "format": "wav" } }
]
}
],
"max_tokens": 512
}'

An empty WAV (one with no frames) is rejected with 400. Audio tokens are billed as input.

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.

Both models accept prompts of up to 262,144 tokens in a single request. Requests above that limit are rejected by the gateway.

Both models are billed at the discounted rate for as long as the provider's limited-time launch discount runs; when it ends, the price returns to the list price. Inkling Small is roughly a third of Inkling's 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.