API reference · API
The hosted MCP server (Streamable HTTP)
POST/mcpAPI key
A Model Context Protocol server over the Streamable HTTP transport, stateless: no Mcp-Session-Id is issued and every answer is application/json. Send the key as Authorization: Bearer, and Accept: application/json, text/event-stream. Tools: antimatter_models, antimatter_estimate, antimatter_cheapest, antimatter_chat (chat scope), antimatter_ensemble (chat scope), antimatter_credits (read scope), antimatter_agent_create (agents scope), antimatter_agents (agents scope), antimatter_agent_top_up (agents scope). While video and sound jobs are on, Nova Studio's tools too: antimatter_studio_models, antimatter_studio_quote (read scope), antimatter_studio_make (chat scope), antimatter_studio_job (read scope), antimatter_studio_projects (read scope), antimatter_studio_project (read scope), antimatter_studio_characters (read scope), antimatter_studio_character (read scope), antimatter_studio_character_make (chat scope), antimatter_studio_character_delete (chat scope), which an agent's key cannot use; antimatter_studio_make is billed as POST /v1/studio/jobs. The key is checked as at /v1: a frozen account, an expired or rotated out key and an address outside its allowlist are refused. Every POST spends the key's own per minute window, the one /v1/chat/completions spends, and a batch spends one per tool call. antimatter_chat is billed and metered as a chat completion.
Request body
application/json, required
| Field | Type | What it is |
|---|---|---|
| jsonrpcrequired | "2.0" | |
| id | string or integer | |
| method | string | |
| params | object |
Example
{
"jsonrpc": "2.0",
"id": "string",
"method": "string",
"params": {}
}Answer 200
The JSON-RPC response, or responses for a batch.
The answer's fields are not named in the document.
Answer 202
Notifications only: accepted, no body.
Errors
- 400Not JSON-RPC, or not JSON.
- 401No key, or a key that does not verify. Carries WWW-Authenticate.
- 403A frozen account, or an address outside the key's allowlist.
- 406The Accept header does not take both JSON and event streams.
- 413The body is over the inference cap.
- 429The key's per minute window is spent. Carries retry-after.
Every error answers in one shape, with its type, code and the field it names. The whole list is in the docs' Errors section.