Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, …), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id.
A short-lived (about 60 second) ticket for the pod’s streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser.
Scope matters. The socket’s frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame.
A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else’s stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public.
The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.
POST
/
pods
/
v1
/
pods
/
{id}
/
chat-ticket
Mint a chat ticket for the streaming socket
curl --request POST \ --url https://compute.x402layer.cc/pods/v1/pods/{id}/chat-ticket \ --header 'X-API-Key: <api-key>'
A compute API key (x402c_...). Mint one in the dashboard under Settings -> API Keys. This is the ONLY auth /pods/v1/* accepts - wallet signatures are bound to method+path+body and do not survive the internal hop, so signature callers must use the dashboard routes instead. Two extra scopes gate the dangerous powers: pods:wallet:write (pod wallet money, backup passphrase) and pods:control:write (connectors, full-power control socket).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"x402 Singularity Layer","colors":{"primary":"#50A7E3","light":"#F5EEE2","dark":"#0A0A0A"},"logo":{"light":"https://mintcdn.com/singularitylayer/UUMXGfdtSU8sd_LO/images/sgl-logo.webp?fit=max\u0026auto=format\u0026n=UUMXGfdtSU8sd_LO\u0026q=85\u0026s=8859fac8d109559fc73dea8a15bc8679","dark":"https://mintcdn.com/singularitylayer/UUMXGfdtSU8sd_LO/images/sgl-logo.webp?fit=max\u0026auto=format\u0026n=UUMXGfdtSU8sd_LO\u0026q=85\u0026s=8859fac8d109559fc73dea8a15bc8679"},"favicon":"https://mintcdn.com/singularitylayer/UUMXGfdtSU8sd_LO/images/sgl-logo.webp?fit=max\u0026auto=format\u0026n=UUMXGfdtSU8sd_LO\u0026q=85\u0026s=8859fac8d109559fc73dea8a15bc8679","navbar":{"links":[{"href":"https://studio.x402layer.cc/marketplace","label":"Marketplace"}],"primary":{"type":"button","label":"Launch Studio","href":"https://studio.x402layer.cc"}},"footer":{"socials":{"x":"https://x.com/ivaavimusic","github":"https://github.com/ivaavimusic/x402Studio-frontend"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Studio","icon":"book-open-cover","href":"https://studio.x402layer.cc"},{"anchor":"Singularity Compute","icon":"server","href":"https://x402compute.cc"},{"anchor":"Website","icon":"globe","href":"https://x402layer.cc"},{"anchor":"SDK","icon":"github","href":"https://github.com/ivaavimusic/Singularity-SDK"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"singularitylayer","hasAudioNarration":false,"actualSubdomain":"singularitylayer","customDomains":["docs.x402layer.cc"],"gitSource":{"type":"github","owner":"ivaavimusic","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad895d977553aa7e945c33e","collectionId":"5aeb7a0a-5726-4d43-a34e-3ae508159f7c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad895d977553aa7e945c33e"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad895d977553aa7e945c33e","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":253},{"language":"default","tag":"Guides","count":107},{"language":"default","tag":"Agent Pods API","count":66},{"language":"default","tag":"Singularity Cloud Network","count":50},{"language":"default","tag":"Agent Pods","count":31},{"language":"default","tag":"SGL Grid","count":30},{"language":"default","tag":"Staking Engine","count":29},{"language":"default","tag":"Singularity Compute","count":15},{"language":"default","tag":"Enterprise","count":12},{"language":"default","tag":"Agent Vault","count":12}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/pods-v1-chat-ticket","slug":"/api-reference/pods-v1-chat-ticket","pageMetadata":{"title":"Mint a chat ticket","openapi":"POST /pods/v1/pods/{id}/chat-ticket","description":"Base URL `https://compute.x402layer.cc/pods/v1`. Auth is `X-API-Key` only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (`POST /pods`, `PATCH /pods/{id}/settings`, ...), which take a wallet signature or a browser session and are free to change. Every response carries `x-request-id`.\n\nA short-lived (about 60 second) ticket for the pod's streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned `websocket_url`. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser.\n\n**Scope matters.** The socket's frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a `chat`-scoped ticket and the channel drops every other frame type. `full` scope needs a key minted with `pods:control:write`. Attachments and interruption are `full` only. The response states which scope was issued rather than letting you find out by rejected frame.\n\n**A `chat` ticket still shares a conversation.** The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else's stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public.\n\nThe ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.","href":"/api-reference/pods-v1-chat-ticket"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Base URL \", _jsx(_components.code, {\n children: \"https://compute.x402layer.cc/pods/v1\"\n }), \". Auth is \", _jsx(_components.code, {\n children: \"X-API-Key\"\n }), \" only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (\", _jsx(_components.code, {\n children: \"POST /pods\"\n }), \", \", _jsx(_components.code, {\n children: \"PATCH /pods/{id}/settings\"\n }), \", …), which take a wallet signature or a browser session and are free to change. Every response carries \", _jsx(_components.code, {\n children: \"x-request-id\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A short-lived (about 60 second) ticket for the pod’s streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned \", _jsx(_components.code, {\n children: \"websocket_url\"\n }), \". The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Scope matters.\"\n }), \" The socket’s frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a \", _jsx(_components.code, {\n children: \"chat\"\n }), \"-scoped ticket and the channel drops every other frame type. \", _jsx(_components.code, {\n children: \"full\"\n }), \" scope needs a key minted with \", _jsx(_components.code, {\n children: \"pods:control:write\"\n }), \". Attachments and interruption are \", _jsx(_components.code, {\n children: \"full\"\n }), \" only. The response states which scope was issued rather than letting you find out by rejected frame.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsxs(_components.strong, {\n children: [\"A \", _jsx(_components.code, {\n children: \"chat\"\n }), \" ticket still shares a conversation.\"]\n }), \" The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else’s stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Mint a chat ticket","openapi":"POST /pods/v1/pods/{id}/chat-ticket","description":"Base URL `https://compute.x402layer.cc/pods/v1`. Auth is `X-API-Key` only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (`POST /pods`, `PATCH /pods/{id}/settings`, ...), which take a wallet signature or a browser session and are free to change. Every response carries `x-request-id`.\n\nA short-lived (about 60 second) ticket for the pod's streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned `websocket_url`. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser.\n\n**Scope matters.** The socket's frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a `chat`-scoped ticket and the channel drops every other frame type. `full` scope needs a key minted with `pods:control:write`. Attachments and interruption are `full` only. The response states which scope was issued rather than letting you find out by rejected frame.\n\n**A `chat` ticket still shares a conversation.** The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else's stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public.\n\nThe ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.","href":"/api-reference/pods-v1-chat-ticket"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agent Pods API"],"summary":"Mint a chat ticket for the streaming socket","description":"Base URL `https://compute.x402layer.cc/pods/v1`. Auth is `X-API-Key` only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (`POST /pods`, `PATCH /pods/{id}/settings`, ...), which take a wallet signature or a browser session and are free to change. Every response carries `x-request-id`.\n\nA short-lived (about 60 second) ticket for the pod's streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned `websocket_url`. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser.\n\n**Scope matters.** The socket's frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a `chat`-scoped ticket and the channel drops every other frame type. `full` scope needs a key minted with `pods:control:write`. Attachments and interruption are `full` only. The response states which scope was issued rather than letting you find out by rejected frame.\n\n**A `chat` ticket still shares a conversation.** The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else's stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public.\n\nThe ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.","security":["cf03905b-be10-49b8-be3d-22b201f832fc"],"parameters":["06fd553a-0119-4244-954d-c10464f268d7"],"responses":{"200":"239f1ad7-9092-47f0-b6b1-7d0d330b62cf","401":"93bcad18-f9d2-4a7a-9dd8-b27b1863a465","403":"784b7d7d-fd1b-47ea-8717-5a1aeaafadfe","404":"4aef12ea-6cc3-436e-83f8-4a416ee0a848","429":"0bb90d59-9a2c-4df1-a801-81356ce15558"},"method":"post","type":"path","servers":["23f358db-4bdb-444a-a6b4-23d1b999d01e"],"path":"/pods/v1/pods/{id}/chat-ticket","baseUrlOptions":["https://compute.x402layer.cc"],"title":"Mint a chat ticket for the streaming socket","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"06fd553a-0119-4244-954d-c10464f268d7":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Pod id, as returned by create/list.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Pod id, as returned by create/list."}},"responses":{"239f1ad7-9092-47f0-b6b1-7d0d330b62cf":{"description":"Ticket issued.","headers":{"x-request-id":{"description":"Correlation id for this request. A caller-supplied `x-request-id` (8-64 chars of `A-Za-z0-9._-`) is echoed back; otherwise one is generated. Quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"chat":{"type":"object","properties":{"ticket":{"oneOf":[{"type":"string","uniqueKey":"chat.ticket.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"chat.ticket.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.ticket","typeLabel":"string | null"},"expires_in_seconds":{"type":"integer","example":60,"uniqueKey":"chat.expires_in_seconds","typeLabel":"integer"},"scope":{"type":"string","enum":["chat","full"],"description":"`chat` sends chat and ping only. `full` is the whole workspace frame set and requires `pods:control:write`.","uniqueKey":"chat.scope","typeLabel":"enum\u003cstring>"},"shared_session":{"oneOf":[{"type":"string","description":"Present on a `chat` ticket, warning that the pod runs one shared conversation.","uniqueKey":"chat.shared_session.oneOf.0","typeLabel":"string"},{"type":"null","description":"Present on a `chat` ticket, warning that the pod runs one shared conversation.","uniqueKey":"chat.shared_session.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.shared_session","typeLabel":"string | null"},"websocket_url":{"type":"string","description":"Connect here. Contains the ticket - treat the whole URL as a secret.","uniqueKey":"chat.websocket_url","typeLabel":"string"}},"uniqueKey":"chat","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"chat":{"ticket":"\u003cstring>","expires_in_seconds":60,"scope":"chat","shared_session":"\u003cstring>","websocket_url":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"93bcad18-f9d2-4a7a-9dd8-b27b1863a465":{"description":"`unauthorized` - missing or invalid `X-API-Key`.","headers":{"x-request-id":{"description":"Correlation id for this request. A caller-supplied `x-request-id` (8-64 chars of `A-Za-z0-9._-`) is echoed back; otherwise one is generated. Quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every `/pods/v1/*` failure has this shape. Branch on `error.code`, never on `error.message` - the message is prose and may be reworded.","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","limit_exceeded","capability_disabled","rate_limited","not_implemented","internal"],"description":"Stable machine-readable code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context, e.g. `{ \"code\": \"idempotency_mismatch\" }`, `{ \"required_scope\": \"pods:wallet:write\" }`, `{ \"capability\": \"wallet\" }`, `{ \"retry_after_seconds\": 60 }`.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"784b7d7d-fd1b-47ea-8717-5a1aeaafadfe":{"description":"`forbidden`.","headers":{"x-request-id":{"description":"Correlation id for this request. A caller-supplied `x-request-id` (8-64 chars of `A-Za-z0-9._-`) is echoed back; otherwise one is generated. Quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every `/pods/v1/*` failure has this shape. Branch on `error.code`, never on `error.message` - the message is prose and may be reworded.","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","limit_exceeded","capability_disabled","rate_limited","not_implemented","internal"],"description":"Stable machine-readable code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context, e.g. `{ \"code\": \"idempotency_mismatch\" }`, `{ \"required_scope\": \"pods:wallet:write\" }`, `{ \"capability\": \"wallet\" }`, `{ \"retry_after_seconds\": 60 }`.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"4aef12ea-6cc3-436e-83f8-4a416ee0a848":{"description":"`not_found` - pod not found, or chat is not available for it.","headers":{"x-request-id":{"description":"Correlation id for this request. A caller-supplied `x-request-id` (8-64 chars of `A-Za-z0-9._-`) is echoed back; otherwise one is generated. Quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every `/pods/v1/*` failure has this shape. Branch on `error.code`, never on `error.message` - the message is prose and may be reworded.","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","limit_exceeded","capability_disabled","rate_limited","not_implemented","internal"],"description":"Stable machine-readable code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context, e.g. `{ \"code\": \"idempotency_mismatch\" }`, `{ \"required_scope\": \"pods:wallet:write\" }`, `{ \"capability\": \"wallet\" }`, `{ \"retry_after_seconds\": 60 }`.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"0bb90d59-9a2c-4df1-a801-81356ce15558":{"description":"`rate_limited` - too many requests. `details.retry_after_seconds` gives the bucket window.","headers":{"x-request-id":{"description":"Correlation id for this request. A caller-supplied `x-request-id` (8-64 chars of `A-Za-z0-9._-`) is echoed back; otherwise one is generated. Quote it in support requests.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every `/pods/v1/*` failure has this shape. Branch on `error.code`, never on `error.message` - the message is prose and may be reworded.","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","limit_exceeded","capability_disabled","rate_limited","not_implemented","internal"],"description":"Stable machine-readable code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Optional structured context, e.g. `{ \"code\": \"idempotency_mismatch\" }`, `{ \"required_scope\": \"pods:wallet:write\" }`, `{ \"capability\": \"wallet\" }`, `{ \"retry_after_seconds\": 60 }`.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"cf03905b-be10-49b8-be3d-22b201f832fc":{"podsApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"A compute API key (`x402c_...`). Mint one in the dashboard under Settings -> API Keys. This is the ONLY auth `/pods/v1/*` accepts - wallet signatures are bound to method+path+body and do not survive the internal hop, so signature callers must use the dashboard routes instead. Two extra scopes gate the dangerous powers: `pods:wallet:write` (pod wallet money, backup passphrase) and `pods:control:write` (connectors, full-power control socket).","scopes":[],"schemeName":"podsApiKey"}}},"servers":{"23f358db-4bdb-444a-a6b4-23d1b999d01e":{"url":"https://compute.x402layer.cc"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"A compute API key (`x402c_...`). Mint one in the dashboard under Settings -> API Keys. This is the ONLY auth `/pods/v1/*` accepts - wallet signatures are bound to method+path+body and do not survive the internal hop, so signature callers must use the dashboard routes instead. Two extra scopes gate the dangerous powers: `pods:wallet:write` (pod wallet money, backup passphrase) and `pods:control:write` (connectors, full-power control socket).","scopes":[],"schemeName":"podsApiKey"},"schema":{"title":"X-API-Key","type":"string","description":"A compute API key (`x402c_...`). Mint one in the dashboard under Settings -> API Keys. This is the ONLY auth `/pods/v1/*` accepts - wallet signatures are bound to method+path+body and do not survive the internal hop, so signature callers must use the dashboard routes instead. Two extra scopes gate the dangerous powers: `pods:wallet:write` (pod wallet money, backup passphrase) and `pods:control:write` (connectors, full-power control socket).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"podsApiKey","name":"X-API-Key"}],"title":"podsApiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"singularitylayer","siteName":"x402 Singularity Layer","title":"Mint a chat ticket - x402 Singularity Layer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-09T17:37:18.306Z","originalFileLocation":"api-reference/pods-v1-chat-ticket.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, ...), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id. A short-lived (about 60 second) ticket for the pod\u0026#x27;s streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser. Scope matters. The socket\u0026#x27;s frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame. A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else\u0026#x27;s stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public. The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\">\u003cmeta data-mint-head name=\"application-name\" content=\"x402 Singularity Layer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Mint a chat ticket - x402 Singularity Layer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, ...), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id. A short-lived (about 60 second) ticket for the pod\u0026#x27;s streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser. Scope matters. The socket\u0026#x27;s frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame. A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else\u0026#x27;s stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public. The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"x402 Singularity Layer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://singularitylayer.mintlify.app/_mintlify/api/og/v2?division=Agent+Pods+API\u0026amp;title=Mint+a+chat+ticket\u0026amp;description=Base+URL+%60https%3A%2F%2Fcompute.x402layer.cc%2Fpods%2Fv1%60.+Auth+is+%60X-API-Key%60+only.+This+is+the+PROGRAMMATIC+surface+and+is+NOT+the+same+as+the+dashboard+pod+routes+%28%60PO\u0026amp;theme=87d447610360302d2ab2a53b\u0026amp;signature=e1fa21ae72a3b7125789cf91fe0b8924bf3003d3ef687e1cb12a25e42a3a9e1f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Mint a chat ticket - x402 Singularity Layer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, ...), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id. A short-lived (about 60 second) ticket for the pod\u0026#x27;s streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser. Scope matters. The socket\u0026#x27;s frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame. A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else\u0026#x27;s stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public. The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://singularitylayer.mintlify.app/_mintlify/api/og/v2?division=Agent+Pods+API\u0026amp;title=Mint+a+chat+ticket\u0026amp;description=Base+URL+%60https%3A%2F%2Fcompute.x402layer.cc%2Fpods%2Fv1%60.+Auth+is+%60X-API-Key%60+only.+This+is+the+PROGRAMMATIC+surface+and+is+NOT+the+same+as+the+dashboard+pod+routes+%28%60PO\u0026amp;theme=87d447610360302d2ab2a53b\u0026amp;signature=e1fa21ae72a3b7125789cf91fe0b8924bf3003d3ef687e1cb12a25e42a3a9e1f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/singularitylayer/ybPcGxBBgKGneN4a/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"x402 Singularity Layer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#50A7E3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/pods-v1-chat-ticket.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.x402layer.cc/#organization\",\"name\":\"x402 Singularity Layer\",\"url\":\"https://docs.x402layer.cc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/singularitylayer/UUMXGfdtSU8sd_LO/images/sgl-logo.webp?fit=max\u0026auto=format\u0026n=UUMXGfdtSU8sd_LO\u0026q=85\u0026s=8859fac8d109559fc73dea8a15bc8679\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.x402layer.cc#website\",\"name\":\"x402 Singularity Layer\",\"url\":\"https://docs.x402layer.cc\",\"publisher\":{\"@id\":\"https://docs.x402layer.cc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket#webpage\",\"url\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket\",\"name\":\"Mint a chat ticket\",\"description\":\"Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, ...), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id. A short-lived (about 60 second) ticket for the pod's streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser. Scope matters. The socket's frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame. A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else's stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public. The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\",\"dateModified\":\"2026-09-09T17:37:18.306Z\",\"isPartOf\":{\"@id\":\"https://docs.x402layer.cc#website\"},\"breadcrumb\":{\"@id\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agent Pods API\",\"item\":\"https://docs.x402layer.cc/api-reference/pods-v1-create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mint a chat ticket\",\"item\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket#apireference\",\"headline\":\"Mint a chat ticket\",\"name\":\"Mint a chat ticket\",\"description\":\"Base URL https://compute.x402layer.cc/pods/v1. Auth is X-API-Key only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (POST /pods, PATCH /pods/{id}/settings, ...), which take a wallet signature or a browser session and are free to change. Every response carries x-request-id. A short-lived (about 60 second) ticket for the pod's streaming WebSocket. The socket is not proxied through this API; you connect to it directly with the returned websocket_url. The ticket is the auth boundary, which is why it is minted here rather than letting you hand an API key to a browser. Scope matters. The socket's frame set is not just chat - it also dispatches file read/write, skill install and backup create/restore. An ordinary API key therefore gets a chat-scoped ticket and the channel drops every other frame type. full scope needs a key minted with pods:control:write. Attachments and interruption are full only. The response states which scope was issued rather than letting you find out by rejected frame. A chat ticket still shares a conversation. The pod runs ONE session, so an end user can ask the agent about earlier turns and be told. Replies are routed per turn id, so nobody passively reads someone else's stream, but the history is common ground. Issue tickets to your own server or a signed-in user, not to the anonymous public. The ticket rides in the query string, which is fine for 60 seconds but IS captured in request logs. Treat the URL as the secret and do not persist it. Most integrations do not need this at all: the OpenAI-compatible endpoint covers request/response chat and is per-request isolated in a way this socket is not. Rate limit: the shared write bucket, 60 requests/minute per account.\",\"url\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket\",\"mainEntityOfPage\":{\"@id\":\"https://docs.x402layer.cc/api-reference/pods-v1-chat-ticket#webpage\"},\"dateModified\":\"2026-09-09T17:37:18.306Z\",\"publisher\":{\"@id\":\"https://docs.x402layer.cc/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.x402layer.cc#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"x402 Singularity Layer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"x402 Singularity Layer","nav":{"global":{"anchors":[{"anchor":"Studio","icon":"book-open-cover","href":"https://studio.x402layer.cc"},{"anchor":"Singularity Compute","icon":"server","href":"https://x402compute.cc"},{"anchor":"Website","icon":"globe","href":"https://x402layer.cc"},{"anchor":"SDK","icon":"github","href":"https://github.com/ivaavimusic/Singularity-SDK"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Marketplace","pages":[{"title":"Browse marketplace","openapi":"GET /api/marketplace","href":"/api-reference/marketplace-browse"},{"title":"Get public endpoint metadata","openapi":"GET /api/public/endpoints/{slug}","href":"/api-reference/public-endpoint"},{"title":"List marketplace agents","openapi":"GET /api/marketplace/agents","href":"/api-reference/marketplace-agents-list"},{"title":"Get marketplace agent","openapi":"GET /api/marketplace/agents/{id}","href":"/api-reference/marketplace-agent-get"}]},{"group":"Public commerce","pages":[{"title":"Get public payment link","openapi":"GET /api/public/payment-links/{id}","href":"/api-reference/public-payment-link"},{"title":"Get public endpoint credit packs","openapi":"GET /api/public/endpoints/{slug}/credits","href":"/api-reference/public-endpoint-credits"},{"title":"List ratings","openapi":"GET /api/ratings","href":"/api-reference/ratings-list"},{"title":"Create or update rating","openapi":"POST /api/ratings","href":"/api-reference/ratings-create"},{"title":"Delete rating","openapi":"DELETE /api/ratings","href":"/api-reference/ratings-delete"},{"title":"Resolve receipt token","openapi":"GET /api/receipts/{token}","href":"/api-reference/receipt-resolve"}]},{"group":"Payments","pages":[{"title":"Access paid endpoint","openapi":"GET /e/{slug}","href":"/api-reference/endpoint-access"},{"title":"Access paid product","openapi":"GET /p/{slug}","href":"/api-reference/product-purchase"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","openapi":"GET /api/webhooks","href":"/api-reference/webhooks-list"},{"title":"Create webhook","openapi":"POST /api/webhooks","href":"/api-reference/webhooks-create"},{"title":"Update webhook","openapi":"PATCH /api/webhooks/{id}","href":"/api-reference/webhooks-update"},{"title":"Delete webhook","openapi":"DELETE /api/webhooks/{id}","href":"/api-reference/webhooks-delete"}]},{"group":"Agent Auth","pages":[{"title":"Request wallet challenge","openapi":"POST /agent/auth/challenge","href":"/api-reference/agent-auth-challenge"},{"title":"Verify wallet challenge","openapi":"POST /agent/auth/verify","href":"/api-reference/agent-auth-verify"}]},{"group":"Agent Endpoints","pages":[{"title":"Get agent endpoint status","openapi":"GET /agent/endpoints","href":"/api-reference/agent-endpoints-list"},{"title":"Create agent endpoint","openapi":"POST /agent/endpoints","href":"/api-reference/agent-endpoints-create"},{"title":"Top up agent endpoint","openapi":"PUT /agent/endpoints","href":"/api-reference/agent-endpoints-update"},{"title":"Delete agent endpoint","openapi":"DELETE /agent/endpoints","href":"/api-reference/agent-endpoints-delete"}]},{"group":"ERC-8004","pages":[{"title":"Get ERC-8004 registry","openapi":"GET /agent/erc8004/registry","href":"/api-reference/erc8004-registry"},{"title":"Prepare ERC-8004 registration","openapi":"POST /agent/erc8004/prepare","href":"/api-reference/erc8004-prepare"},{"title":"Finalize ERC-8004 registration","openapi":"POST /agent/erc8004/finalize","href":"/api-reference/erc8004-finalize"}]},{"group":"SGL Grid","pages":[{"title":"List models","openapi":"GET /v1/models","href":"/api-reference/grid-models"},{"title":"Create chat completion","openapi":"POST /v1/chat/completions","href":"/api-reference/grid-chat-completions"},{"title":"Create embeddings","openapi":"POST /v1/embeddings","href":"/api-reference/grid-embeddings"},{"title":"Reserve a transcription node","openapi":"POST /v1/audio/transcriptions/reserve","href":"/api-reference/grid-transcriptions-reserve"},{"title":"Submit a sealed transcription","openapi":"POST /v1/audio/transcriptions","href":"/api-reference/grid-transcriptions"},{"title":"System One typed decisions","openapi":"POST /v1/systemone","href":"/api-reference/grid-systemone"},{"title":"Grid capacity","openapi":"GET /grid/capacity","href":"/api-reference/grid-capacity"},{"title":"Staking metrics","openapi":"GET /grid/staking/metrics","href":"/api-reference/grid-staking-metrics"},{"title":"List nodes for a wallet","openapi":"GET /grid/nodes","href":"/api-reference/grid-nodes"},{"title":"Operator claimable rewards","openapi":"GET /grid/rewards/claimable","href":"/api-reference/grid-rewards-claimable"}]},{"group":"Singularity Compute","pages":[{"title":"List compute plans","openapi":"GET /compute/plans","href":"/api-reference/compute-plans"},{"title":"List compute regions","openapi":"GET /compute/regions","href":"/api-reference/compute-regions"},{"title":"List compute operating systems","openapi":"GET /compute/os","href":"/api-reference/compute-os"},{"title":"Get credit balance","openapi":"GET /compute/credits/balance","href":"/api-reference/compute-credits-balance"},{"title":"Top up credits","openapi":"POST /compute/credits/topup","href":"/api-reference/compute-credits-topup"},{"title":"Provision compute instance","openapi":"POST /compute/provision","href":"/api-reference/compute-provision"},{"title":"List compute instances","openapi":"GET /compute/instances","href":"/api-reference/compute-instances-list"},{"title":"Get compute instance","openapi":"GET /compute/instances/{id}","href":"/api-reference/compute-instance-get"},{"title":"Get one-time instance password","openapi":"POST /compute/instances/{id}/password","href":"/api-reference/compute-instance-password"},{"title":"Extend compute instance","openapi":"POST /compute/instances/{id}/extend","href":"/api-reference/compute-instance-extend"},{"title":"Resize compute instance","openapi":"POST /compute/instances/{id}/resize","href":"/api-reference/compute-instance-resize"},{"title":"Destroy compute instance","openapi":"DELETE /compute/instances/{id}","href":"/api-reference/compute-instance-delete"},{"title":"List compute API keys","openapi":"GET /compute/api-keys","href":"/api-reference/compute-api-keys-list"},{"title":"Create compute API key","openapi":"POST /compute/api-keys","href":"/api-reference/compute-api-keys-create"},{"title":"Revoke compute API key","openapi":"DELETE /compute/api-keys/{id}","href":"/api-reference/compute-api-keys-delete"}]},{"group":"Agent Vault API","pages":[{"title":"List vault agents","openapi":"GET /backups/agents","href":"/api-reference/vault-agents-list"},{"title":"Register an agent","openapi":"POST /backups/agents","href":"/api-reference/vault-agents-create"},{"title":"List snapshots","openapi":"GET /backups","href":"/api-reference/vault-snapshots-list"},{"title":"Reserve an upload","openapi":"POST /backups","href":"/api-reference/vault-reserve"},{"title":"Complete an upload","openapi":"POST /backups/{backupId}/complete","href":"/api-reference/vault-complete"},{"title":"Get restore URL","openapi":"GET /backups/{backupId}/restore","href":"/api-reference/vault-restore"},{"title":"Delete a snapshot","openapi":"DELETE /backups/{backupId}","href":"/api-reference/vault-delete"},{"title":"Vault usage \u0026 plan","openapi":"GET /backups/usage","href":"/api-reference/vault-usage"},{"title":"Subscribe to Vault Pro","openapi":"POST /backups/subscribe","href":"/api-reference/vault-subscribe"}]},{"group":"Agent Pods","pages":[{"title":"Get Agent Pod catalog","openapi":"GET /pods/catalog","href":"/api-reference/pods-catalog"},{"title":"Deploy an Agent Pod","openapi":"POST /pods","href":"/api-reference/pods-deploy"},{"title":"List Agent Pods","openapi":"GET /pods","href":"/api-reference/pods-list"},{"title":"Get an Agent Pod","openapi":"GET /pods/{id}","href":"/api-reference/pods-get"},{"title":"Update Agent Pod settings","openapi":"PATCH /pods/{id}/settings","href":"/api-reference/pods-settings"},{"title":"Get Agent Pod usage","openapi":"GET /pods/{id}/usage","href":"/api-reference/pods-usage"},{"title":"List pod integration keys","openapi":"GET /pods/{id}/api-keys","href":"/api-reference/pods-api-keys-list"},{"title":"Create a pod integration key","openapi":"POST /pods/{id}/api-keys","href":"/api-reference/pods-api-keys-create"},{"title":"Revoke a pod integration key","openapi":"DELETE /pods/{id}/api-keys/{keyId}","href":"/api-reference/pods-api-keys-revoke"},{"title":"List models (pod adapter)","openapi":"GET /pods/{id}/v1/models","href":"/api-reference/pods-adapter-models"},{"title":"Create chat completion (pod adapter)","openapi":"POST /pods/{id}/v1/chat/completions","href":"/api-reference/pods-adapter-chat"}]},{"group":"Agent Pods API","pages":[{"title":"Create a pod (API key)","openapi":"POST /pods/v1/pods","href":"/api-reference/pods-v1-create"},{"title":"List pods (API key)","openapi":"GET /pods/v1/pods","href":"/api-reference/pods-v1-list"},{"title":"Get a pod (API key)","openapi":"GET /pods/v1/pods/{id}","href":"/api-reference/pods-v1-get"},{"title":"Update a pod (API key)","openapi":"PATCH /pods/v1/pods/{id}","href":"/api-reference/pods-v1-patch"},{"title":"Destroy a pod (API key)","openapi":"DELETE /pods/v1/pods/{id}","href":"/api-reference/pods-v1-delete"},{"title":"Mint a pod endpoint key","openapi":"POST /pods/v1/pods/{id}/keys","href":"/api-reference/pods-v1-keys-create"},{"title":"List pod endpoint keys","openapi":"GET /pods/v1/pods/{id}/keys","href":"/api-reference/pods-v1-keys-list"},{"title":"Revoke a pod endpoint key","openapi":"DELETE /pods/v1/pods/{id}/keys/{keyId}","href":"/api-reference/pods-v1-keys-revoke"},{"title":"Get pod usage (API key)","openapi":"GET /pods/v1/pods/{id}/usage","href":"/api-reference/pods-v1-usage"},{"title":"Queue a pod action","openapi":"POST /pods/v1/pods/{id}/actions","href":"/api-reference/pods-v1-actions-post"},{"title":"Get queued actions and last result","openapi":"GET /pods/v1/pods/{id}/actions","href":"/api-reference/pods-v1-actions-get"},{"title":"List scheduled tasks","openapi":"GET /pods/v1/pods/{id}/tasks","href":"/api-reference/pods-v1-tasks-list"},{"title":"Add a scheduled task","openapi":"POST /pods/v1/pods/{id}/tasks","href":"/api-reference/pods-v1-tasks-add"},{"title":"Enable, disable, or run a task","openapi":"PATCH /pods/v1/pods/{id}/tasks/{jobId}","href":"/api-reference/pods-v1-tasks-patch"},{"title":"Remove a scheduled task","openapi":"DELETE /pods/v1/pods/{id}/tasks/{jobId}","href":"/api-reference/pods-v1-tasks-delete"},{"title":"Get the pod wallet","openapi":"GET /pods/v1/pods/{id}/wallet","href":"/api-reference/pods-v1-wallet-get"},{"title":"Update the pod wallet policy","openapi":"PATCH /pods/v1/pods/{id}/wallet","href":"/api-reference/pods-v1-wallet-patch"},{"title":"List MCP connectors","openapi":"GET /pods/v1/pods/{id}/connectors","href":"/api-reference/pods-v1-connectors-list"},{"title":"Add an MCP connector","openapi":"POST /pods/v1/pods/{id}/connectors","href":"/api-reference/pods-v1-connectors-add"},{"title":"Remove an MCP connector","openapi":"DELETE /pods/v1/pods/{id}/connectors/{connectorId}","href":"/api-reference/pods-v1-connectors-remove"},{"title":"Get backup settings","openapi":"GET /pods/v1/pods/{id}/backups","href":"/api-reference/pods-v1-backups-get"},{"title":"Update backup settings","openapi":"PATCH /pods/v1/pods/{id}/backups","description":"Base URL `https://compute.x402layer.cc/pods/v1`. Auth is `X-API-Key` only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (`POST /pods`, `PATCH /pods/{id}/settings`, ...), which take a wallet signature or a browser session and are free to change. Every response carries `x-request-id`.\n\nTurning backups on or off is ordinary API-key work. **Setting `passphrase` requires the `pods:wallet:write` scope**: backups hold the agent's whole state - memory, workspace, credentials - and the passphrase is what makes a snapshot readable, so a bearer key that can set it to a value the holder knows can then pull and decrypt everything the agent has. That is an exfiltration path, not a settings change.\n\nEnabling without a passphrase only works when one is already stored. Returns the settings, re-read. Rate limit: the shared write bucket, 60 requests/minute per account.","href":"/api-reference/pods-v1-backups-patch"},{"title":"Mint a chat ticket","openapi":"POST /pods/v1/pods/{id}/chat-ticket","href":"/api-reference/pods-v1-chat-ticket"},{"title":"Mint a Telegram join code","openapi":"POST /pods/v1/pods/{id}/channels/telegram/join-code","description":"Base URL `https://compute.x402layer.cc/pods/v1`. Auth is `X-API-Key` only. This is the PROGRAMMATIC surface and is NOT the same as the dashboard pod routes (`POST /pods`, `PATCH /pods/{id}/settings`, ...), which take a wallet signature or a browser session and are free to change. Every response carries `x-request-id`.\n\nMints a short-lived, single-use code so a pod can be added to a Telegram group without a human in our dashboard. Minting replaces any outstanding code. Add the bot to the group, then send the code in that group; the pod approves the pairing itself, so this hands out an invitation rather than any standing authority.\n\n**Known handoff gap.** A claim only RECORDS the group. Attaching it is still the dashboard's Connect button, which this API does not expose, so you can drive the flow to `claimed` and no further. Rate limit: the shared write bucket, 60 requests/minute per account.","href":"/api-reference/pods-v1-telegram-join-code-create"},{"title":"Poll a Telegram join code","openapi":"GET /pods/v1/pods/{id}/channels/telegram/join-code","href":"/api-reference/pods-v1-telegram-join-code-get"},{"title":"Connect Telegram group","openapi":"POST /pods/v1/pods/{id}/channels/telegram/connect","href":"/api-reference/pods-v1-telegram-connect"},{"title":"Get update policy","openapi":"GET /pods/v1/pods/{id}/updates","href":"/api-reference/pods-v1-updates-get"},{"title":"Set update policy","openapi":"PATCH /pods/v1/pods/{id}/updates","href":"/api-reference/pods-v1-updates-patch"},{"title":"List account events","openapi":"GET /pods/v1/events","href":"/api-reference/pods-v1-events-list"},{"title":"Create a webhook (Pods)","openapi":"POST /pods/v1/webhooks","href":"/api-reference/pods-v1-webhooks-create"},{"title":"List webhooks (Pods)","openapi":"GET /pods/v1/webhooks","href":"/api-reference/pods-v1-webhooks-list"},{"title":"Update a webhook (Pods)","openapi":"PATCH /pods/v1/webhooks/{id}","href":"/api-reference/pods-v1-webhooks-patch"},{"title":"Delete a webhook (Pods)","openapi":"DELETE /pods/v1/webhooks/{id}","href":"/api-reference/pods-v1-webhooks-delete"}]},{"group":"Staking Engine","pages":[{"title":"Staking analytics","openapi":"GET /api/agent/analytics","href":"/api-reference/staking-analytics"},{"title":"Get staking positions","openapi":"GET /api/agent/positions","href":"/api-reference/staking-positions"},{"title":"Stake $SGL","openapi":"POST /api/agent/stake","href":"/api-reference/staking-stake"},{"title":"Unstake (begin cooldown)","openapi":"POST /api/agent/unstake","href":"/api-reference/staking-unstake"},{"title":"Withdraw after cooldown","openapi":"POST /api/agent/claim-unstake","href":"/api-reference/staking-claim-unstake"},{"title":"Claim rewards","openapi":"POST /api/agent/claim","href":"/api-reference/staking-claim"},{"title":"Submit signed transaction","openapi":"POST /api/agent/submit","href":"/api-reference/staking-submit"}]},{"group":"Fundraiser Campaigns","pages":[{"title":"List campaigns","openapi":"GET /api/campaigns","href":"/api-reference/fundraiser-campaigns-list"},{"title":"Create campaign","openapi":"POST /api/campaigns","href":"/api-reference/fundraiser-campaigns-create"},{"title":"Get campaign details","openapi":"GET /api/campaigns/{slug}","href":"/api-reference/fundraiser-campaign-get"},{"title":"Edit campaign","openapi":"PATCH /api/campaigns/{slug}","href":"/api-reference/fundraiser-campaign-edit"}]},{"group":"Fundraiser Contributions","pages":[{"title":"List contributions","openapi":"GET /api/campaigns/{slug}/contributions","href":"/api-reference/fundraiser-contributions-list"},{"title":"Submit contribution","openapi":"POST /api/campaigns/{slug}/contributions","href":"/api-reference/fundraiser-contributions-submit"},{"title":"Recent contributions feed","openapi":"GET /api/campaigns/contributions","href":"/api-reference/fundraiser-contributions-feed"}]},{"group":"Fundraiser Comments","pages":[{"title":"List comments","openapi":"GET /api/campaigns/{slug}/comments","href":"/api-reference/fundraiser-comments-list"},{"title":"Post comment","openapi":"POST /api/campaigns/{slug}/comments","href":"/api-reference/fundraiser-comments-post"}]},{"group":"Fundraiser Media","pages":[{"title":"Upload campaign image","openapi":"POST /api/campaigns/upload","href":"/api-reference/fundraiser-upload"},{"title":"Campaign OG image","openapi":"GET /api/og/campaign/{slug}","href":"/api-reference/fundraiser-og-image"}]},{"group":"Enterprise","pages":[{"title":"Get partner config","openapi":"GET /api/v1/enterprise","href":"/api-reference/enterprise-config"},{"title":"List partner endpoints","openapi":"GET /api/v1/enterprise/endpoints","href":"/api-reference/enterprise-endpoints"},{"title":"Get revenue stats","openapi":"GET /api/v1/enterprise/stats","href":"/api-reference/enterprise-stats"},{"title":"List transactions","openapi":"GET /api/v1/enterprise/transactions","href":"/api-reference/enterprise-transactions"}]},{"group":"Marketplace","pages":[{"title":"Browse marketplace listings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/marketplace","href":"/api-reference/marketplace/browse-marketplace-listings"}]},{"group":"Public Endpoints","pages":[{"title":"Get public endpoint payment metadata","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/public/endpoints/{slug}","href":"/api-reference/public-endpoints/get-public-endpoint-payment-metadata"},{"title":"Get public credit packs for an endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/public/endpoints/{slug}/credits","href":"/api-reference/public-endpoints/get-public-credit-packs-for-an-endpoint"}]},{"group":"Public Payment Links","pages":[{"title":"Get public payment link details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/public/payment-links/{id}","href":"/api-reference/public-payment-links/get-public-payment-link-details"}]},{"group":"Payments","pages":[{"title":"Access a paid endpoint or return an x402 challenge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /e/{slug}","href":"/api-reference/payments/access-a-paid-endpoint-or-return-an-x402-challenge"},{"title":"Access a paid product or return an x402 challenge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /p/{slug}","href":"/api-reference/payments/access-a-paid-product-or-return-an-x402-challenge"}]},{"group":"Receipts","pages":[{"title":"Resolve a signed payment receipt token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/receipts/{token}","href":"/api-reference/receipts/resolve-a-signed-payment-receipt-token"}]},{"group":"Ratings","pages":[{"title":"List ratings for an endpoint or product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/ratings","href":"/api-reference/ratings/list-ratings-for-an-endpoint-or-product"},{"title":"Create or update a rating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/ratings","href":"/api-reference/ratings/create-or-update-a-rating"},{"title":"Delete a rating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /api/ratings","href":"/api-reference/ratings/delete-a-rating"}]},{"group":"Webhooks","pages":[{"title":"List seller webhooks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/webhooks","href":"/api-reference/webhooks/list-seller-webhooks"},{"title":"Create seller webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/webhooks","href":"/api-reference/webhooks/create-seller-webhook"},{"title":"Delete seller webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /api/webhooks/{id}","href":"/api-reference/webhooks/delete-seller-webhook"},{"title":"Update seller webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /api/webhooks/{id}","href":"/api-reference/webhooks/update-seller-webhook"}]},{"group":"Agent Auth","pages":[{"title":"Request a wallet-auth challenge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/auth/challenge","href":"/api-reference/agent-auth/request-a-wallet-auth-challenge"},{"title":"Verify a wallet-auth challenge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/auth/verify","href":"/api-reference/agent-auth/verify-a-wallet-auth-challenge"}]},{"group":"Agent Endpoints","pages":[{"title":"Get agent endpoint status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agent/endpoints","href":"/api-reference/agent-endpoints/get-agent-endpoint-status"},{"title":"Top up an agent endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /agent/endpoints","href":"/api-reference/agent-endpoints/top-up-an-agent-endpoint"},{"title":"Create agent endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/endpoints","href":"/api-reference/agent-endpoints/create-agent-endpoint"},{"title":"Delete an agent endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agent/endpoints","href":"/api-reference/agent-endpoints/delete-an-agent-endpoint"}]},{"group":"ERC-8004","pages":[{"title":"Get ERC-8004 registry information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agent/erc8004/registry","href":"/api-reference/erc-8004/get-erc-8004-registry-information"},{"title":"Prepare ERC-8004 registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/erc8004/prepare","href":"/api-reference/erc-8004/prepare-erc-8004-registration"},{"title":"Finalize ERC-8004 registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/erc8004/finalize","href":"/api-reference/erc-8004/finalize-erc-8004-registration"}]},{"group":"Marketplace Agents","pages":[{"title":"List public ERC-8004 marketplace agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/marketplace/agents","href":"/api-reference/marketplace-agents/list-public-erc-8004-marketplace-agents"},{"title":"Get a single public marketplace agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/marketplace/agents/{id}","href":"/api-reference/marketplace-agents/get-a-single-public-marketplace-agent"}]},{"group":"Compute Catalog","pages":[{"title":"List compute plans","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/plans","href":"/api-reference/compute-catalog/list-compute-plans"},{"title":"List compute regions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/regions","href":"/api-reference/compute-catalog/list-compute-regions"},{"title":"List compute operating systems","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/os","href":"/api-reference/compute-catalog/list-compute-operating-systems"}]},{"group":"Compute Instances","pages":[{"title":"Provision a compute instance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/provision","href":"/api-reference/compute-instances/provision-a-compute-instance"},{"title":"List compute instances","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/instances","href":"/api-reference/compute-instances/list-compute-instances"},{"title":"Get compute instance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/instances/{id}","href":"/api-reference/compute-instances/get-compute-instance"},{"title":"Destroy compute instance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /compute/instances/{id}","href":"/api-reference/compute-instances/destroy-compute-instance"},{"title":"Retrieve one-time instance password","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/instances/{id}/password","href":"/api-reference/compute-instances/retrieve-one-time-instance-password"},{"title":"Extend compute instance expiry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/instances/{id}/extend","href":"/api-reference/compute-instances/extend-compute-instance-expiry"},{"title":"Resize compute instance in place","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/instances/{id}/resize","href":"/api-reference/compute-instances/resize-compute-instance-in-place"}]},{"group":"Compute API Keys","pages":[{"title":"List compute API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/api-keys","href":"/api-reference/compute-api-keys/list-compute-api-keys"},{"title":"Create compute API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/api-keys","href":"/api-reference/compute-api-keys/create-compute-api-key"},{"title":"Revoke compute API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /compute/api-keys/{id}","href":"/api-reference/compute-api-keys/revoke-compute-api-key"}]},{"group":"Fundraiser Campaigns","pages":[{"title":"List campaigns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/campaigns","href":"/api-reference/fundraiser-campaigns/list-campaigns"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/campaigns","href":"/api-reference/fundraiser-campaigns/create-campaign"},{"title":"Get campaign details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/campaigns/{slug}","href":"/api-reference/fundraiser-campaigns/get-campaign-details"},{"title":"Edit campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /api/campaigns/{slug}","href":"/api-reference/fundraiser-campaigns/edit-campaign"}]},{"group":"Fundraiser Contributions","pages":[{"title":"List contributions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/campaigns/{slug}/contributions","href":"/api-reference/fundraiser-contributions/list-contributions"},{"title":"Submit contribution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/campaigns/{slug}/contributions","href":"/api-reference/fundraiser-contributions/submit-contribution"},{"title":"Recent contributions feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/campaigns/contributions","href":"/api-reference/fundraiser-contributions/recent-contributions-feed"}]},{"group":"Fundraiser Comments","pages":[{"title":"List comments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/campaigns/{slug}/comments","href":"/api-reference/fundraiser-comments/list-comments"},{"title":"Post comment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/campaigns/{slug}/comments","href":"/api-reference/fundraiser-comments/post-comment"}]},{"group":"Fundraiser Media","pages":[{"title":"Upload campaign image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/campaigns/upload","href":"/api-reference/fundraiser-media/upload-campaign-image"},{"title":"Campaign OG image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/og/campaign/{slug}","href":"/api-reference/fundraiser-media/campaign-og-image"}]},{"group":"Enterprise","pages":[{"title":"Get partner config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/v1/enterprise","href":"/api-reference/enterprise/get-partner-config"},{"title":"List partner endpoints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/v1/enterprise/endpoints","href":"/api-reference/enterprise/list-partner-endpoints"},{"title":"Get revenue stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/v1/enterprise/stats","href":"/api-reference/enterprise/get-revenue-stats"},{"title":"List transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/v1/enterprise/transactions","href":"/api-reference/enterprise/list-transactions"}]},{"group":"Staking","pages":[{"title":"API manifest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/agent","href":"/api-reference/staking/api-manifest"},{"title":"Global staking analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/agent/analytics","href":"/api-reference/staking/global-staking-analytics"},{"title":"A wallet's stake positions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/agent/positions","href":"/api-reference/staking/a-wallets-stake-positions"},{"title":"Prepare a stake transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/agent/stake","href":"/api-reference/staking/prepare-a-stake-transaction"},{"title":"Prepare an unstake transaction (begin cooldown)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/agent/unstake","href":"/api-reference/staking/prepare-an-unstake-transaction-begin-cooldown"},{"title":"Prepare a withdraw-after-cooldown transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/agent/claim-unstake","href":"/api-reference/staking/prepare-a-withdraw-after-cooldown-transaction"},{"title":"Prepare claim-rewards transaction(s)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/agent/claim","href":"/api-reference/staking/prepare-claim-rewards-transactions"},{"title":"Broadcast a signed transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/agent/submit","href":"/api-reference/staking/broadcast-a-signed-transaction"}]},{"group":"SGL Grid","pages":[{"title":"List models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/models","href":"/api-reference/sgl-grid/list-models"},{"title":"Create chat completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat/completions","href":"/api-reference/sgl-grid/create-chat-completion"},{"title":"Reserve a transcription node","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/audio/transcriptions/reserve","href":"/api-reference/sgl-grid/reserve-a-transcription-node"},{"title":"Submit a sealed transcription","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/audio/transcriptions","href":"/api-reference/sgl-grid/submit-a-sealed-transcription"},{"title":"Create embeddings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/embeddings","href":"/api-reference/sgl-grid/create-embeddings"},{"title":"Create System One typed decision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/systemone","href":"/api-reference/sgl-grid/create-system-one-typed-decision"},{"title":"Grid capacity \u0026 network stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /grid/capacity","href":"/api-reference/sgl-grid/grid-capacity-\u0026-network-stats"},{"title":"Models being served","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /grid/models","href":"/api-reference/sgl-grid/models-being-served"},{"title":"Operator claimable rewards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /grid/rewards/claimable","href":"/api-reference/sgl-grid/operator-claimable-rewards"},{"title":"List nodes for a wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /grid/nodes","href":"/api-reference/sgl-grid/list-nodes-for-a-wallet"},{"title":"Staking metrics (time series)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /grid/staking/metrics","href":"/api-reference/sgl-grid/staking-metrics-time-series"}]},{"group":"Compute Credits","pages":[{"title":"Get credit balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /compute/credits/balance","href":"/api-reference/compute-credits/get-credit-balance"},{"title":"Top up credits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /compute/credits/topup","href":"/api-reference/compute-credits/top-up-credits"}]},{"group":"Agent Pods","pages":[{"title":"Get the Agent Pod catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/catalog","href":"/api-reference/agent-pods/get-the-agent-pod-catalog"},{"title":"List your Agent Pods","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods","href":"/api-reference/agent-pods/list-your-agent-pods"},{"title":"Deploy an Agent Pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods","href":"/api-reference/agent-pods/deploy-an-agent-pod"},{"title":"Get an Agent Pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/{id}","href":"/api-reference/agent-pods/get-an-agent-pod"},{"title":"Update Agent Pod settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/{id}/settings","href":"/api-reference/agent-pods/update-agent-pod-settings"},{"title":"Get Agent Pod AI usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/{id}/usage","href":"/api-reference/agent-pods/get-agent-pod-ai-usage"},{"title":"List Agent Pod integration keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/{id}/api-keys","href":"/api-reference/agent-pods/list-agent-pod-integration-keys"},{"title":"Create an Agent Pod integration key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/{id}/api-keys","href":"/api-reference/agent-pods/create-an-agent-pod-integration-key"},{"title":"Revoke an Agent Pod integration key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/{id}/api-keys/{keyId}","href":"/api-reference/agent-pods/revoke-an-agent-pod-integration-key"},{"title":"List models (pod OpenAI adapter)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/{id}/v1/models","href":"/api-reference/agent-pods/list-models-pod-openai-adapter"},{"title":"Create chat completion (pod OpenAI adapter)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/{id}/v1/chat/completions","href":"/api-reference/agent-pods/create-chat-completion-pod-openai-adapter"}]},{"group":"Agent Vault","pages":[{"title":"List vault agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /backups/agents","href":"/api-reference/agent-vault/list-vault-agents"},{"title":"Register an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /backups/agents","href":"/api-reference/agent-vault/register-an-agent"},{"title":"List snapshots","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /backups","href":"/api-reference/agent-vault/list-snapshots"},{"title":"Reserve an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /backups","href":"/api-reference/agent-vault/reserve-an-upload"},{"title":"Complete an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /backups/{backupId}/complete","href":"/api-reference/agent-vault/complete-an-upload"},{"title":"Get restore URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /backups/{backupId}/restore","href":"/api-reference/agent-vault/get-restore-url"},{"title":"Delete a snapshot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /backups/{backupId}","href":"/api-reference/agent-vault/delete-a-snapshot"},{"title":"Vault usage \u0026 plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /backups/usage","href":"/api-reference/agent-vault/vault-usage-\u0026-plan"},{"title":"Subscribe to Vault Pro","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /backups/subscribe","href":"/api-reference/agent-vault/subscribe-to-vault-pro"}]},{"group":"Agent Pods API","pages":[{"title":"List pods","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods","href":"/api-reference/agent-pods-api/list-pods"},{"title":"Create a pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods","href":"/api-reference/agent-pods-api/create-a-pod"},{"title":"Get a pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}","href":"/api-reference/agent-pods-api/get-a-pod"},{"title":"Destroy a pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/v1/pods/{id}","href":"/api-reference/agent-pods-api/destroy-a-pod"},{"title":"Update a pod","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/pods/{id}","href":"/api-reference/agent-pods-api/update-a-pod"},{"title":"List pod endpoint keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/keys","href":"/api-reference/agent-pods-api/list-pod-endpoint-keys"},{"title":"Mint a pod endpoint key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/keys","href":"/api-reference/agent-pods-api/mint-a-pod-endpoint-key"},{"title":"Revoke a pod endpoint key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/v1/pods/{id}/keys/{keyId}","href":"/api-reference/agent-pods-api/revoke-a-pod-endpoint-key"},{"title":"Get pod usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/usage","href":"/api-reference/agent-pods-api/get-pod-usage"},{"title":"Get queued actions and the last result","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/actions","href":"/api-reference/agent-pods-api/get-queued-actions-and-the-last-result"},{"title":"Queue a pod action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/actions","href":"/api-reference/agent-pods-api/queue-a-pod-action"},{"title":"List scheduled tasks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/tasks","href":"/api-reference/agent-pods-api/list-scheduled-tasks"},{"title":"Add a scheduled task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/tasks","href":"/api-reference/agent-pods-api/add-a-scheduled-task"},{"title":"Remove a scheduled task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/v1/pods/{id}/tasks/{jobId}","href":"/api-reference/agent-pods-api/remove-a-scheduled-task"},{"title":"Enable, disable, or run a task now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/pods/{id}/tasks/{jobId}","href":"/api-reference/agent-pods-api/enable-disable-or-run-a-task-now"},{"title":"Get the pod wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/wallet","href":"/api-reference/agent-pods-api/get-the-pod-wallet"},{"title":"Update the pod wallet spend policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/pods/{id}/wallet","href":"/api-reference/agent-pods-api/update-the-pod-wallet-spend-policy"},{"title":"List MCP connectors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/connectors","href":"/api-reference/agent-pods-api/list-mcp-connectors"},{"title":"Add an MCP connector","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/connectors","href":"/api-reference/agent-pods-api/add-an-mcp-connector"},{"title":"Remove an MCP connector","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/v1/pods/{id}/connectors/{connectorId}","href":"/api-reference/agent-pods-api/remove-an-mcp-connector"},{"title":"Get backup settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/backups","href":"/api-reference/agent-pods-api/get-backup-settings"},{"title":"Update backup settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/pods/{id}/backups","href":"/api-reference/agent-pods-api/update-backup-settings"},{"title":"Mint a chat ticket for the streaming socket","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/chat-ticket","href":"/api-reference/agent-pods-api/mint-a-chat-ticket-for-the-streaming-socket"},{"title":"Poll a Telegram join code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/channels/telegram/join-code","href":"/api-reference/agent-pods-api/poll-a-telegram-join-code"},{"title":"Mint a Telegram join code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/channels/telegram/join-code","href":"/api-reference/agent-pods-api/mint-a-telegram-join-code"},{"title":"List account events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/events","href":"/api-reference/agent-pods-api/list-account-events"},{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/webhooks","href":"/api-reference/agent-pods-api/list-webhooks"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/webhooks","href":"/api-reference/agent-pods-api/create-a-webhook"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /pods/v1/webhooks/{id}","href":"/api-reference/agent-pods-api/delete-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/webhooks/{id}","href":"/api-reference/agent-pods-api/update-a-webhook"},{"title":"Connect the claimed Telegram group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /pods/v1/pods/{id}/channels/telegram/connect","href":"/api-reference/agent-pods-api/connect-the-claimed-telegram-group"},{"title":"Get the update policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /pods/v1/pods/{id}/updates","href":"/api-reference/agent-pods-api/get-the-update-policy"},{"title":"Set the update policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /pods/v1/pods/{id}/updates","href":"/api-reference/agent-pods-api/set-the-update-policy"}]}]}]},"title":"Mint a chat ticket - x402 Singularity Layer","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}