Docs

Models

GET/v1/models returns the live catalogue, including pricing, so you can build model pickers without hardcoding.

bash
curl https://tokenhub-api.belive.sg/v1/models

The catalogue is public: the call above needs no API key, and sending one changes nothing about the response. Read it from a browser, a build script or a model picker without handing out a credential.

Two entries from a production response read on 2026-10-26, run with ?output_modalities=all: a text model priced per token, and a video model priced by a conditional table. Models, prices and routes change, so read the live list.

json
{
  "data": [
    {
      "id": "deepseek/deepseek-v4-pro",
      "name": "DeepSeek V4 Pro",
      "author": "deepseek",
      "slug": "deepseek-v4-pro",
      "created": 1791519283,
      "context_length": 1000000,
      "architecture": {
        "modality": "text->text",
        "input_modalities": ["text"],
        "output_modalities": ["text"]
      },
      "pricing": {
        "prompt": "0.0000024",
        "completion": "0.0000048",
        "input_cache_read": "0.0000002",
        "cached_prompt": "0.0000002",
        "overrides": []
      },
      "tokenhub_pricing": {
        "type": "tiered_token_v1",
        "tier_basis": "total_prompt",
        "tiers": [
          {
            "upper_bound_tokens": null,
            "prompt": "0.0000024",
            "completion": "0.0000048",
            "cache_read": "0.0000002"
          }
        ],
        "multiplier": "1"
      },
      "supported_parameters": ["max_tokens", "max_completion_tokens", "tools", "tool_choice", "enable_thinking", "thinking", "thinking_budget"],
      "endpoints": [
        {
          "provider": "alibaba-model-studio",
          "status": "ready",
          "priority": 10,
          "route": "chat_completions",
          "capabilities": ["text", "tool_calling", "reasoning"]
        },
        {"provider": "baidu-intl", "status": "ready", "priority": 20, "route": "chat_completions"},
        {
          "provider": "tencent-tokenhub",
          "status": "ready",
          "priority": 30,
          "route": "chat_completions",
          "capabilities": ["tool_calling", "reasoning"]
        }
      ]
    },
    {
      "id": "bytedance/seedance-2.0",
      "name": "Seedance 2.0",
      "author": "bytedance",
      "slug": "seedance-2.0",
      "created": 1791554614,
      "context_length": null,
      "architecture": {
        "modality": "text+image+video+audio->video",
        "input_modalities": ["text", "image", "video", "audio"],
        "output_modalities": ["video"]
      },
      "pricing": null,
      "tokenhub_price_table": {
        "rows": [
          {
            "key": "480_720p_no_video_input",
            "legs": [
              {
                "per": 1000000,
                "label": "Output tokens (USD 7 per million, list)",
                "meter": "output_token",
                "amount": "7"
              }
            ],
            "when": [
              {
                "in": ["480P", "720P"],
                "dimension": "output_resolution"
              }
            ],
            "label": "480P or 720P, no video input"
          },
          {
            "key": "1080p_no_video_input",
            "legs": [
              {
                "per": 1000000,
                "label": "Output tokens (USD 7.7 per million, list)",
                "meter": "output_token",
                "amount": "7.7"
              }
            ],
            "when": [
              {
                "in": ["1080P"],
                "dimension": "output_resolution"
              }
            ],
            "label": "1080P, no video input"
          }
        ],
        "type": "price_table_v1",
        "labels": {"output_resolution": "Output resolution"},
        "multiplier": "1"
      },
      "supported_parameters": ["prompt", "duration", "resolution", "aspect_ratio", "generate_audio", "frame_images", "input_references"],
      "endpoints": [
        {
          "provider": "byteplus-ark",
          "status": "ready",
          "priority": 10,
          "route": "video_generations",
          "capabilities": ["vision", "video"]
        },
        {
          "provider": "partner-cloud-international",
          "status": "ready",
          "priority": 20,
          "route": "video_generations",
          "capabilities": ["vision", "video"]
        }
      ]
    }
  ]
}

Prices are decimal strings in USD per token, never floats. Multiply by 1,000,000 for the per-1M figures the catalogue displays, and do it in decimal arithmetic. input_cache_read is the price of a cached prompt token. overrides lists the prices that apply once the prompt reaches min_prompt_tokens: the whole request is then priced at that tier.

pricing can be null when the model uses tokenhub_price_table, including token-metered image models. It never means free usage. Each table row has when conditions and one or more legs, each with a meter, decimal amount and per denominator. A row can price images, requests, characters, seconds, modality tokens or several of these together. Preserve optional allowances, explicitly unbilled meters, the multiplier and rounding. A tiered token model also carries tokenhub_pricing. See all pricing shapes before calculating an estimate.

supported_parameters is the field to filter on — it is what the console's own catalogue reads to draw its TOOLS tag. architecture tells a text model from an image, video or embedding model. endpoints lists every provider serving the model in priority order, and route names the API that serves it: chat_completions, embeddings, image_generations, video_generations, audio_transcriptions, audio_speech, audio_generations, realtime or 3d_generations. Filter by the endpoint route to distinguish speech synthesis, music generation and realtime; a shared output modality does not make their request formats interchangeable.

Filtering and single models

  • Video, audio and 3D models are left out of the default list. Add ?output_modalities=video for video models only, ?output_modalities=audio for audio-output models (including speech, music and realtime where listed), ?output_modalities=3d for 3D models, or ?output_modalities=all for everything. Speech-to-text models are listed only with all.
  • GET /v1/images/models and GET /v1/videos/models list only the image and video models.
  • Each entry of GET /v1/videos/models also carries the request values the model accepts, in OpenRouter's fields: supported_resolutions (such as 480p), supported_aspect_ratios, supported_durations (whole seconds) and supported_frame_images (first_frame, and last_frame where taken). An empty list means the model does not take that field.
  • GET /v1/models/{author}/{slug} returns one model as {"data": {…}}, or 404 not_found.

Where are the per-model docs?

Start with the model card for modalities, parameters, context and provider routes. Follow the endpoint index to the API guide, the OpenAPI schema and error recovery. Image and video options are per model: see the tables on Image generation and Video generation. For a limit that is not listed, contact support with the model, provider and request ID.