InclusionAI Ling 3.0
Ling 3.0 is InclusionAI's Mixture-of-Experts model family. It is called through /v1/chat/completions.
| Model | Context | Max output | Input / Cache read / Output ($/1M) |
|---|---|---|---|
inclusionai/ling-3.0-flash | 262,144 | 32,768 | 0.06 / 0.012 / 0.18 |
inclusionai/ling-3.0-tiny | — | — | retired 2026-08-15 |
Flash is the 124-billion-parameter model, activating roughly 5.1 billion parameters per token. It is tuned for token efficiency in agentic workloads and is metered.
It reasons by default and returns that chain separately in reasoning_content, while content carries the final answer.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "inclusionai/ling-3.0-flash", "messages": [ { "role": "user", "content": "Find the bug in this function." } ], "max_tokens": 8192 }'Ling 3.0 Flash: turning reasoning off
Section titled “Ling 3.0 Flash: turning reasoning off”On Flash, reasoning is controlled with reasoning_effort, and the only supported value is none. You can also append the :none suffix to the model id:
inclusionai/ling-3.0-flash -> reasoning on (default)inclusionai/ling-3.0-flash:none -> reasoning offcurl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "inclusionai/ling-3.0-flash", "messages": [{ "role": "user", "content": "What is 17 * 23?" }], "reasoning_effort": "none", "max_tokens": 512 }'Why only none is offered
Section titled “Why only none is offered”The provider also accepts minimal, low, medium, high, xhigh and max, but in measurement those values did not change reasoning length in any ordered way: across three samples per level on a fixed prompt, max produced 809-1366 characters of reasoning while medium produced 2323-4524. The ranges overlap, so they do not form a scale. Offering a level with no effect would leave you paying for reasoning tokens on a setting that changes nothing.
Requests that send a level other than none are therefore rejected with 400, and the error lists the supported values. For models with graded control, see Reasoning Effort.
The :fast and :think suffixes are not valid on Flash and return 400. Those suffixes belonged to the retired Tiny row.
Budgeting max_tokens with reasoning on
Section titled “Budgeting max_tokens with reasoning on”Reasoning tokens are output too, and they are returned inside completion_tokens. Flash can think at length on some prompts; in measurement, on some prompts the reasoning was written straight into content rather than reasoning_content and the response burned the whole budget, ending with finish_reason: "length". The same prompt answered correctly in a handful of tokens with reasoning_effort: "none".
When you need a short, direct answer, none is both faster and cheaper. When you do want reasoning, keep max_tokens generous — without going above 32,768.
Ling 3.0 Tiny has been retired
Section titled “Ling 3.0 Tiny has been retired”inclusionai/ling-3.0-tiny was retired on 2026-08-15. The provider withdrew the model from its own catalog; this was not an LLMTR decision and it is not reversible.
Requests for this identifier return 410 model_retired. The error body carries the retirement date and the model to use instead:
{ "error": { "message": "Model \"inclusionai/ling-3.0-tiny\" was retired on 2026-08-15. Use \"inclusionai/ling-3.0-flash\" instead.", "type": "model_retired", "details": { "model": "inclusionai/ling-3.0-tiny", "replacement_model": "inclusionai/ling-3.0-flash", "retirement_date": "2026-08-15" } }}Your requests are not silently forwarded to another model. Tiny was free and the suggested Flash is metered; a call you chose because it was free must not start being billed without your knowing. So you change the model id yourself.
If you need a free model, the catalog still carries free rows — they are shown with a "Free" label in the model list.
The :fast / :think suffixes and the reasoning boolean, both specific to Tiny, went with this row. Reasoning on Flash is controlled with reasoning_effort: "none" as described above.
Tool calling
Section titled “Tool calling”Flash supports native tool/function calling. You supply the tools array in standard OpenAI format, and all three forms of tool_choice work — auto, required, and a named function.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "inclusionai/ling-3.0-flash", "messages": [{ "role": "user", "content": "What is the weather in Istanbul?" }], "tools": [{ "type": "function", "function": { "name": "get_weather", "description": "Return the current weather for the given city.", "parameters": { "type": "object", "properties": { "city": { "type": "string" } }, "required": ["city"] } } }], "max_tokens": 4096 }'See Tool Calling for the general flow.
Prompt cache
Section titled “Prompt cache”When the same prefix is sent again, the provider may apply a prompt cache, and the number of tokens read from it is returned in usage.prompt_tokens_details.cached_tokens.
This is a direct cost saving: cached tokens are billed at $0.012 per 1M, a fifth of the normal input price. The difference is noticeable for agents that run with a long, fixed system prompt.
Cache hits are not guaranteed; when the same prefix is sent repeatedly the first call counts as warm-up and hits begin on later calls.
Unsupported inputs and outputs
Section titled “Unsupported inputs and outputs”Flash accepts text only. The following are rejected with 400:
- Image input (
image_urlcontent part) - Audio input (
input_audiocontent part) response_formatwithjson_objectorjson_schema
If you need schema-enforced JSON output, pick a model that supports it. You can ask this model for JSON in the prompt, but the format is not guaranteed.
Context and output limits
Section titled “Context and output limits”The context window is 262,144 tokens and a single response can be at most 32,768 tokens. Input and output share the same context budget, so do not set max_tokens to the full window.
When max_tokens (or max_completion_tokens) is above 32,768, LLMTR rejects the request with 400 invalid_request before it reaches the provider. The error body carries the limit and the value you sent:
{ "error": { "message": "\"inclusionai/ling-3.0-flash\" can return at most 32,768 tokens in one response, but \"max_tokens\" was 100,000. Lower it to 32,768 or below.", "type": "invalid_request", "details": { "reason": "max_output_tokens_exceeded", "field": "max_tokens", "requested": 100000, "maxOutputTokens": 32768 } }}Data handling
Section titled “Data handling”This model is not hosted in Turkey. Requests are processed on third-party infrastructure abroad, and prompts and completions may be logged by the provider. Do not send confidential or personal data.