{"openapi":"3.1.0","info":{"title":"Model Access Gateway","version":"0.3.0","description":"LLM inference API: OpenAI-compatible chat completions for 100+ AI models, paid per request in USDC on Base with x402. No account or API key. Suited for AI agents and scripts that need on-demand text generation, summarization, coding or tool calling and pay from a wallet.","termsOfService":"https://modelaccessgateway.com/terms","contact":{"name":"Model Access Gateway","url":"https://modelaccessgateway.com/","email":"rosariovitale0096@gmail.com"},"x-logo":{"url":"https://modelaccessgateway.com/icon.png","altText":"Model Access Gateway"},"x-guidance":"POST /v1/chat/completions with an OpenAI-style JSON body {model, messages}; max_tokens is optional (default 4096). Pick model from GET /v1/models. An unpaid request returns HTTP 402 with the exact USDC price for that prompt; sign the x402 payment and resend the same request with the PAYMENT-SIGNATURE header. stream:true returns server-sent events after the payment settles. temperature, top_p, stop, seed, response_format and tools are passed to the model where it supports them. If the model fails to answer, the payment is refunded automatically. Each model also has a short route, POST /llm/<model> (for example /llm/claude-opus-5.5), where body.model can be omitted."},"servers":[{"url":"https://modelaccessgateway.com"}],"paths":{"/v1/chat/completions":{"post":{"operationId":"chatCompletions","summary":"OpenAI-compatible chat completion on any of 100+ models (model IDs at GET /models)","description":"Price quoted per request in USDC on Base (x402 exact) before payment; the model is chosen in the JSON body. A signed request must repeat the same body.","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"model":{"type":"string","description":"Model ID from GET /models"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts; null only for an assistant message with tool_calls","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array","items":{"type":"object","properties":{"type":{"const":"text"},"text":{"type":"string"}},"required":["type","text"]}}]},"tool_calls":{"type":"array","description":"Assistant function calls (OpenAI format)"},"tool_call_id":{"type":"string","description":"For role tool: the id of the call it answers"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["model","messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/models":{"get":{"operationId":"listModels","summary":"Current model IDs (free)","security":[],"responses":{"200":{"description":"Current available model list"}}}},"/v1/models":{"get":{"operationId":"listModelsOpenAI","summary":"Current models in OpenAI format (free)","security":[],"responses":{"200":{"description":"{object:'list',data:[{id,object:'model',created,owned_by}]}","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"const":"list"},"data":{"type":"array","items":{"type":"object","required":["id","object","owned_by"],"properties":{"id":{"type":"string"},"object":{"const":"model"},"created":{"type":"integer"},"owned_by":{"type":"string"}}}}}}}}}}}},"/v1/chat/completions/deepseek%2Fdeepseek-chat":{"post":{"operationId":"deepseekChat","summary":"DeepSeek Chat: OpenAI-compatible chat completion paid per request with x402 (USDC on Base)","description":"Same as POST /v1/chat/completions with model deepseek/deepseek-chat fixed by the path. Every model has its own route: see GET /.well-known/x402.","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string","maxLength":200000}},"required":["role","content"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/claude-opus-5.5":{"post":{"operationId":"llm_claude_opus_5_5","summary":"Claude Opus 5.5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model anthropic/claude-opus-5.5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/claude-opus-5.5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/claude-sonnet-5.5":{"post":{"operationId":"llm_claude_sonnet_5_5","summary":"Claude Sonnet 5.5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model anthropic/claude-sonnet-5.5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/claude-sonnet-5.5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/claude-haiku-5.5":{"post":{"operationId":"llm_claude_haiku_5_5","summary":"Claude Haiku 5.5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model anthropic/claude-haiku-5.5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/claude-haiku-5.5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gpt-6-astra":{"post":{"operationId":"llm_gpt_6_astra","summary":"GPT-6 Astra API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model openai/gpt-6-astra fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gpt-6-astra","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gpt-6.1-sol":{"post":{"operationId":"llm_gpt_6_1_sol","summary":"GPT-6.1 Sol API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model openai/gpt-6.1-sol fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gpt-6.1-sol","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gpt-5.5":{"post":{"operationId":"llm_gpt_5_5","summary":"GPT-5.5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model openai/gpt-5.5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gpt-5.5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gpt-6-luna":{"post":{"operationId":"llm_gpt_6_luna","summary":"GPT-6 Luna API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model openai/gpt-6-luna fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gpt-6-luna","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gemini-4-argon":{"post":{"operationId":"llm_gemini_4_argon","summary":"Gemini 4 Argon API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model google/gemini-4-argon fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gemini-4-argon","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gemini-3.1-pro":{"post":{"operationId":"llm_gemini_3_1_pro","summary":"Gemini 3.1 Pro API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model google/gemini-3.1-pro fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gemini-3.1-pro","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gemini-3.8-flash":{"post":{"operationId":"llm_gemini_3_8_flash","summary":"Gemini 3.8 Flash API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model google/gemini-3.8-flash fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gemini-3.8-flash","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/grok-4.7":{"post":{"operationId":"llm_grok_4_7","summary":"Grok 4.7 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model xai/grok-4.7 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/grok-4.7","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/kimi-k3":{"post":{"operationId":"llm_kimi_k3","summary":"Kimi K3 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model moonshot/kimi-k3 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/kimi-k3","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/glm-5.3":{"post":{"operationId":"llm_glm_5_3","summary":"GLM-5.3 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model zai/glm-5.3 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/glm-5.3","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/deepseek-v4-pro":{"post":{"operationId":"llm_deepseek_v4_pro","summary":"DeepSeek V4 Pro API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model deepseek/deepseek-v4-pro fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/deepseek-v4-pro","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/deepseek-v4.1-flash":{"post":{"operationId":"llm_deepseek_v4_1_flash","summary":"DeepSeek V4.1 Flash API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model deepseek/deepseek-v4.1-flash fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/deepseek-v4.1-flash","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/deepseek-chat":{"post":{"operationId":"llm_deepseek_chat","summary":"DeepSeek V4 Flash Chat API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model deepseek/deepseek-chat fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/deepseek-chat","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/qwen3.8-max":{"post":{"operationId":"llm_qwen3_8_max","summary":"Qwen3.8 Max API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model qwen/qwen3.8-max fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/qwen3.8-max","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/minimax-m3":{"post":{"operationId":"llm_minimax_m3","summary":"MiniMax M3 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model minimax/minimax-m3 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/minimax-m3","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/llama-3.3-70b":{"post":{"operationId":"llm_llama_3_3_70b","summary":"Llama 3.3 70B API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model meta-llama/llama-3.3-70b fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/llama-3.3-70b","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/mistral-large-4":{"post":{"operationId":"llm_mistral_large_4","summary":"Mistral Large 4 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model mistral/mistral-large-4 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/mistral-large-4","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gpt-oss-120b":{"post":{"operationId":"llm_gpt_oss_120b","summary":"OpenAI GPT OSS 120B API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model openai/gpt-oss-120b fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gpt-oss-120b","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/claude-opus-5":{"post":{"operationId":"llm_claude_opus_5","summary":"Claude Opus 5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model anthropic/claude-opus-5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/claude-opus-5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/claude-sonnet-5":{"post":{"operationId":"llm_claude_sonnet_5","summary":"Claude Sonnet 5 API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model anthropic/claude-sonnet-5 fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/claude-sonnet-5","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}},"/llm/gemini-3.6-flash":{"post":{"operationId":"llm_gemini_3_6_flash","summary":"Gemini 3.6 Flash API: OpenAI-compatible chat completion, pay per call with x402 (USDC on Base), no API key","description":"Model google/gemini-3.6-flash fixed by the path; same body and payment flow as POST /v1/chat/completions. A GET returns the 402 quote for a tiny fixed request. Docs: /docs/llm/gemini-3.6-flash","tags":["chat-completions"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"3.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Optional: fixed by the path; if present it must be the same model id"},"messages":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool","developer"]},"content":{"description":"String or array of text parts","anyOf":[{"type":"string","maxLength":200000},{"type":"null"},{"type":"array"}]},"tool_calls":{"type":"array"},"tool_call_id":{"type":"string"}},"required":["role"]}},"max_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Default 4096 when omitted; the price grows with it"},"max_completion_tokens":{"type":"integer","minimum":1,"maximum":16384,"description":"Alias of max_tokens"},"stream":{"type":"boolean","description":"true: OpenAI-style server-sent events (chat.completion.chunk), sent after the payment settles"},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}}},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"stop":{"description":"A string or up to 4 strings","anyOf":[{"type":"string","maxLength":256},{"type":"array","maxItems":4,"items":{"type":"string","maxLength":256}}]},"seed":{"type":"integer"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"response_format":{"type":"object","description":"{type:'json_object'} or {type:'json_schema',json_schema:{name,schema,strict}}","properties":{"type":{"type":"string","enum":["text","json_object","json_schema"]},"json_schema":{"type":"object"}},"required":["type"]},"reasoning_effort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh"],"description":"OpenAI reasoning models only"},"n":{"type":"integer","const":1},"tools":{"type":"array","maxItems":128,"description":"OpenAI function tools: {type:'function',function:{name,description,parameters}}"},"tool_choice":{"description":"auto, none, required or {type:'function',function:{name}}"},"parallel_tool_calls":{"type":"boolean"}},"required":["messages"]}}}},"responses":{"200":{"description":"Chat completion (application/json), or server-sent events when stream is true","content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"chat.completion"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","minItems":1,"items":{"type":"object","required":["index","message","finish_reason"],"properties":{"index":{"type":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","const":"assistant"},"content":{"type":["string","null"]},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"const":"function"},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}}}}},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}}}},"text/event-stream":{"schema":{"type":"string","description":"data: {chat.completion.chunk} events, then data: [DONE]; an error after payment is sent as data: {\"error\":{...}} and refunded"}}}},"400":{"description":"Invalid request body, or a signed request that does not repeat the quoted body"},"402":{"description":"Payment Required: x402 v2 quote in the PAYMENT-REQUIRED header; also returned for an invalid or unfunded payment"},"404":{"description":"Model not in the live catalog (see GET /models)"},"409":{"description":"Payment conflict: authorization already used, or the payer has too many open orders"},"413":{"description":"Request body larger than 384 KB, or price above the per-request cap"},"429":{"description":"Too many requests from this IP; retry after the Retry-After seconds"},"502":{"description":"The model failed after payment: the payment was refunded automatically onchain (the message says why when the provider rejected the request)"},"503":{"description":"Model or settlement temporarily unavailable; a settled payment is refunded automatically"}}}}}}