Skip to content
Models & pricing

Models & pricing

PER 1M TOKENS

Every model id of the API, what it accepts and what it costs: 10 Shannon models and 12 hosted open-weight models, each available on all three endpoints. GET /v1/models returns the same list as JSON.

uncensored models
22
context window
256K
from
$0.50 /1M

Hosted open-weight models

262,144-token context on every id; input and output billed separately; each id accepts what the model it imitates accepts

ModelInputStructured outputIn / cached / out per 1MMore
DeepSeek-V4-Pro-08133BIT-REAPDeepSeek · 1.6T MoE · 49B activeUncensoredText inJSON schema$1.95 / $0.488 / $3.90
GLM-5.23BIT-REAPZ.ai · 744B MoE · 40B activeUncensoredText inJSON schema$0.73 / $0.183 / $2.34
Kimi-K33BIT-REAPMoonshot AI · 2.8T MoE · 104B activeUncensoredText + image inJSON schema$3.83 / $0.958 / $19.12
Nemotron3Ultra3BIT-REAPNVIDIA · 550B hybrid Mamba-Attention MoE · 55B activeUncensoredText inJSON schema$0.75 / $0.188 / $3.30
MiniMax-M33BIT-REAPMiniMax · 428B MoE · 23B active · sparse attentionUncensoredText + image inJSON schema$0.50 / $0.125 / $2.00
DeepSeek-V4-Flash-0731W4A16-AUTOROUND-REAPDeepSeek · 284B MoE · 13B activeUncensoredText inJSON schema$0.50 / $0.125 / $2.00
Kimi-K2.6W4A16-AUTOROUND-REAPMoonshot AI · 1T MoE · 32B activeUncensoredText + image inJSON schema$0.78 / $0.195 / $3.67
Laguna-S-2.1W4A16-AUTOROUND-REAPPoolside · 118B MoE · 8B activeUncensoredText inNo structured output$0.50 / $0.125 / $2.00
inklingW4A16-AUTOROUND-REAPThinking Machines · 975B MoE · 41B activeUncensoredText + image inJSON object$1.42 / $0.355 / $6.07
MiMo-V2.5-ProW8A16Xiaomi · 1.02T MoE · 42B active · 8-bitUncensoredText inJSON schema$0.50 / $0.125 / $2.00
MiMo-V2.5W8A16Xiaomi · 8-bit multimodal · W8A16UncensoredText + image inJSON schema$0.50 / $0.125 / $2.00
Hy3W8A16Tencent · 295B MoE · 21B active · 8-bitUncensoredText inJSON schema$0.50 / $0.125 / $2.00

Shannon models

one flat rate for input and output

ModelContextInputStructured outputPrice / 1M tokens
Shannon 1.6 Liteshannon-1.6-liteUncensored192KText + image inJSON schema$3.90
Shannon 1.6 Proshannon-1.6-proUncensored192KText + image inJSON schema$7.80
Shannon 2 Liteshannon-2-liteUncensored192KText + image inJSON schema$3.90
Shannon 2 Proshannon-2-proUncensored192KText + image inJSON schema$5.85
Shannon 3shannon-3Uncensored192KText + image inJSON schema$3.35
Shannon 3 Proshannon-3-proUncensored192KText + image inJSON schema$3.35
Shannon 3.1shannon-3.1Uncensored192KText + image inJSON schema$3.35
Shannon 3.1 Proshannon-3.1-proUncensored192KText + image inJSON schema$3.35
Shannon 3.5shannon-3.5Uncensored192KText + image inJSON schema$3.35
Shannon Coder 1shannon-coder-1Uncensored128KText inJSON schema$8.00

Jump to Quickstart Try Playground

How to read a row

Column What it says
Model The name for display. The line under it is the id you send as model. In the hosted table the id is the name and the tag beside it, joined by a hyphen: MiniMax-M3 and 3BIT-REAP make MiniMax-M3-3BIT-REAP. The line under the name shows who made the model and its size.
Context The context window: how many tokens of conversation the model reads. K stands for 1,024 tokens. The exact number is context_window in GET /v1/models.
Input Text only, or text and images. A model that reads images reports capabilities.vision: true. shannon-2-lite and shannon-2-pro read images in requests that also send tools or response_format.
Structured output What response_format can ask of the model: an answer that follows your JSON schema, an answer that is a JSON object, or neither.
Price USD per 1,000,000 tokens. A Shannon model has one price for input and output. A hosted open-weight model has three: input, cached input and output.

Every model streams and can call tools. The other features of the API are described on the Capabilities page. Capabilities

Context window and output limits

  • The context window covers everything the model reads for one answer: your messages, tool definitions and images.
  • The Shannon 3 family fits a longer conversation by itself: it keeps the newest turns that fit into the window and answers.
  • In a stream, a prompt that is too long is reported as an error frame with type invalid_request_error and code: "context_length_exceeded".
  • max_tokens takes values from 1 to 65,536 on every model; max_output_tokens in GET /v1/models is the top of that range. The default is 4,096.
  • On every model, max_tokens is the amount a request reserves from your balance.
  • As the limit on the length of the answer, max_tokens is applied by the hosted open-weight models, shannon-1.6-lite, shannon-1.6-pro and shannon-coder-1.
  • On the hosted open-weight models it limits the answer text. The reasoning before the answer is not counted against it, and a value below 256 acts as 256.
  • A stream of shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 or the Shannon 3 family ends with finish_reason: "length" when the answer was cut at its limit.

Limits and balance

How a price is formed

  • Prices are in USD per 1,000,000 tokens. Your balance is counted in tokens worth $5.00 per 1,000,000, so a model's price says how much balance its tokens take.
  • Shannon models have one price. A call is charged usage.total_tokens at that price.
  • Hosted open-weight models have three prices. Input that is read from the prompt cache is charged at the cached price, which is 25% of the input price rounded to $0.001. The rest of the input is charged at the input price, the output at the output price.
  • Hosted open-weight models count tokens with each model's own tokenizer. GET /v1/models marks this as tokenizer: "original".
  • shannon-coder-1 is counted in calls, not tokens, on /v1/chat/completions and /v1/messages. Its listed price applies on /v1/responses.

What a request reserves, worked examples of a charge and the Shannon Coder call allowance are on Limits and balance. Limits and balance

Model ids

Send one of these ids as model.

Model ids
shannon-1.6-lite
shannon-1.6-pro
shannon-2-lite
shannon-2-pro
shannon-3
shannon-3-pro
shannon-3.1
shannon-3.1-pro
shannon-3.5
shannon-coder-1
DeepSeek-V4-Pro-0813-3BIT-REAP
GLM-5.2-3BIT-REAP
Kimi-K3-3BIT-REAP
Nemotron3Ultra-3BIT-REAP
MiniMax-M3-3BIT-REAP
DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP
Kimi-K2.6-W4A16-AUTOROUND-REAP
Laguna-S-2.1-W4A16-AUTOROUND-REAP
inkling-W4A16-AUTOROUND-REAP
MiMo-V2.5-Pro-W8A16
MiMo-V2.5-W8A16
Hy3-W8A16
  • Upper and lower case do not matter, and spaces around the id are removed: SHANNON-3 and shannon-3 are the same model.
  • The reply always carries the published id in model, whichever spelling you sent.
  • A display name such as Shannon 3 is not an id.

Four shorter spellings are accepted as well.

You send Model that answers
shannon-1.6 shannon-1.6-lite
shannon-3-lite shannon-3
shannon-3.1-lite shannon-3.1
shannon-coder shannon-coder-1

An id that is not published is answered with status 400, type invalid_request_error and the message unknown model: <id> on all three endpoints. No other model answers in its place.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Always send model. /v1/responses answers a request without it with 400. On /v1/chat/completions and /v1/messages such a request is answered by shannon-1.6-lite.
  • POST /v1/tokenize and POST /v1/messages/count_tokens take the hosted open-weight ids.

List models

GET /v1/models returns the models of this page as JSON, with the same context windows, prices and capabilities. Use it to fill a model picker or to check a price in code.

GET https://api.shannon-ai.com/v1/models

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)

The reply, shortened to one entry of each kind:

200 JSON
{
  "object": "list",
  "data": [
    {
      "id": "shannon-3",
      "object": "model",
      "created": 1700000000,
      "owned_by": "shannon-ai",
      "display_name": "Shannon 3",
      "context_window": 196608,
      "max_output_tokens": 65536,
      "pricing": {
        "input_per_million_usd": 3.35,
        "output_per_million_usd": 3.35,
        "currency": "USD"
      },
      "capabilities": {
        "tools": true,
        "vision": true,
        "reasoning": true,
        "reasoning_effort": false,
        "streaming": true,
        "json_schema": true
      },
      "endpoints": [
        "/v1/chat/completions",
        "/v1/messages",
        "/v1/responses"
      ]
    },
    {
      "id": "MiniMax-M3-3BIT-REAP",
      "object": "model",
      "created": 1700000000,
      "owned_by": "shannon-ai",
      "display_name": "MiniMax-M3 · 3BIT-REAP",
      "context_window": 262144,
      "max_output_tokens": 65536,
      "pricing": {
        "input_per_million_usd": 0.5,
        "cached_input_per_million_usd": 0.125,
        "output_per_million_usd": 2,
        "currency": "USD"
      },
      "tokenizer": "original",
      "capabilities": {
        "tools": true,
        "vision": true,
        "reasoning": true,
        "reasoning_effort": true,
        "streaming": true,
        "response_format": true,
        "json_schema": true,
        "prompt_caching": true
      },
      "endpoints": [
        "/v1/chat/completions",
        "/v1/messages",
        "/v1/responses",
        "/v1/messages/count_tokens",
        "/v1/tokenize"
      ]
    }
  ]
}
Field Type Description Present on
object string Always list.
data array One entry per model that can be called.
data[].id string The id you send as model. Every model
data[].object string Always model. Every model
data[].created integer A fixed number, the same for every model: 1700000000. Every model
data[].owned_by string Always shannon-ai. Every model
data[].display_name string A name for display. It is not accepted as model. Every model
data[].context_window integer The context window in tokens. Every model
data[].max_output_tokens integer The largest output budget a request may ask for: 65536 on every model. Every model
data[].pricing.input_per_million_usd number The price of 1,000,000 input tokens in USD. Every model
data[].pricing.cached_input_per_million_usd number The price of 1,000,000 input tokens read from the prompt cache. Hosted open-weight models
data[].pricing.output_per_million_usd number The price of 1,000,000 output tokens in USD. On a Shannon model it equals the input price. Every model
data[].pricing.currency string Always USD. Every model
data[].tokenizer string original: tokens are counted with the model's own tokenizer. Hosted open-weight models
data[].capabilities.tools boolean The model can call the tools you declare. true on every model. Every model
data[].capabilities.vision boolean The model reads images. Every model
data[].capabilities.reasoning boolean The model reasons before it answers. Every model
data[].capabilities.reasoning_effort boolean The request field reasoning_effort takes effect on this model. Every model
data[].capabilities.streaming boolean true on every model. Every model
data[].capabilities.json_schema boolean response_format of type json_schema takes effect. Every model
data[].capabilities.response_format boolean response_format takes effect at all, at least as a JSON object. Hosted open-weight models
data[].capabilities.prompt_caching boolean Repeated prompt prefixes are cached and charged at the cached price. Hosted open-weight models
data[].endpoints array The paths that take this id. Every model
  • GET /v1/models needs no key. The reply is the same for every caller and does not depend on your plan.
  • The list holds the ids that can be called. A model that cannot be served at the moment is left out of it.
  • There is no endpoint for one model: GET /v1/models/{id} answers 404 with type not_found_error.