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.
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 }'Reasoning effort
Section titled “Reasoning effort”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 offthinkingmachines/inkling:high -> high effortthinkingmachines/inkling:xhigh -> highest effortcurl "$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).
Image input
Section titled “Image input”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.
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 }'Audio input
Section titled “Audio input”Both models accept audio input. Send it as an input_audio content part with base64-encoded WAV (16 kHz mono recommended):
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.
Tool calling
Section titled “Tool calling”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.
JSON output
Section titled “JSON output”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.
Context window
Section titled “Context window”Both models accept prompts of up to 262,144 tokens in a single request. Requests above that limit are rejected by the gateway.
Pricing note
Section titled “Pricing note”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.