Back to Models
anthropic logoAnthropic
anthropic-claude-opus-5

Claude Opus 5

Claude Opus 5 is Anthropic’s flagship model for demanding reasoning, coding, and long-horizon agentic work. It is particularly strong at end-to-end software tasks, code review and bug finding, visual analysis...

7/24/2026
1,000,000 tokens
Input: $5.28/M
Output: $26.38/M

Specifications

Modalities

Input
text
image
file
Output
text

Max Output Tokens

128,000

Reasoning Configuration

Default
Thinking on (effort: high)
Selectable effort levels
max
xhigh
high
medium
low
Turning thinking off
Possible (reasoning.enabled: false)

How to control thinking, and what it costs

Data policy

Prompt retention
Unknown — we could not confirm
Training
Not used for training

"Unknown" does not mean "safe". It means we could not confirm it.

Whether a provider trains on prompts is a declared value from our terms with them. Retention is determined from the upstream listing for every host this model can reach. Neither is guessed.

Measured performance

Time to first response (p50)1.9s
Throughput (p50)784 tokens/s

    Measured through FastMetal's own gateway over the last 30 days (661 first-response samples).

    Throughput is sampled once a day: the median of 27 observations over the last 30 days.

    Time to first response is measured to the first streamed chunk; throughput counts all output tokens, including reasoning tokens. These are observations, not a performance guarantee.

    Code Examples

    curl https://api.fastmetal.ai/v1/chat/completions \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -d '{
        "model": "anthropic-claude-opus-5",
        "messages": [{"role": "user", "content": "Hello!"}]
      }'

    How Claude Opus 5 actually answers

    Real responses to our standard prompts, recorded on FastMetal.

    Count the number of 'r's in 'strawberry'

    Count the number of 'r's in 'strawberry'. Explain your reasoning step by step.

    ## Counting the 'r's in "strawberry" **Step 1: Break the word into individual letters** | Position | Letter | |----------|--------| | 1 | s | | 2 | t | | 3 | **r** | | 4 | a | | 5 | w | | 6 | b | | 7 | e | | 8 | **r** | | 9 | **r** | | 10 | y | **Step 2: Identify each occurrence of 'r'** - Position 3: the 'r' in the "str-" beginning - Position 8: the first 'r' in the "-rry" ending - Position 9: the second 'r' in the "-rry" ending **Step 3: Tally them up** 3 + 8 + 9 → that's **3 occurrences**. ## Answer: 3 The tricky part is that "strawberry" contains a *double* 'r' near the end ("berry"), which is easy to skim over as a single letter. Splitting the word into "straw" (1 'r') + "berry"…
    7.1s response466 output tokens

    Debug This Error

    I'm getting the following error in my Node.js application: TypeError: Cannot read properties of undefined (reading 'map') at UserList (/app/components/UserList.js:12:25) at renderWithHooks (/app/node_modules/rea…

    ## What's happening The error means `users` is `undefined` when `UserList` renders — so calling `.map()` on it throws. React isn't the problem; the prop simply isn't there yet (or ever). The three most common causes: 1. **The parent isn't passing the prop** (or passes it under a different name / typo): ```jsx <UserList /> // users is undefined <UserList user={data} /> // wrong name ``` 2. **The data is fetched asynchronously**, and the first render happens before it arrives: ```jsx const [users, setUsers] = useState(); // undefined on first render! useEffect(() => { fetch('/api/users').then(r => r.json()).then(setUsers); }, []); return <UserList user…
    15.1s response1191 output tokens

    Code Review

    Please review the following Python function and suggest improvements for readability, performance, and best practices: def get_data(url, retries=3): import requests import time for i in range(retries):…

    # Code Review: `get_data` Overall, the function works for the happy path, but there are several issues worth addressing — the most serious being the bare `except`, the silent failure mode, and the conflation of two responsibilities (fetching and transforming). ## Critical Issues ### 1. Bare `except` swallows everything ```python except: time.sleep(2) ``` This catches `KeyboardInterrupt`, `SystemExit`, `MemoryError`, and — importantly — bugs in your own code. If `item["active"]` raises a `KeyError` because the API changed its schema, you'll retry three times and return `[]`, giving you no indication anything went wrong. Catch `requests.RequestException` instead (the base class for all…
    34.7s response2823 output tokens

    Compare these answers side by side with other models →

    Frequently asked questions

    How much does the Claude Opus 5 API cost?
    On FastMetal, Claude Opus 5 is billed per token: $5.28 per 1M input tokens and $26.38 per 1M output tokens on a US-dollar account, before tax. Usage is drawn from a prepaid balance; there is no subscription or monthly fee.
    Can I call Claude Opus 5 with the OpenAI SDK?
    Yes. Point base_url at https://api.fastmetal.ai/v1 and pass "anthropic-claude-opus-5" as the model; existing OpenAI-style code works unchanged, including streaming, tool calls and structured output.
    What is the context window of Claude Opus 5?
    1,000,000 tokens, shared between the prompt and the response.
    What do I need to try Claude Opus 5?
    Create an account and add credit; the model is then available both in the browser chat and over the API. There is no contract or minimum spend.

    Try Claude Opus 5 right now

    Claude Opus 5 is available on FastMetal through one API key. Start in the browser, or call it from the OpenAI SDK.