Capabilities
What each model can do through the API, model by model: tools, image input, reasoning, JSON output, prompt caching, web search and streaming.
Every model is reached through the same three endpoints with the same key. The two tables show where the models differ. A dash means the model answers without that capability.
Shannon models
| Model | Tools | Images | Reasoning | Effort | JSON object | JSON schema | Caching | Search | Streaming |
|---|---|---|---|---|---|---|---|---|---|
shannon-1.6-lite | Yes | Yes | — | — | Yes | Yes | — | Yes | Yes |
shannon-1.6-pro | Yes | Yes | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-2-lite | Yes | — | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-2-pro | Yes | — | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-3 | Yes | Yes | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-3-pro | Yes | Yes | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-3.1 | Yes | Yes | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-3.1-pro | Yes | Yes | Yes | — | Yes | Yes | — | Yes | Yes |
shannon-3.5 | Yes | — | — | — | Yes | Yes | — | — | Yes |
shannon-coder-1 | Yes | — | Yes | — | Yes | Yes | — | — | Yes |
Hosted open-weight models
The id of a hosted model is its name and its variant joined by a hyphen, for example DeepSeek-V4-Pro-0813-3BIT-REAP.
| Model | Tools | Images | Reasoning | Effort | JSON object | JSON schema | Caching | Search | Streaming |
|---|---|---|---|---|---|---|---|---|---|
DeepSeek-V4-Pro-0813 3BIT-REAP | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
GLM-5.2 3BIT-REAP | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
Kimi-K3 3BIT-REAP | Yes | Yes | Yes | Yes | Yes | Yes | Yes | — | Yes |
Nemotron3Ultra 3BIT-REAP | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
MiniMax-M3 3BIT-REAP | Yes | Yes | Yes | Yes | Yes | Yes | Yes | — | Yes |
DeepSeek-V4-Flash-0731 W4A16-AUTOROUND-REAP | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
Kimi-K2.6 W4A16-AUTOROUND-REAP | Yes | Yes | Yes | Yes | Yes | Yes | Yes | — | Yes |
Laguna-S-2.1 W4A16-AUTOROUND-REAP | Yes | — | Yes | Yes | — | — | Yes | — | Yes |
inkling W4A16-AUTOROUND-REAP | Yes | Yes | Yes | Yes | Yes | — | Yes | — | Yes |
MiMo-V2.5-Pro W8A16 | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
MiMo-V2.5 W8A16 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | — | Yes |
Hy3 W8A16 | Yes | — | Yes | Yes | Yes | Yes | Yes | — | Yes |
What each column means
- Tools. You describe functions in
tools, the model replies with the calls it wants made, and your code runs them. Every model takes tools. A forcedtool_choiceis applied by the hosted open-weight models. Function Calling - Image input. The model reads images sent inside a user message, as a data URL or as an address.
shannon-2-liteandshannon-2-proread images in requests that also sendtoolsorresponse_format. The Shannon 3 family reads documents as well. Images and files - Reasoning. The reply can carry the reasoning text of the model next to the answer, in a field of its own. Reasoning effort
- Reasoning effort. A request field sets how deeply the model reasons:
off,low,mediumorhigh. The Shannon models set their own depth. Reasoning effort - JSON object. With
response_format: {"type": "json_object"}the answer is JSON without a prescribed shape. On/v1/chat/completionsand/v1/responses. Structured Outputs - JSON schema. With
response_formatof typejson_schemathe answer follows a schema you send. On/v1/chat/completionsand/v1/responses. Structured Outputs - Prompt caching. A prompt that starts like a recent one on the same model is read from cache, and the cached part is billed at 25% of the input price. It needs no request field. Prompt caching
- Web search. With
web_search: truethe API searches the web and gives the results to the model before it answers. On/v1/chat/completionsand/v1/messages. It is a field of the request and has no flag inGET /v1/models. Built-in Web Search - Streaming. With
stream: truethe reply arrives as server-sent events while the model writes. Every model streams on all three endpoints. Streaming
The same facts from GET /v1/models
GET https://api.shannon-ai.com/v1/models
GET /v1/models lists every model with a capabilities object, so a program can read these facts instead of this page. The endpoint needs no key.
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
for model in client.models.list():
print(model.id, getattr(model, "capabilities", None)) import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
for await (const model of client.models.list()) {
console.log(model.id, model.capabilities);
} curl https://api.shannon-ai.com/v1/models The id and capabilities of two entries of data:
[
{
"id": "shannon-3",
"capabilities": {
"tools": true,
"vision": true,
"reasoning": true,
"reasoning_effort": false,
"streaming": true,
"json_schema": true
}
},
{
"id": "Kimi-K3-3BIT-REAP",
"capabilities": {
"tools": true,
"vision": true,
"reasoning": true,
"reasoning_effort": true,
"streaming": true,
"response_format": true,
"json_schema": true,
"prompt_caching": true
}
}
] | Column | Flag in capabilities |
|---|---|
| Tools | tools |
| Image input | vision |
| Reasoning | reasoning |
| Reasoning effort | reasoning_effort |
| JSON object | response_format |
| JSON schema | json_schema |
| Prompt caching | prompt_caching |
| Web search | Not a flag: the request field web_search. |
| Streaming | streaming |
response_formatandprompt_cachingare flags of the hosted open-weight entries. A Shannon entry reports JSON output withjson_schemaalone, which stands for both JSON modes.visionistrueforshannon-2-liteandshannon-2-pro: they read images in requests that also sendtoolsorresponse_format.
Outside a model's row
A hosted open-weight model refuses an image or a JSON mode that is outside its row. The refusal comes before anything is drawn from your balance:
| Status | Type | Message | When |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | An image was sent to a hosted open-weight model without image input. |
400 | invalid_request_error | <id> does not accept response_format | JSON output was asked of a hosted open-weight model that has neither JSON mode. |
400 | invalid_request_error | <id> does not accept response_format json_schema; use json_object | A schema was sent to a hosted open-weight model that has JSON object mode only. |
A Shannon model answers such a request with status 200: the capability outside its row takes no part in the answer. Error Handling