Claude Sonnet 4.5, released by Anthropic in September 2025, is the company’s most advanced Sonnet-series model, built for high-performance reasoning, coding, and long-horizon agentic workflows. It is a multimodal system that accepts both text and images, with a 200,000-token context window designed for handling large documents and extended interactions. Anthropic highlights its improvements in reliability, reduced sycophancy, and alignment, making it suitable for sustained enterprise use.
The model delivers strong results in coding and autonomous workflows, achieving 61.4% on the OSWorld benchmark and leading performance on SWE-bench Verified. It introduces infrastructure features such as a memory tool (beta), checkpointing for Claude Code, parallel tool use, and tighter integration with VS Code. Compared to Opus, which targets broader reasoning, Sonnet 4.5 is optimized for structured, long-duration tasks. Positioned against leading offerings from OpenAI and Google, it is aimed at enterprise automation, software engineering, and research-intensive applications.
Drag and drop an image here, or click to browse
—
Usage
Past 30 DaysClaude Sonnet 4.5 has not yet been evaluated on the current benchmark. The results below are from the legacy version of Vision Evals, our previous benchmark. See the current Vision Evals
| Category | Passed | Score |
|---|---|---|
| Document Understanding | 7 / 9 | 77.8% |
| Defect Detection | 11 / 15 | 73.3% |
| Object Understanding | 9 / 14 | 64.3% |
| Spatial Understanding | 12 / 19 | 63.2% |
| Object Counting | 1 / 10 | 10% |
| Category | Passed | Score |
|---|---|---|
| VQA & Extraction | 45 / 60 | 75% |
| Focused Scene OCR | 71 / 99 | 71.7% |
| Text Recognition | 20 / 30 | 66.7% |
| License Plate Recognition | 16 / 30 | 53.3% |
| Handwritten Math | 2 / 10 | 20% |
Scores based on a single evaluation run · Methodology
View all legacy Vision Evals results →Claude Sonnet 4.5 costs $3.00 per 1M input tokens and $15.00 per 1M output tokens.
Pricing updated Aug 23, 2026
Estimated cost per task vs. Visual Understanding score, for this model and others ranked near it. Upper-left is the sweet spot (high quality, low cost). Based on Vision Evals (legacy) results.
11 of 11 models plotted
| Model | Score | Median tokens | Est. cost / task | Compare |
|---|---|---|---|---|
| Claude Opus 4.7 | 67.2% | 2.6K | $0.015 | Compare |
| Gemma 4 31B | 67.2% | 467 | $0.0001 | Compare |
| Claude Opus 4.6 | 64.2% | 2.3K | $0.014 | Compare |
| GPT-5.4 Nano | 62.7% | 1.8K | $0.0004 | Compare |
| Llama 4 Maverick | 59.7% | 2.4K | $0.0005 | Compare |
| Claude Sonnet 4.5(this model) | 59.7% | 2.3K | $0.0092 | — |
| Claude Opus 4.1 | 59.7% | 2.1K | $0.040 | Compare |
| Claude Haiku 4.5 | 58.2% | 2.3K | $0.0030 | Compare |
| GPT-5 Nano | 58.2% | 2.7K | $0.0003 | Compare |
| Qwen3.5 397B A17B | 58.2% | 1.5K | $0.0006 | Compare |
| Gemini 2.5 Flash | 55.2% | 476 | $0.0005 | Compare |
Other models worth comparing for similar use cases.
Other versions in the same family as Claude Sonnet 4.5.
Claude Sonnet 4.5 runs as a hosted REST endpoint through Roboflow Workflows. Pick a task, then hand the prompt to your coding agent or copy the code. Deploying the workflow into a free Roboflow workspace replaces the your-workspace and YOUR_API_KEY placeholders with your own.
Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Deploy this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Claude Sonnet 4.5" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/claude-4-5-sonnet-object-detection
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `classes`: string array } }.
- Billing: this workflow needs no provider API key — inference runs on my Roboflow credits. A BYO provider key can be added to the model step in the Roboflow workflow editor later.
With the Roboflow MCP connected, call `workflows_get` on "claude-4-5-sonnet-object-detection" to read the exact input schema (the source of truth), then `workflows_run` on a sample image to confirm the output shape before writing code (the MCP is authenticated, so this needs no key). Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkDeploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="claude-4-5-sonnet-object-detection",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"classes": ["class1", "class2", "class3"]
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Deploy this workflow to your Roboflow workspace to use it.
// Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-object-detection', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"]
}
})
});
const result = await response.json();
console.log(result);Deploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-object-detection' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"]
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Deploy this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Claude Sonnet 4.5" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/claude-4-5-sonnet-classification
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `classes`: string array } }.
- Billing: this workflow needs no provider API key — inference runs on my Roboflow credits. A BYO provider key can be added to the model step in the Roboflow workflow editor later.
With the Roboflow MCP connected, call `workflows_get` on "claude-4-5-sonnet-classification" to read the exact input schema (the source of truth), then `workflows_run` on a sample image to confirm the output shape before writing code (the MCP is authenticated, so this needs no key). Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkDeploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="claude-4-5-sonnet-classification",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"classes": ["class1", "class2", "class3"]
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Deploy this workflow to your Roboflow workspace to use it.
// Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-classification', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"]
}
})
});
const result = await response.json();
console.log(result);Deploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-classification' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"]
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Deploy this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Claude Sonnet 4.5" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/claude-4-5-sonnet-captioning
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value } } }.
- Billing: this workflow needs no provider API key — inference runs on my Roboflow credits. A BYO provider key can be added to the model step in the Roboflow workflow editor later.
With the Roboflow MCP connected, call `workflows_get` on "claude-4-5-sonnet-captioning" to read the exact input schema (the source of truth), then `workflows_run` on a sample image to confirm the output shape before writing code (the MCP is authenticated, so this needs no key). Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkDeploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="claude-4-5-sonnet-captioning",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Deploy this workflow to your Roboflow workspace to use it.
// Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-captioning', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"}
}
})
});
const result = await response.json();
console.log(result);Deploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-captioning' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"}
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Deploy this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Claude Sonnet 4.5" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/claude-4-5-sonnet-ocr
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value } } }.
- Billing: this workflow needs no provider API key — inference runs on my Roboflow credits. A BYO provider key can be added to the model step in the Roboflow workflow editor later.
With the Roboflow MCP connected, call `workflows_get` on "claude-4-5-sonnet-ocr" to read the exact input schema (the source of truth), then `workflows_run` on a sample image to confirm the output shape before writing code (the MCP is authenticated, so this needs no key). Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkDeploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="claude-4-5-sonnet-ocr",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Deploy this workflow to your Roboflow workspace to use it.
// Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-ocr', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"}
}
})
});
const result = await response.json();
console.log(result);Deploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-ocr' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"}
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Deploy this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Claude Sonnet 4.5" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/claude-4-5-sonnet-open-prompt
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `prompt`: text } }.
- Billing: this workflow needs no provider API key — inference runs on my Roboflow credits. A BYO provider key can be added to the model step in the Roboflow workflow editor later.
With the Roboflow MCP connected, call `workflows_get` on "claude-4-5-sonnet-open-prompt" to read the exact input schema (the source of truth), then `workflows_run` on a sample image to confirm the output shape before writing code (the MCP is authenticated, so this needs no key). Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkDeploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="claude-4-5-sonnet-open-prompt",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"prompt": "Describe what you see in the image"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Deploy this workflow to your Roboflow workspace to use it.
// Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-open-prompt', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"prompt": "Describe what you see in the image"
}
})
});
const result = await response.json();
console.log(result);Deploy this workflow to your Roboflow workspace to use it.
# Inference runs on your Roboflow credits — no provider API key needed. To bill your own provider account instead, add an api_key to the model step in the Roboflow workflow editor.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/claude-4-5-sonnet-open-prompt' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"prompt": "Describe what you see in the image"
}
}'Claude Sonnet 4.5 is proprietary: the weights are not distributed, and the Claude Sonnet 4.5 license is the vendor's commercial terms of service that you accept when you call the API.
Vendor terms govern data retention, whether your inputs can be trained on, rate limits, and regional availability, and they can change with notice. Review them if you handle regulated or customer data.
Proprietary terms are set by the vendor rather than negotiated per project, and no open-source obligation attaches to your code. If you would rather deploy a model whose commercial license is included in your plan — on Roboflow Managed Cloud or a Self-Hosted Inference Server — Roboflow's licensing page lists the supported alternatives to Claude Sonnet 4.5.
Do not hesitate to reach out with questions for your commercial project — our team will help you start solving business problems on the first call. See Roboflow commercial licensing for the models included in each plan.
Talk to salesThis model is proprietary. The author retains all rights, and use of the model is governed by their specific terms of service or license agreement.
Commercial use depends on the terms set by the model author. Most proprietary commercial models require a paid subscription, API key, or per-call billing. Check the provider’s pricing and terms-of-service for details.
License information is provided as a guide and is not legal advice.
Yes. Claude Sonnet 4.5 accepts image input, and on Roboflow's previous vision benchmark it passed 59.7% of visual understanding tasks (#46 of 77) and scored 67.3% on OCR. You can test it on your own image in the demo above.
Claude Sonnet 4.5 has not yet been evaluated on Roboflow's current Vision Evals. The results on this page are from the previous benchmark.
Yes. The demo on this page runs Claude Sonnet 4.5 in the free Roboflow Playground: upload an image and see results in seconds. A free account unlocks unlimited runs.