Skip to content

InclusionAI Ling 3.0

Ling 3.0 is InclusionAI's Mixture-of-Experts model family. It is called through /v1/chat/completions.

ModelContextMax outputInput / Cache read / Output ($/1M)
inclusionai/ling-3.0-flash262,14432,7680.06 / 0.012 / 0.18
inclusionai/ling-3.0-tinyretired 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.

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

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 off
Terminal window
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 17 * 23?" }],
"reasoning_effort": "none",
"max_tokens": 512
}'

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.

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.

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.

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.

Terminal window
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.

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.

Flash accepts text only. The following are rejected with 400:

  • Image input (image_url content part)
  • Audio input (input_audio content part)
  • response_format with json_object or json_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.

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

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.