Meta Muse Wonder API: Setup, Pricing and Cost per Request
Call Meta's Muse Wonder as muse-wonder-1.0 at api.meta.ai/v1 with a Model API key: $4 input and $20 output per 1M tokens. Muse Wonder Full is not on the API.
On this page

Yes, Meta's Muse Wonder has a public API. You call it as muse-wonder-1.0 on Meta Model API at https://api.meta.ai/v1, with a key from the Model API dashboard sent as Authorization: Bearer, and a card on the account for pay-as-you-go billing. As of November 6, 2026, Meta's pricing page lists $4.00 per million input tokens, $0.20 per million cached input tokens and $20.00 per million output tokens, and reasoning tokens are billed as output. Muse Wonder Full is not on the API: Meta sells it only inside the Muse Code CLI, on the $50 Power Usage and $200 Maximum Usage plans.
If you would rather not open a Meta account, OpenRouter lists the same model as meta/muse-wonder at the same token prices, with Meta as its only provider, and takes its fee when you buy credits instead. On either route, start with the Responses format and reasoning effort high, then put your own token counts through the cost table further down before you send real traffic.
Two conditions can stop you before any code matters. Meta's Geographic Use Policy bars access from a list of restricted territories that includes mainland China, Hong Kong and Russia, and Meta's model page says Muse Wonder isn't currently available in South Korea. The model, released October 12, 2026, is also still labeled preview, so its limits and behavior can change.
How to use the Muse Wonder API: key, billing and a first request
Getting to a first Muse Wonder response takes a Model API account with billing set up, one API key and a single HTTP request. Meta's quickstart uses muse-spark-1.3 in its examples; the models page says Wonder and Spark take the same requests on the same endpoints, so swapping the model ID is the only change.
- Have an admin on your Model API team add a card and business information under billing. If you aren't a registered business, Meta asks for your legal name and mailing address instead.
- Open the Model API dashboard, go to API keys and choose Create API key. Copy it right away, because it is shown once; a valid key looks like
LLM_{numeric id}_{secret}. - Store it as an environment variable, for example
export MODEL_API_KEY="LLM_...", so it stays out of your code. None of the SDKs readsMODEL_API_KEYon its own, so you pass it in when you create the client. - Send a request with curl, Python 3.9+ or Node.js 18+.

curl https://api.meta.ai/v1/responses \
-H "Authorization: Bearer $MODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "muse-wonder-1.0",
"reasoning": {"effort": "high"},
"input": "A Python worker sometimes processes the same queue message twice after a restart. Rank the likely causes."
}'The same call through the OpenAI Python SDK (pip install openai) only needs a different base URL and key:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.meta.ai/v1",
api_key=os.environ["MODEL_API_KEY"],
)
response = client.responses.create(
model="muse-wonder-1.0",
reasoning={"effort": "high"},
input="Summarize the trade-offs of optimistic locking in three sentences.",
)
print(response.model_dump_json(indent=2))Check the usage block of the first few responses before you scale up. output_tokens_details.reasoning_tokens shows how much of your output bill went to thinking, and cached_tokens shows how much of the input was billed at the cached rate.
Billing runs in arrears. Charges build up as you use the API, Meta charges the card whenever the balance reaches your payment threshold, and anything left over is charged on the 1st of each month, according to Meta's API bill help page. The threshold can rise as payments go through, and the pricing page states no minimums or upfront commitment. All keys on one team share the same rate limits, so a second key doesn't buy extra capacity.
Responses, Chat Completions or Messages: which format to send
Use Responses unless existing code decides for you. All three formats reach the same models with the same key at the same per-token price, but they differ in what carries across turns and which built-in tools are available, per Meta's guide to choosing an API.
| Format | Endpoint | Pick it when | Reasoning across turns | Search grounding and tool search | Effort values documented |
|---|---|---|---|---|---|
| Responses | POST /v1/responses | New code, agents, long tool loops; Meta's recommended default | Yes, via encrypted reasoning items or previous_response_id | Yes, plus background execution and file inputs | minimal to max |
| Chat Completions | POST /v1/chat/completions | You already have OpenAI messages code and want a base-URL swap | No, not for external keys | Not available; function tools work | minimal to xhigh in the parameter table |
| Messages | POST /v1/messages | Anthropic SDK code or Claude Code; base host https://api.meta.ai without /v1 | Stateless; you replay history and redacted_thinking blocks yourself | web_search and tool_search built-in tools | output_config.effort lists low to xhigh |
The last column matters only for max. Every max example in Meta's reasoning guide uses Responses, while the Chat Completions reference stops its list at xhigh, so if you want max, send it through Responses. On Messages, thinking.budget_tokens is accepted for compatibility but not turned into an effort level; set output_config.effort instead.
For Anthropic SDK code, point the client at the host and pass the key as a bearer token: Anthropic(base_url="https://api.meta.ai", auth_token=os.environ["MODEL_API_KEY"]).
Which reasoning effort to set: high by default, max for the hard cases
Start at high. Meta's coding-agents guide calls it "a strong default", and Muse Wonder accepts minimal, low, medium, high, xhigh and max; none returns HTTP 400 because the model always reasons. When you leave the parameter out, the model picks its own level, and Meta doesn't publish which one that is.
The cost of going higher is measurable. On the Artificial Analysis comparison of Muse Wonder and Claude Opus 5.5 (Intelligence Index v5.0.1, as of November 6, 2026), Muse Wonder at high scored 41, cost $4.56 per index task and took 9.83 seconds to its first answer token. At max it scored 44, cost $6.95 and took 21.19 seconds. That is 3 points for 52.4% more money per task and 2.16 times the wait, so max earns its place on bugs and migrations where a wrong answer costs more than the extra tokens, not on every request.
Artificial Analysis publishes no Muse Wonder figures below high. If you are tempted to drop to low or medium for short tasks, run a sample of your own prompts at both levels and compare reasoning_tokens along with answer quality. Setting max on muse-wonder-1.0 doesn't switch you to Muse Wonder Full; it only makes the same model think longer.
What a Muse Wonder API request costs: $0.038 to $3.28
At list price, a short chat answer costs about $0.04, a cold agent turn about $0.36 and an 800,000-token document about $3.28. The figures below were recalculated on November 6, 2026 from Meta's list prices; the token counts are example workloads, not measurements of Muse Wonder, and each line uses cost = input × $4 + cached input × $0.20 + output × $20 per million tokens, plus $2.50 per 1,000 web searches.
| Workload | Tokens per request | Cost per request | Per 1,000 requests |
|---|---|---|---|
| Short chat answer | 2,000 in, 1,500 out | $0.0380 | $38.00 |
| Agent turn, cold cache | 60,000 in, 6,000 out | $0.3600 | $360.00 |
| Same agent turn, 50,000 of 60,000 cached | 10,000 + 50,000 cached in, 6,000 out | $0.1700 | $170.00 |
| Long document | 800,000 in, 4,000 out | $3.2800 | $3,280.00 |
| Research answer with search | 20,000 in, 3,000 out, 10 searches | $0.1650 | $165.00 |
Caching does more for an agent bill than any other setting. In the agent turn, 50,000 cached tokens cost $0.01 instead of $0.20, which cuts the request from $0.36 to $0.17, a 52.8% saving. Caching on Meta Model API is automatic, so the work is on your side: keep the system prompt, tool definitions and earlier turns byte-identical at the front of each request, and check cached_tokens to confirm it's happening.

Output is the other lever. In the cold agent turn, 6,000 output tokens are a third of the cost (33.3%), and reasoning tokens count as output, so raising effort grows exactly that part of the bill. There's no long-context premium: the 800,000-token document is billed at the same $4 rate as a short prompt, which is why it lands at $3.28 rather than higher. Text that Meta injects as steering context isn't billed and doesn't appear in usage.
If parts of your workload are high-volume or simple, such as classification or sub-agent calls, moving them to muse-spark-1.3 is a model-ID change. Spark lists $1.25 input, $0.15 cached input and $4.25 output per million tokens.
Meta Model API or OpenRouter: same token price, different fees and terms
Go direct to Meta if you need zero data retention, want Meta's rate limits under your own team, or don't want to pay a fee on top-ups. Use OpenRouter if you already hold OpenRouter credits and want one key across providers. The token prices are the same on both.
| Meta Model API | OpenRouter | |
|---|---|---|
| Base URL and model ID | https://api.meta.ai/v1, muse-wonder-1.0 | https://openrouter.ai/api/v1, meta/muse-wonder |
| Key | Model API key, LLM_… format | OpenRouter key; it does not work on Meta's endpoint |
| Token prices | Meta's list prices, no long-context premium | Same as Meta's; OpenRouter says it adds no markup on inference |
| Extra fees | None listed | 5.5% on Standard card top-ups ($0.80 minimum), 5% crypto, 8% on Business |
| How you pay | Card charged at a balance threshold and on the 1st of each month | Prepaid credits, deducted per request |
| Data retention | Standard mode isn't used to train Meta models; zero data retention on request for qualified accounts | OpenRouter's own policy; Meta's zero data retention covers only direct calls |
| Rate limits | 3,000 RPM and 4,000,000 TPM per team | OpenRouter sets no plan limit on paid models; the provider's limits apply |
| Muse Wonder Full | Not available | No model ID listed |
OpenRouter's minimum fee matters for small top-ups. A $10 card top-up carries the full $0.80 minimum, which is 8% on top; from $14.55 upward the fee settles at 5.5%. If you top up $50 at a time, that's $2.75 per top-up.
A request to OpenRouter's public endpoints API on November 6, 2026 returned exactly one endpoint for meta/muse-wonder: provider Meta, named meta/muse-wonder-20261012, with prompt, completion, cached-read and web-search prices that work out to the same $4, $20, $0.20 and $2.50 figures. The same record lists max_completion_tokens at 943,718, implicit caching as supported, and parameters including reasoning_effort, tools, tool_choice, response_format and structured_outputs. With Meta as the only provider behind it, OpenRouter has no second host to fall back to if Meta's side has an outage.
Muse Wonder API errors: what 401, 402, 403, 404 and 429 mean
Most first-day failures are a wrong key, missing billing or a wrong URL, and Meta's error-handling guide separates them by status code. Errors on the OpenAI-style formats come in an {"error": {"message", "type", "param", "code"}} envelope; Messages returns the Anthropic shape.
| Status | What it means | What to do |
|---|---|---|
401 authentication_error, invalid_api_key | Key missing, malformed (not LLM_…), revoked or mistyped | Check that the Authorization: Bearer header is actually sent and that MODEL_API_KEY holds the full key. An OpenRouter key on Meta's endpoint lands here too |
402 billing_error, billing_not_configured | "Billing account issue. Please check your account status." No card, a lapsed card or an unpaid balance | Have a team admin fix billing in the dashboard; retrying won't help |
| 403 | The key lacks permission for this model or feature, or the team restricts the endpoint | Check the key's access to muse-wonder-1.0 in the dashboard |
404 model_not_found | Wrong model ID, no access to it, or a trailing slash in the base URL | Use muse-wonder-1.0 exactly and https://api.meta.ai/v1 with no trailing slash. An unknown path returns 404 with an empty body |
429 rate_limit_error | Your team passed its requests-per-minute or tokens-per-minute limit | Back off exponentially with jitter from about 500 ms and honor Retry-After |
Order matters when you debug, because Meta checks the key before it looks at the path. On November 6, 2026, at 00:37 UTC, curl requests without a valid key were sent from one Mac to api.meta.ai; no request in that run carried a valid key, so none reached the model. GET /v1/models, POST /v1/chat/completions and POST /v1/responses each returned 401 with the body {"error":{"code":"invalid_api_key","message":"Unauthorized","param":null,"type":"authentication_error"}}, and so did an OpenRouter-style sk-or-v1- key and a made-up key in the LLM_ format. POST /v1/messages returned 401 in the Anthropic shape, {"error":{"message":"Unauthorized","type":"authentication_error"},"type":"error"}. A misspelled path, /v1/chat/completion, also came back 401 rather than 404. So a 401 doesn't prove your URL is right; fix the key first, and only then does a 404 point at the path or model ID.
The same run found GET /v1/status open without a key. It returned HTTP 200 with "service_status":"operational" and an empty model_statuses list, so it can tell you whether the service is up, but not whether Muse Wonder specifically is healthy.
Rate limits are set per team, not per key: 3,000 requests per minute and 4,000,000 tokens per minute for muse-wonder-1.0. Successful responses carry x-ratelimit-remaining-tokens and x-ratelimit-remaining-requests headers you can throttle on. For large requests the token limit binds long before the request limit. Counting input and output together, the 66,000-token agent turn from the cost table fits about 60 times a minute, and the 804,000-token document about 4 times. Playground requests draw from the same team allowance.
Which countries can't use the Muse Wonder API
Muse Wonder is available in most countries where Meta AI is available and Meta supports billing, and Meta's Geographic Use Policy, last updated October 12, 2026, is the list that decides. Its restricted territories are Afghanistan, Belarus, Cambodia, China (including Hong Kong and Macau), Cuba, Eritrea, Ethiopia, Haiti, Iran, Iraq, Libya, Myanmar, Nicaragua, North Korea, Pakistan, Russia, Somalia, Syria, the Crimea, Donetsk and Luhansk regions, Venezuela and Western Sahara. If you travel to one of them, Meta's help center says you won't be able to log in.
The policy also binds what you build. You may not make an app built on the API available to users located in those territories, or knowingly let them in, and the policy states that you "may not use technical measures to circumvent, bypass, or otherwise evade geographic access controls." South Korea is a separate case: it isn't a restricted territory in the policy, but Meta's models page says Muse Wonder and Muse Wonder Full "aren't currently available in South Korea", with no reason or date given.
Run Muse Wonder in Claude Code or Codex
Claude Code connects through the Messages format, so it needs the base host without /v1 and the key sent as a bearer token. Meta's coding-agents guide gives this set of variables; export them in the shell, then launch claude:
export ANTHROPIC_BASE_URL="https://api.meta.ai"
export ANTHROPIC_AUTH_TOKEN="$MODEL_API_KEY"
export ANTHROPIC_MODEL="muse-wonder-1.0"
export ANTHROPIC_DEFAULT_OPUS_MODEL="muse-wonder-1.0"
export ANTHROPIC_DEFAULT_SONNET_MODEL="muse-spark-1.3"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="muse-spark-1.3"
export CLAUDE_CODE_SUBAGENT_MODEL="muse-spark-1.3"
export ENABLE_TOOL_SEARCH="true"
claudeUse ANTHROPIC_AUTH_TOKEN, not ANTHROPIC_API_KEY, because the latter sends an x-api-key header that Meta doesn't authenticate. Map every alias as shown: any tier you leave unset tries to reach a Claude model, which Model API doesn't serve. This configuration runs the main loop on Wonder and sends subagents and background tasks to the cheaper Spark; set all five model variables to muse-wonder-1.0 if you want Wonder everywhere.
Codex talks to Model API over Responses. In ~/.codex/config.toml, set model = "muse-wonder-1.0", model_provider = "meta" and model_reasoning_effort = "high", then add a [model_providers.meta] block with base_url = "https://api.meta.ai/v1", env_key = "MODEL_API_KEY" and wire_api = "responses". If Codex is signed in with an OpenAI account, run /logout first so it uses the Meta provider. Coding agents often have no price data for a custom provider, so a session may show $0 spent; check the Model API dashboard for the real bill.
Muse Wonder API: other questions
Is the Muse Wonder API free?
No. As of November 6, 2026, Meta's pricing, quickstart and billing pages list no free credit or free tier for Model API, and calls are billed pay-as-you-go to the card on your team. The cheapest way to try Wonder without per-token billing is the $5-a-month Muse Code Everyday Usage plan, but that runs only in the Muse Code CLI. How the Muse app, Muse Code and API plans compare is in Muse Wonder Pricing and Subscription: App, Muse Code or API.
Can a Muse Code subscription key call the API?
No. Meta's Muse Code subscriptions page says the subscription credential works only in the Muse Code CLI, and any additional API keys you create are billed pay-as-you-go. Subscriptions also default to Contributor mode, which lets Meta train on your content unless you switch it off; Standard-mode API calls aren't used for training.
What is Muse Wonder's maximum output length?
Meta doesn't publish a separate output cap for muse-wonder-1.0 as of November 6, 2026. Input plus requested output must fit in the 1,048,576-token context window, and asking for more than the model's configured maximum returns 400. OpenRouter's endpoint record lists 943,718 output tokens, which is OpenRouter's figure, not Meta's.
Is Muse Wonder better than Claude Opus 5.5 at the same price?
Both list $4 input and $20 output per million tokens, but they differ in score and in cost per task. The comparison is in Muse Wonder vs Opus 5.5: Benchmarks and Cost at the Same $4/$20.
Can the Muse Wonder API generate images or video?
No. Muse Wonder accepts text, images, video, audio and PDFs but returns only text. For video, see Muse Video API: No Meta Endpoint Yet, How to Call It in Python.
Is this the same Muse as the Meta Muse app?
No. Muse is Meta's personal AI agent app for consumers, aimed at errands and messaging, and it isn't reached or billed through Model API. How it compares with other personal agents is covered in ChatGPT Dots vs Meta Muse vs Grok Bot vs Claude Duet: Entry Costs.
Sources11
External pages this guide links to, in the order they appear. Last updated Nov 6, 2026.
Sources11
External pages this guide links to, in the order they appear. Last updated Nov 6, 2026.
- 1.Meta's pricing pagedev.meta.ai/docs/pricing-rate-limits
- 2.quickstartdev.meta.ai/docs/quickstart
- 3.models pagedev.meta.ai/docs/models
- 4.Meta's API bill help pagedev.meta.ai/help/billing/api-bill
- 5.Meta's guide to choosing an APIdev.meta.ai/docs/protocols
- 6.reasoning guidedev.meta.ai/docs/reasoning
- 7.coding-agents guidedev.meta.ai/docs/coding-agents
- 8.Artificial Analysis comparison of Muse Wonder and Claude Opus 5.5artificialanalysis.ai/models/releases/comparisons/muse-wonder-vs-claude-opus-5-5
- 9.error-handling guidedev.meta.ai/docs/error-handling
- 10.Geographic Use Policydev.meta.ai/legal/geographic-use-policy
- 11.Muse Code subscriptions pagedev.meta.ai/docs/muse-code/subscriptions





