LLM models
Claude Sonnet 5
On this page
Claude Sonnet 5 — frontier reasoning and generation through one API.
| modelId | claude-sonnet-5 |
| Modality | text |
| Pricing | See this model on the Pricing page for the current per-call price (with your markup). |
Operations
| Operation | modelId | Endpoint | Required input |
|---|---|---|---|
| Default | claude-sonnet-5 | POST /api/v1/generate | prompt |
| Poll task | — | GET /api/v1/task/{id}?model=claude-sonnet-5 | — |
Input parameters
| Field | Type | Required | Values / example |
|---|---|---|---|
| prompt | string | Yes | Text value (example: Turn these release notes into a customer-facing changelog entry: "fixed a race in the upload queue; added retry on 502; raised the per-file cap from 10MB to… — full value in the request example) |
| thinking | boolean | No | Include the model's thinking process in the response (true/false) (example: true) |
| reasoning_effort | string | No | How much the model reasons before it answers (Anthropic's effort levels). Higher levels think longer and use more output tokens; at Max, set a larger max_tokens. (options: Low | Medium | High | XHigh | Max) (example: High) |
| max_tokens | number | No | Optional Claude output token limit. Leave empty to use the default: 16000, because this model reasons before it answers unless thinking is turned off (then 4096). (range 1-128000) |
| stream | boolean | No | Send true to receive the reply as an event stream (Content-Type: text/event-stream). Omit it and you get a single JSON response — streaming is opt-in on this endpoint. (true/false) (example: true) |
| images | string[] | No | Up to 4 images per message — JPEG, PNG, GIF or WebP, 5 MB each. Send each one as a data: URL or an https URL. Images are billed as input tokens. (image URL) |
| web_search | boolean | No | Web search feeds the results back as input tokens, so a searched turn typically costs many times a normal turn (measured: 6–87×). Billed per token as usual — nothing extra per search. (true/false) (example: false) |
| system | string | No | System instruction for the model. Defaults to "You are Claude Sonnet 5, developed by Anthropic." when omitted. |
| messages | array | No | A conversation instead of a single prompt: an array of { "role", "content" } objects, where role is user, assistant, system or tool (a function result, with tool_call_id); an assistant message may carry tool_calls instead of text — see tools. Send the whole conversation — we do not limit how many messages it has, and we do not drop old ones; the model's context window is the limit. Send prompt or messages, not both. Do not flatten a conversation into one prompt with "User:" / "Assistant:" labels — the model reads that as a single message, and a model using web search then searches for the whole block instead of your question. |
| tools | array | No | Functions the model may call, up to 64. Each is { "type": "function", "function": { "name", "description", "parameters" } } with parameters a JSON Schema object (the flat Responses form and Anthropic's { "name", "description", "input_schema" } are accepted too); strict: true is not accepted on this model. When the model calls one, the response carries toolCalls: run the function, then send the conversation back in messages with the assistant's tool_calls and one { "role": "tool", "tool_call_id", "content" } message per result — and the same tools again. Function calling cannot be combined with web search in the same request. |
| tool_choice | string | object | No | auto (the model decides; the default when tools is set), or required (at least one call). Other values are not available on this model and are refused before any charge. |
Example request
bash
curl -X POST https://you.bot/api/v1/generate \
-H "Authorization: Bearer $YOUBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId":"claude-sonnet-5","input":{"prompt":"Turn these release notes into a customer-facing changelog entry: \"fixed a race in the upload queue; added retry on 502; raised the per-file cap from 10MB to 50MB\". Write one sentence per change in plain language a non-engineer understands, lead with what they can now do, and end with a single line saying what needs no action. No jargon, no version numbers, under 120 words.","thinking":true,"reasoning_effort":"High","max_tokens":4096,"stream":true,"images":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAFklEQVR4nGP8z4AATAxIHFQeMg8OAgB1yQIDpk8YwwAAAABJRU5ErkJggg=="],"web_search":false}}'