Download OpenAPI specification:
Public customer API. Private Vultr integration routes that require the platform key are not included.
Create a Message using the Anthropic Messages API format. This endpoint accepts Anthropic-native request payloads and returns Anthropic-native responses. The request is adapted internally to the underlying chat completions engine.
System prompt: Use the top-level system parameter for initial instructions. A later text-only system message may follow a user message; it may be last or precede an assistant message.
Content blocks: Message content may be a string or an array of typed content blocks (text, image, tool_use, tool_result).
Assistant prefill: If the final message uses the assistant role, the response continues immediately from that content.
Streaming: Set stream: true to receive server-sent events with typed event names (message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop).
Extended thinking: thinking.type: enabled requires budget_tokens below max_tokens and a model that supports enforced thinking budgets; other models reject this mode. Check reasoning.supports_max_tokens in /v1/models. adaptive uses the model's own thinking behavior, and disabled turns thinking off. Thinking blocks use API-generated signatures, and display: omitted hides their text while preserving a signature for continuation.
System instructions: A later system message keeps its position when forwarded to the model. Turn-scoped clear_at and per-message output_config are not supported.
Effort: Top-level output_config.effort maps through the selected model's reasoning_config. The :express model variant derives a thinking budget when the selected model supports enforced budgets and no budget is supplied.
Tools: Tools use input_schema (JSON Schema) rather than parameters. Tool results are sent as tool_result content blocks in subsequent user messages.
| model required | string The model identifier to use for generation. |
| max_tokens required | integer >= 0 Total completion token allowance, including thinking and visible output. The gateway forwards zero if supplied; whether zero is accepted depends on the upstream engine. |
required | Array of objects (Anthropic Message Param) non-empty Input messages. Models operate on alternating If the final message uses the A text-only |
string or Array of Anthropic Text Block Param (objects) System prompt providing context or instructions to the model. May be a string or an array of text blocks. | |
| stream | boolean Whether to stream the response using server-sent events. Streaming events use typed event names: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. |
| temperature | number <float> [ 0 .. 1 ] Controls randomness in the model responses. Valid range: 0 to 1. |
| top_p | number <float> [ 0 .. 1 ] Enables nucleus sampling with a cumulative probability cutoff. |
| top_k | integer Limits sampling to the top K options. |
| stop_sequences | Array of strings Custom sequences that, when encountered in the generated text, cause the model to stop. |
object Additional metadata about the request. | |
object Output controls. Effort is translated through the selected model's reasoning configuration. Unsupported configured levels return 422. | |
object Thinking configuration. The adapter signs its own thinking blocks for continuation; it does not emit redacted thinking blocks. | |
Array of objects (Anthropic Tool Definition) Definitions for tools available to the model. | |
object Instructs how the model should use any provided tools. |
{- "model": "string",
- "max_tokens": 0,
- "messages": [
- {
- "role": "user",
- "content": "string",
- "clear_at": "never"
}
], - "system": "string",
- "stream": true,
- "temperature": 0,
- "top_p": 0,
- "top_k": 0,
- "stop_sequences": [
- "string"
], - "metadata": {
- "user_id": "string"
}, - "output_config": {
- "effort": "minimal"
}, - "thinking": {
- "type": "enabled",
- "budget_tokens": 1024,
- "display": "summarized"
}, - "tools": [
- {
- "name": "string",
- "description": "string",
- "input_schema": { },
- "type": "string",
- "cache_control": {
- "type": "ephemeral"
}
}
], - "tool_choice": {
- "type": "auto",
- "name": "string"
}
}{- "id": "string",
- "type": "message",
- "role": "assistant",
- "model": "string",
- "content": [
- {
- "type": "text",
- "text": "string",
- "thinking": "string",
- "signature": "string",
- "id": "string",
- "name": "string",
- "input": { }
}
], - "stop_reason": "end_turn",
- "stop_sequence": "string",
- "usage": {
- "input_tokens": 0,
- "output_tokens": 0,
- "cache_creation_input_tokens": 0,
- "cache_read_input_tokens": 0
}
}Create Chat Completion on a specified text generation model.
Continuation: If the final message has the assistant role, the model continues that message instead of starting a new turn (the same convention as Anthropic and OpenRouter). Send a response that ended with finish_reason length back as the final assistant message to resume it. The message must be non-empty text without tool_calls, trailing whitespace is trimmed, thinking is disabled for the continuation, and only the new text is returned.
Response shape: Responses follow OpenRouter's chat completion shape whichever engine serves the model. Reasoning is always in reasoning (never reasoning_content), usage always has prompt_tokens_details.cached_tokens and completion_tokens_details.reasoning_tokens, ids start with chatcmpl- and tool call ids with call_, finish_reason is one of stop, length, tool_calls, content_filter or error with the engine's own value in native_finish_reason, and engine-specific fields are removed. A -normalize model suffix is accepted for compatibility and ignored.
Errors: Errors use OpenRouter's envelope, {"error": {"code", "message", "type", "metadata": {"error_type"}}}. A streaming request that fails before the first token gets the real HTTP status; one that fails later receives a final chunk carrying error.
Reasoning budget: Set reasoning.max_tokens to limit thinking tokens. This limit must be below max_completion_tokens (or the effective context-clipped limit). Models with reasoning.supports_max_tokens: true in /v1/models enforce the budget; other models accept the field without enforcing it. Requested effort maps through the model's reasoning_config when configured. The :express model variant derives a budget for models with enforced budget support when no budget is supplied.
| model | string The model to use. If omitted, the gateway resolves its default model. A |
required | Array of objects (Chat Completion Request Message) non-empty The message context to use for the chat completion request, separated by system, user, assistant, tool, and developer roles. A final |
| continue_final_message | boolean Default: false Continue the final message instead of starting a new assistant turn. Implied whenever the final message has the |
| stream | boolean Indicates whether the response should be streamed. |
| max_tokens | integer Deprecated name for |
| max_completion_tokens | integer >= 1 Default: 32768 Maximum completion tokens, including reasoning and visible output. The effective limit may shrink to fit the model context window. |
| reasoning_effort | string Enum: "ultra" "max" "xhigh" "high" "medium" "low" "minimal" "none" Shorthand for |
object (Reasoning Request Options) Reasoning controls. Configured models map effort through their database profile. Models advertising | |
| n | integer Default: 1 The number of chat completion choices to generate for each input message. |
| seed | integer If you would like a different response from the same message, changing the seed will change the response. A null value generates a random seed. |
| temperature | number <float> [ 0 .. 2 ] Default: 1 A value between 0.0 and 2.0 that controls the randomness of the model's output. When set closer to 1, such as 0.8, the outcome is more unpredictable and creative. Values nearing 0, like 0.2, produce more predictable and less creative results. A temperature of zero requests greedy decoding; exact reproducibility depends on the model engine. |
| top_p | number <float> [ 0 .. 1 ] Default: 1 A value between 0.0 and 1.0 that controls the probability of the model generating a particular token. A higher value will result in more diverse outputs, while a lower value will result in more repetitive outputs. |
| frequency_penalty | number <float> [ -2 .. 2 ] Default: 0 A value between -2.0 and 2.0 that controls how much the model penalizes generating repetitive responses. |
| presence_penalty | number <float> [ -2 .. 2 ] Default: 0 A value between -2.0 and 2.0 that controls how much the model penalizes generating responses that contain certain words or phrases. |
| stop | Array of strings A list of strings that the model will stop generating text if it encounters any of them. |
| logprobs | boolean Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the content of message. |
| top_logprobs | integer [ 0 .. 20 ] An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. |
string or object or Array of Chat Completion Function Tool Choice (objects) | |
Array of objects (Chat Completion Function Tool) A list of function tools the model may call. |
{- "model": "string",
- "messages": [
- {
- "role": "system",
- "content": "string"
}
], - "continue_final_message": false,
- "stream": true,
- "max_tokens": 0,
- "max_completion_tokens": 32768,
- "reasoning_effort": "ultra",
- "reasoning": {
- "effort": "ultra",
- "enabled": true,
- "summary": "auto",
- "max_tokens": 1
}, - "n": 1,
- "seed": 0,
- "temperature": 1,
- "top_p": 1,
- "frequency_penalty": 0,
- "presence_penalty": 0,
- "stop": [
- "string"
], - "logprobs": true,
- "top_logprobs": 0,
- "tool_choice": "none",
- "tools": [
- {
- "type": "string",
- "function": {
- "name": "string",
- "description": "string",
- "parameters": { },
- "strict": true
}
}
]
}{- "id": "string",
- "object": "string",
- "created": 0,
- "model": "string",
- "choices": [
- {
- "index": 0,
- "message": {
- "role": "system",
- "content": "string",
- "reasoning": "string",
- "tool_calls": [
- {
- "id": "string",
- "type": "string",
- "function": {
- "name": "string",
- "arguments": "string"
}
}
]
}, - "logprobs": {
- "content": [
- {
- "token": "string",
- "logprob": 0.1,
- "bytes": [
- 0
], - "top_logprobs": [
- {
- "token": "string",
- "logprob": 0.1,
- "bytes": [
- 0
]
}
]
}
]
}, - "finish_reason": "stop",
- "native_finish_reason": "string"
}
], - "usage": {
- "completion_tokens": 0,
- "prompt_tokens": 0,
- "total_tokens": 0,
- "prompt_tokens_details": {
- "cached_tokens": 0
}, - "completion_tokens_details": {
- "reasoning_tokens": 0
}
}
}Create a chat completion with context retrieved from items or files in a vector store collection. Reasoning effort, thinking budget, and the express variant follow the Chat Completions behavior.
| collection required | string The vector store collection to search for relevant context. |
| model required | string The model that will be inferred for chat completion. A |
required | Array of objects (Chat Completion Request Message) non-empty The message context to use for the chat completion request, separated by system, user, assistant, tool, and developer roles. |
| max_tokens | integer Deprecated name for |
| max_completion_tokens | integer >= 1 Default: 32768 Maximum completion tokens, including reasoning and visible output. |
| reasoning_effort | string Enum: "ultra" "max" "xhigh" "high" "medium" "low" "minimal" "none" Shorthand for |
object (Reasoning Request Options) Reasoning controls. Configured models map effort through their database profile. Models advertising | |
| n | integer Default: 1 The number of chat completion choices to generate for each input message. |
| seed | integer If you would like a different response from the same message, changing the seed will change the response. A null value generates a random seed. |
| temperature | number <float> [ 0 .. 2 ] Default: 1 A value between 0.0 and 2.0 that controls the randomness of the model's output. When set closer to 1, such as 0.8, the outcome is more unpredictable and creative. Values nearing 0, like 0.2, produce more predictable and less creative results. A temperature of zero requests greedy decoding; exact reproducibility depends on the model engine. |
| top_p | number <float> [ 0 .. 1 ] Default: 1 A value between 0.0 and 1.0 that controls the probability of the model generating a particular token. A higher value will result in more diverse outputs, while a lower value will result in more repetitive outputs. |
| stop | Array of strings A list of strings that the model will stop generating text if it encounters any of them. |
| frequency_penalty | number <float> [ -2 .. 2 ] Default: 0 A value between -2.0 and 2.0 that controls how much the model penalizes generating repetitive responses. |
| presence_penalty | number <float> [ -2 .. 2 ] Default: 0 A value between -2.0 and 2.0 that controls how much the model penalizes generating responses that contain certain words or phrases. |
| stream | boolean Indicates whether the response should be streamed. |
| logprobs | boolean Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the content of message. |
| top_logprobs | integer [ 0 .. 20 ] An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. |
string or object or Array of Chat Completion Function Tool Choice (objects) | |
Array of objects (Chat Completion Function Tool) A list of function tools the model may call. |
{- "collection": "string",
- "model": "string",
- "messages": [
- {
- "role": "system",
- "content": "string"
}
], - "max_tokens": 0,
- "max_completion_tokens": 32768,
- "reasoning_effort": "ultra",
- "reasoning": {
- "effort": "ultra",
- "enabled": true,
- "summary": "auto",
- "max_tokens": 1
}, - "n": 1,
- "seed": 0,
- "temperature": 1,
- "top_p": 1,
- "stop": [
- "string"
], - "frequency_penalty": 0,
- "presence_penalty": 0,
- "stream": true,
- "logprobs": true,
- "top_logprobs": 0,
- "tool_choice": "none",
- "tools": [
- {
- "type": "string",
- "function": {
- "name": "string",
- "description": "string",
- "parameters": { },
- "strict": true
}
}
]
}{- "id": "string",
- "object": "string",
- "created": 0,
- "model": "string",
- "choices": [
- {
- "index": 0,
- "message": {
- "role": "system",
- "content": "string",
- "reasoning": "string",
- "tool_calls": [
- {
- "id": "string",
- "type": "string",
- "function": {
- "name": "string",
- "arguments": "string"
}
}
]
}, - "logprobs": {
- "content": [
- {
- "token": "string",
- "logprob": 0.1,
- "bytes": [
- 0
], - "top_logprobs": [
- {
- "token": "string",
- "logprob": 0.1,
- "bytes": [
- 0
]
}
]
}
]
}, - "finish_reason": "stop",
- "native_finish_reason": "string"
}
], - "usage": {
- "completion_tokens": 0,
- "prompt_tokens": 0,
- "total_tokens": 0,
- "prompt_tokens_details": {
- "cached_tokens": 0
}, - "completion_tokens_details": {
- "reasoning_tokens": 0
}
}
}Create an OpenAI-compatible response. reasoning.effort maps through the selected model's reasoning_config when configured. reasoning.max_tokens caps thinking tokens when the model advertises reasoning.supports_max_tokens: true in /v1/models; other models accept the budget without enforcing it. reasoning.context and reasoning.mode are accepted but ignored. The :express model variant derives a budget for models with enforced budget support when no budget is supplied.
| model | string If omitted, the gateway resolves its default model. A |
| input required | any Input text or structured input items. |
| max_output_tokens | integer >= 1 Default: 32768 Maximum output tokens, including reasoning and visible output. |
object (Reasoning Request Options) Reasoning controls. Configured models map effort through their database profile. Models advertising | |
| stream | boolean |
{- "model": "string",
- "input": null,
- "max_output_tokens": 32768,
- "reasoning": {
- "effort": "ultra",
- "enabled": true,
- "summary": "auto",
- "max_tokens": 1
}, - "stream": true
}{- "id": "string",
- "object": "response",
- "model": "string",
- "output": [
- { }
], - "usage": { }
}Embed text in OpenRouter's embeddings shape, which is OpenAI's with input_type and an id added.
Batches: Up to 2048 inputs per request. The API splits them into batches the model's engine accepts and returns the embeddings in input order.
Queries and documents: Instruction-aware models such as qwen3-embedding-4b retrieve better when queries carry an instruction. Set input_type to search_query on queries and the model's instruction is prepended; documents (search_document, or no input_type) are sent unchanged. A query that already starts with the instruction's marker (e.g. Instruct:) is not prefixed again. The prefix's tokens are billed.
Long inputs: An input longer than the model's maximum input length is truncated to it, not rejected.
| model required | string The embeddings model to use. |
required | string or Array of strings or Array of integers or Array of integers A string, a list of strings, a list of token ids, or a list of token id lists. Up to 2048 inputs. Multimodal inputs are rejected. |
| encoding_format | string Default: "float" Enum: "float" "base64"
|
| dimensions | integer >= 1 Truncate embeddings to this many dimensions, for models trained to support it (e.g. Qwen3-Embedding). |
| input_type | string
|
{- "model": "qwen3-embedding-4b",
- "input": [
- "What is the capital of France?"
], - "input_type": "search_query"
}{- "id": "string",
- "object": "string",
- "data": [
- {
- "object": "string",
- "index": 0,
- "embedding": [
- 0
]
}
], - "model": "string",
- "usage": {
- "prompt_tokens": 0,
- "total_tokens": 0
}
}Answer typed questions about a state with a decision ("System One") model, in TypeSafe's /v1/systemone shape, so clients written for TypeSafe work by changing their base URL and key.
A decision model reads the state once per question and generates no text: each answer is a probability distribution over the question's allowed answers.
Question types: noul (yes/no) answers noul, the probability of yes. choice picks one of 2 to 255 options and answers the most likely choice, every option's probabilities and a confidence. score rates on 2 to 10 ordered levels and answers score, the probability-weighted level (it can land between levels), with a legend, probabilities and confidence.
Confidence is 1 when the distribution is on one answer and 0 when it is spread evenly: (k * p_max - 1) / (k - 1) for k answers. noul answers carry none; read noul itself.
Long inputs over the model's maximum input length are rejected with 422, never truncated.
Billing: every question's prompt (the state, the question and its options) is billed as input tokens, so questions on a long state each bill the state. No output tokens are billed.
| model required | string The decision model to use. |
required | string or object or Array of any What to decide about. A string, or structured data (an object or array), which the model reads as JSON. |
required | object Up to 64 questions, by id. Each answer comes back under its question's id. |
{- "model": "mica-v0.1-4b",
- "state": {
- "ticket": "Everything is down and we have a demo at noon."
}, - "questions": {
- "urgent": {
- "type": "noul",
- "instructions": "Does the customer need a reply within the hour?"
}, - "department": {
- "type": "choice",
- "instructions": "Which team should handle this?",
- "criteria": {
- "billing": "invoices, payments, refunds",
- "technical": "bugs, outages, errors"
}
}, - "frustration": {
- "type": "score",
- "instructions": "How frustrated is the customer?",
- "criteria": [
- "Calm",
- "Frustrated",
- "Very angry"
]
}
}
}{- "model": "string",
- "answers": {
- "property1": {
- "type": "noul",
- "noul": 0,
- "choice": "string",
- "score": 0,
- "legend": {
- "property1": "string",
- "property2": "string"
}, - "probabilities": {
- "property1": 0,
- "property2": 0
}, - "confidence": 0
}, - "property2": {
- "type": "noul",
- "noul": 0,
- "choice": "string",
- "score": 0,
- "legend": {
- "property1": "string",
- "property2": "string"
}, - "probabilities": {
- "property1": 0,
- "property2": 0
}, - "confidence": 0
}
}, - "usage": {
- "input_tokens": 0,
- "output_tokens": 0
}
}Rank documents by relevance to a query. Requests and responses follow OpenRouter's rerank schema whichever engine serves the model.
| model required | string The rerank model to use. |
| query required | string non-empty The search query to rank the documents against. |
required | Array of strings or objects non-empty The documents to rank, as plain strings or objects with a |
| top_n | integer >= 1 Return only the highest scoring |
| return_documents | boolean Default: true Extension to OpenRouter's schema. Set |
{- "model": "bge-reranker-v2-m3",
- "query": "What is the capital of France?",
- "documents": [
- "Berlin is the capital of Germany.",
- "Paris is the capital of France."
], - "top_n": 1
}{- "id": "rerank-3f1c9a0d2b7e4c6a8d5e1f02",
- "model": "bge-reranker-v2-m3",
- "results": [
- {
- "index": 1,
- "relevance_score": 0.9998499,
- "document": {
- "text": "Paris is the capital of France."
}
}
], - "usage": {
- "total_tokens": 36
}
}Generates speech audio from input text.
| model required | string The model that will be used to generate text-to-speech audio. |
| input required | string The text to generate audio for, up to a maximum of 2,000 characters. |
| voice required | string The voice that will be used in the generated audio. |
{- "model": "string",
- "input": "string",
- "voice": "string"
}Creates a vector store collection for searchable embeddings.
| name required | string The name of the vector store collection. This is also used to auto-generate a unique ID for the record. |
{- "name": "string"
}{- "collection": {
- "id": "string",
- "name": "string",
- "created": "string"
}
}Updates a vector store collection record.
| id required | string The ID of the vector store collection. |
| name required | string The name of the vector store collection. Note: the previously generated unique ID will remain the same. |
{- "name": "string"
}{- "collection": {
- "id": "string",
- "name": "string",
- "created": "string"
}
}Searches items in a vector store collection for the closest embeddings matches.
| id required | string The ID of the vector store collection. |
| input required | string The text query to search against the embeddings items in the vector store collection. |
{- "input": "string"
}{- "results": [
- {
- "id": "string",
- "created": "string",
- "content": "string"
}
], - "usage": {
- "prompt_tokens": 0,
- "total_tokens": 0
}
}Retrieve a list of items within a vector store collections.
| id required | string The ID of the vector store collection. |
{- "items": [
- {
- "id": "string",
- "created": "string",
- "description": "string"
}
]
}Adds an item to a vector store collection.
| id required | string The ID of the vector store collection. |
| content required | string The text to be converted into embeddings and stored in the vector store collection. |
| description | string A description of the contents in this collection item record. If omitted, this value will default to a shortened version of the text stored in the collection. |
| auto_chunk | boolean Indicates whether the system will automatically chunk the content if it exceeds the embeddings model's maximum sequence length. If set to true, the content will be split into 300 token chunks with 20 tokens of overlap before and after each piece. |
{- "content": "string",
- "description": "string",
- "auto_chunk": true
}{- "item": {
- "id": "string",
- "created": "string",
- "description": "string",
- "content": "string"
}, - "usage": {
- "prompt_tokens": 0,
- "total_tokens": 0
}
}Retrieve a vector store collection item by the ID.
| id required | string The ID of the vector store collection. |
| itemid required | string The ID of the vector store collection item. |
{- "item": {
- "id": "string",
- "created": "string",
- "description": "string",
- "content": "string"
}
}Updates a vector store collection item record.
| id required | string The ID of the vector store collection. |
| itemid required | string The ID of the vector store collection item. |
| description required | string A description of the contents in this collection item record. |
{- "description": "string"
}{- "item": {
- "id": "string",
- "created": "string",
- "description": "string",
- "content": "string"
}
}Retrieve a list of files within a vector store collections.
| id required | string The ID of the vector store collection. |
{- "files": [
- {
- "id": "string",
- "filename": "string",
- "status": "enqueued",
- "error": "string",
- "items": 0,
- "tokens": 0
}
]
}Adds a file to a vector store collection.
| id required | string The ID of the vector store collection. |
| file required | string <binary> The file object to be uploaded to the vector store collection. |
{- "file": {
- "id": "string",
- "filename": "string",
- "status": "enqueued",
- "error": "string",
- "items": 0,
- "tokens": 0
}
}Retrieve a vector store collection file by the ID.
| id required | string The ID of the vector store collection. |
| fileid required | string The ID of the vector store collection file. |
{- "file": {
- "id": "string",
- "filename": "string",
- "status": "enqueued",
- "error": "string",
- "items": 0,
- "tokens": 0
}
}Creates one or more images from a prompt. The default model is z-image-turbo. GET /v1/models lists the image models currently served as entries with an image output modality.
For reproducible output, send an integer seed together with num_inference_steps and guidance_scale, and keep every other field the same between requests.
| prompt required | string <= 2000 characters A text description of the desired image(s). The maximum length is 2000 characters, counted as Unicode characters rather than bytes. |
| model | string Default: "z-image-turbo" The model to use for image generation. Defaults to |
| n | integer [ 1 .. 10 ] Default: 1 The number of images to generate. Must be between 1 and 10. The images in one request are generated together, so changing |
| response_format | string Default: "url" Enum: "url" "b64_json" The format in which generated images are returned. |
| size | string Default: "1024x1024" Enum: "256x256" "512x512" "1024x1024" "1792x1024" "1024x1792" The size of the generated images. Must be one of |
| seed | integer <int64> [ -9223372036854776000 .. 9223372036854776000 ] Random seed. Must be an integer; fractional values are rejected rather than rounded. When omitted, each request uses a random seed. Repeating a request with the same seed and the same value for every other field, including |
| num_inference_steps | integer [ 1 .. 200 ] The number of denoising steps. Generation time grows roughly linearly with steps. When omitted, the model's default is used: 8 for For |
| guidance_scale | number <float> [ 0 .. 20 ] Classifier-free guidance strength. When omitted, the model's default is used: 0 for
|
| negative_prompt | string Text describing what to steer the image away from. It only takes effect when |
{- "model": "z-image-turbo",
- "prompt": "Studio photograph of a red ceramic teapot beside a blue cup on a wooden table.",
- "n": 1,
- "size": "1024x1024",
- "response_format": "b64_json"
}{- "created": 0,
- "data": [
- {
- "b64_json": "string",
- "url": "string"
}
]
}Retrieve the public inference model catalog. By default this returns OpenRouter ModelDocumentV2 entries; send the Anthropic-Version header for an Anthropic-compatible model list with cursor pagination. Anthropic mode includes vultr/claude-code/<model-id> aliases because Claude Code only discovers IDs containing claude or anthropic; the original IDs remain available. X-Vultr-Model-Type applies only to the default catalog. TypeSafe's SDKs, which send X-TypeSafe-SDK, get TypeSafe's model list instead: the decision models for POST /v1/systemone as {"models": [{name, description, release_date}]}.
| after_id | string Anthropic mode only. Return the page after this model ID. |
| before_id | string Anthropic mode only. Return the page before this model ID. |
| limit | integer [ 1 .. 1000 ] Default: 20 Anthropic mode only. Number of models per page. |
| anthropic-version | string Example: 2023-06-01 When present, return Anthropic model entries and pagination fields instead of the default catalog. |
| X-Vultr-Model-Type | string Value: "chat" Filter the default catalog to chat-completion models. Ignored in Anthropic mode. |
| X-TypeSafe-SDK | string Example: typesafe-sdk/0.7.2 Sent by TypeSafe's SDKs (for example |
{- "data": [
- {
- "schema_version": "2.4",
- "id": "string",
- "name": "string",
- "created": 0,
- "description": "string",
- "datacenters": [
- {
- "country_code": "string",
- "region": "string"
}
], - "hugging_face_id": "string",
- "quantization": "string",
- "input_modalities": [
- {
- "type": "text",
- "supported_inputs": { },
- "supported_parameters": { },
- "streaming": true,
- "max_length": {
- "value": 0,
- "unit": "string"
}, - "pricing": [
- {
- "type": "string",
- "unit": "string",
- "cost_usd": "string"
}
]
}
], - "output_modalities": [
- {
- "type": "text",
- "supported_inputs": { },
- "supported_parameters": { },
- "streaming": true,
- "max_length": {
- "value": 0,
- "unit": "string"
}, - "pricing": [
- {
- "type": "string",
- "unit": "string",
- "cost_usd": "string"
}
]
}
], - "reasoning": {
- "mandatory": true,
- "default_effort": "string",
- "default_enabled": true,
- "supported_efforts": [
- "ultra"
], - "supports_max_tokens": true
}
}
]
}Retrieve a model whose identifier contains one slash, using the two path segments as its ID.
| id required | string The ID of the inference model. |
| id2 required | string The second segment of the model identifier. |
{- "id": "string",
- "created": 0,
- "object": "string",
- "owned_by": "string",
- "features": [
- "string"
]
}{- "chat": [
- {
- "id": "string",
- "created": 0,
- "object": "string",
- "owned_by": "string",
- "features": [
- "string"
]
}
], - "audio": [
- {
- "id": "string",
- "created": "string",
- "price": 0.1
}
], - "image": [
- {
- "id": "string",
- "created": 0,
- "price": 0.1
}
]
}View usage information for the current and previous months.
{- "current_month": {
- "chat_usage": [
- {
- "model": "string",
- "output_tokens": 0,
- "input_tokens": 0
}
], - "tts": 0,
- "tts_sm": 0,
- "image": 0.1,
- "image_sm": 0.1,
- "chat": 0,
- "chat_input": 0
}, - "previous_month": {
- "chat_usage": [
- {
- "model": "string",
- "output_tokens": 0,
- "input_tokens": 0
}
], - "tts": 0,
- "tts_sm": 0,
- "image": 0.1,
- "image_sm": 0.1,
- "chat": 0,
- "chat_input": 0
}
}