model field accepts on
/v1/messages,
/v1/chat/completions, and
/v1beta/models/{model}:generateContent.
Calling it is free and never debits credits.
When to use
- Verify key validity at boot — a 200 here proves the key is alive and in-scope
- Discover capability tags before sending an image / video / audio block
- Build a model picker in your own UI without hard-coding the catalog
- Detect retired slugs — anything not in the list returns 400
unsupported_modelon/messages//chat/completions
Request
x-api-key: $BYTESPIKE_API_KEY also works. No body.
Query parameters
| Param | Type | Notes |
|---|---|---|
capability | string | Filter by capability tag, e.g. ?capability=vision or ?capability=tool_use. Multiple OK: ?capability=vision&capability=streaming. |
family | string | Filter by model family: anthropic / openai / google / deepseek / moonshot / zhipu / minimax / bytedance. |
Response
Response fields
| Field | Type | Notes |
|---|---|---|
data[].id | string | Model slug. Use this as the model value on inference endpoints. |
data[].owned_by | string | Model originator (anthropic, openai, google, etc.). |
data[].family | string | Coarser grouping for UI (claude, gpt, gemini, deepseek, kimi, glm, minimax, doubao). |
data[].capabilities | string[] | Feature tags (see Capability tags). |
data[].context_window | integer | Max input context in tokens. |
data[].max_output_tokens | integer | Hard cap on a single generation. |
data[].input_modalities | string[] | text, image, audio, video. |
data[].output_modalities | string[] | Same union; text-only models return ["text"]. |
data[].pricing_url | string | Deep link to the per-model pricing row. |
data[].created | integer | Unix timestamp when the model entered the catalog. |
Live pricing
Thepricing_url deep-links to the row in bytespike.ai/pricing. We don’t ship per-token rates in this response on purpose — the rate card is refreshed nightly from the gateway and the docs page reflects whatever the gateway will actually bill you at, so reading it client-side stays canonical.
Capability tags
| Tag | Meaning |
|---|---|
text | Accepts text input + emits text output. Present on every model. |
vision | Accepts image content blocks (image on /messages, image_url on /chat/completions, inlineData on Gemini). |
audio | Accepts audio input parts. |
video | Accepts video input parts. |
tool_use | Honors tools / tool_choice. |
streaming | Supports stream: true SSE. |
cache_control | Supports Anthropic-style prompt caching. |
thinking | Emits thinking content blocks (Opus / Sonnet 4.x). |
json_schema | Supports OpenAI response_format: {"type": "json_schema"}. |
logprobs | Supports OpenAI logprobs: true. |
image_gen | Image generation endpoint (/v1/images/generations). |
video_gen | Video generation endpoint (/v1/videos/generations). |
Errors
| Status | error.type | Trigger |
|---|---|---|
| 401 | authentication_error | Missing / revoked key. |
| 403 | permission_error | Key valid but no models granted (rare — usually means the key was created in a paused org). |
GET /v1/models is free; no 402 path. Rate limits exist but are very loose — the only realistic 429 is a key-rotation hammer storm.