{"openapi":"3.1.0","info":{"title":"GlianaAI","version":"1","description":"Pay-per-call AI inference across generative-media models. No signup or API key; each call is settled over MPP. Per-model prices: GET /v1/price?model=. Rate limit ~120 requests/min per IP — need more? contact@glianalabs.com.","contact":{"name":"Gliana Labs","email":"contact@glianalabs.com","url":"https://ai.glianalabs.com"},"x-guidance":"Browse models at GET /v1/models, get a model’s exact inputs at GET /v1/schema?model=, quote at GET /v1/price?model=, then POST /v1/infer with { model, ...modelInput }. You get a 402 with the price; pay from your wallet and retry. No API key — payment is the gate. Rails: POST /v1/infer settles over MPP (USDC on Tempo); for native x402 USDC on Base or Solana, POST /x402/{model} (see the per-endpoint x-payment-info for each path’s exact protocol). File inputs (image/video/audio, e.g. video-to-video video_uri) take a public URL — upload a local file (free) at POST /v1/media (≤40MB) and pass the returned url."},"x-service-info":{"categories":["media","image-to-video","music","stt","text-to-image","text-to-video","tts","video-to-video","text"],"docs":{"homepage":"https://ai.glianalabs.com","apiReference":"https://ai.glianalabs.com/docs"}},"tags":[{"name":"media","description":"Generative media inference."},{"name":"image-to-video"},{"name":"music"},{"name":"stt"},{"name":"text-to-image"},{"name":"text-to-video"},{"name":"tts"},{"name":"video-to-video"},{"name":"text"}],"servers":[{"url":"https://api.glianalabs.com"}],"externalDocs":{"description":"GlianaAI","url":"https://ai.glianalabs.com"},"paths":{"/v1/infer":{"post":{"operationId":"infer","summary":"Run any of 90+ generative models pay-per-call.","tags":["media","image-to-video","music","stt","text-to-image","text-to-video","tts","video-to-video","text"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nOne endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music). Responds 402 Payment Required with the per-model price; pay from your own account and retry.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."},"prompt":{"type":"string","description":"Most models take a text prompt; STT/some take a file/url instead."}},"additionalProperties":true},"example":{"model":"grok-imagine-image","prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output + payment receipt.","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/infer\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"grok-imagine-image\",\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/infer', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"grok-imagine-image\",\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/chat/completions":{"post":{"operationId":"chatCompletions","summary":"Generate chat completions with any LLM pay-per-call.","tags":["text"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nDrop-in for the OpenAI chat completions API: swap the base URL, keep your SDK. Pick any text model from GET /v1/models (category \"text\"). Billing is a pre-charged ceiling — (estimated input tokens + max_tokens) at the model’s per-1M rates — so set max_tokens to bound spend; the response returns real `usage`. Supports messages (required), max_tokens, temperature, top_p, stream: true (SSE, OpenAI chunk format), tools/tool_choice (OpenAI function calling — tool_calls + role:\"tool\" round-trip), and vision (content parts with image_url on vision-capable models). 402 → pay → retry.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model","messages"],"properties":{"model":{"type":"string","description":"Text model id (see GET /v1/models, category \"text\")."},"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\"|\"assistant\"|\"system\"|\"tool\", content }].","items":{"type":"object","additionalProperties":true}},"max_tokens":{"type":"integer","description":"Output cap — bounds the pre-charged ceiling. Default 1024."},"tools":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"OpenAI function tools; response returns tool_calls."}},"additionalProperties":true},"example":{"model":"grok-4.3","messages":[{"role":"user","content":"Summarize x402 in one sentence."}],"max_tokens":256}}}},"responses":{"200":{"description":"OpenAI chat-completion body (+ costMicroUsd and a payment receipt)."},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/chat/completions\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"grok-4.3\",\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}],\"max_tokens\":256}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/chat/completions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"grok-4.3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ],\n    \"max_tokens\": 256\n  }),\n});\nconst data = await res.json();"}]}},"/v1/images/generations":{"post":{"operationId":"imagesGenerate","summary":"Generate an image from a text prompt with any model.","tags":["image","text-to-image"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nCapability endpoint — pick any matching model with GET /v1/models and pass it as { model }. Same pay-per-call charge as /v1/infer (402, then pay and retry); the per-model POST /x402/flux-2-pro-preview path also works.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."}},"additionalProperties":true},"example":{"model":"flux-2-pro-preview","prompt":"a red apple on a wooden table"}}}},"responses":{"200":{"description":"Result + payment receipt (media: { data: [{ url }] }; STT: { text }).","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/images/generations\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"flux-2-pro-preview\",\"prompt\":\"a red apple on a wooden table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/images/generations', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"flux-2-pro-preview\",\n    \"prompt\": \"a red apple on a wooden table\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/video/generations":{"post":{"operationId":"videoGenerate","summary":"Generate a video from a text prompt or an image.","tags":["video","text-to-video","image-to-video","video-to-video"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nCapability endpoint — pick any matching model with GET /v1/models and pass it as { model }. Same pay-per-call charge as /v1/infer (402, then pay and retry); the per-model POST /x402/wan-2.7-i2v path also works.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."}},"additionalProperties":true},"example":{"model":"wan-2.7-i2v","prompt":"a timelapse of clouds over mountains"}}}},"responses":{"200":{"description":"Result + payment receipt (media: { data: [{ url }] }; STT: { text }).","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/video/generations\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"wan-2.7-i2v\",\"prompt\":\"a timelapse of clouds over mountains\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/video/generations', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"wan-2.7-i2v\",\n    \"prompt\": \"a timelapse of clouds over mountains\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/audio/speech":{"post":{"operationId":"audioSpeech","summary":"Convert text to speech with any TTS model.","tags":["tts"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nCapability endpoint — pick any matching model with GET /v1/models and pass it as { model }. Same pay-per-call charge as /v1/infer (402, then pay and retry); the per-model POST /x402/grok-tts path also works.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."}},"additionalProperties":true},"example":{"model":"grok-tts","input":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Result + payment receipt (media: { data: [{ url }] }; STT: { text }).","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/audio/speech\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"grok-tts\",\"input\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/audio/speech', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"grok-tts\",\n    \"input\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/audio/transcriptions":{"post":{"operationId":"audioTranscribe","summary":"Transcribe audio to text with any STT model.","tags":["stt"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nCapability endpoint — pick any matching model with GET /v1/models and pass it as { model }. Same pay-per-call charge as /v1/infer (402, then pay and retry); the per-model POST /x402/grok-stt path also works.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."}},"additionalProperties":true},"example":{"model":"grok-stt","audio_url":"https://example.com/input.mp3"}}}},"responses":{"200":{"description":"Result + payment receipt (media: { data: [{ url }] }; STT: { text }).","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/audio/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"grok-stt\",\"audio_url\":\"https://example.com/input.mp3\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/audio/transcriptions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"grok-stt\",\n    \"audio_url\": \"https://example.com/input.mp3\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/music/generations":{"post":{"operationId":"musicGenerate","summary":"Generate music from a text prompt with any model.","tags":["music"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nCapability endpoint — pick any matching model with GET /v1/models and pass it as { model }. Same pay-per-call charge as /v1/infer (402, then pay and retry); the per-model POST /x402/music-2.6 path also works.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id (see GET /v1/models)."}},"additionalProperties":true},"example":{"model":"music-2.6","prompt":"a calm lo-fi beat"}}}},"responses":{"200":{"description":"Result + payment receipt (media: { data: [{ url }] }; STT: { text }).","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/music/generations\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"music-2.6\",\"prompt\":\"a calm lo-fi beat\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/music/generations', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"model\": \"music-2.6\",\n    \"prompt\": \"a calm lo-fi beat\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/rpc":{"post":{"operationId":"toolRpc","summary":"Send a JSON-RPC call to a supported chain.","tags":["utility"],"description":"**$0.002000 per call.** Flat price, charged only on success.\n\nMulti-chain JSON-RPC proxy — { chain, method, params }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"chain":"base","method":"eth_blockNumber","params":[]}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/rpc","costMicroUsd":2000,"chain":"base","result":"0x1a2b3c"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/rpc\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"chain\":\"base\",\"method\":\"eth_blockNumber\",\"params\":[]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/rpc', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"chain\": \"base\",\n    \"method\": \"eth_blockNumber\",\n    \"params\": []\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/search":{"post":{"operationId":"toolSearch","summary":"Search the web and return ranked results.","tags":["utility"],"description":"**$0.005000 per call.** Flat price, charged only on success.\n\nWeb search — { q, count?: 1-20, country?: \"ID\", lang?: \"id\" }. Returns title, url and snippet per hit, plus which upstream answered. Providers are tried in order, so one being rate-limited falls through rather than failing the call. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"q":"x402 payment protocol","count":5}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/search","costMicroUsd":5000,"query":"x402 payment protocol","provider":"brave","count":2,"results":[{"title":"x402 — an HTTP-native payment standard","url":"https://example.com/x402","snippet":"Uses HTTP 402 to attach a USDC payment to any request."},{"title":"Paying per API call with x402","url":"https://example.com/guide","snippet":"A client pays the challenge and retries the same request."}]}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/search\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"q\":\"x402 payment protocol\",\"count\":5}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/search', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"q\": \"x402 payment protocol\",\n    \"count\": 5\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/embed":{"post":{"operationId":"toolEmbed","summary":"Convert text into embedding vectors.","tags":["utility"],"description":"**$0.000500 per call.** Flat price, charged only on success.\n\nText embeddings for search, clustering and RAG — { texts: [\"...\"] } or { text: \"...\" }. Up to 100 texts and 32,000 characters per call. Multilingual by default, so Indonesian and English embed into the same space and can be compared directly. Returns the model id and dimensions alongside the vectors. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.000500"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"texts":["harga tiket kereta ke Bandung","train ticket price to Bandung"]}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/embed","costMicroUsd":500,"model":"@cf/baai/bge-m3","count":2,"dimensions":1024,"embeddings":[[0.0121,-0.0334,0.0087],[0.0118,-0.0301,0.0092]]}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/embed\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"texts\":[\"harga tiket kereta ke Bandung\",\"train ticket price to Bandung\"]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/embed', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"texts\": [\n      \"harga tiket kereta ke Bandung\",\n      \"train ticket price to Bandung\"\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/moderate":{"post":{"operationId":"toolModerate","summary":"Check text for unsafe content categories.","tags":["utility"],"description":"**$0.001000 per call.** Flat price, charged only on success.\n\nSafety check for user-supplied text — { text }, up to 8,000 characters. Returns flagged plus the guard model hazard categories and its raw verdict. The verdict is that model judgement, not a legal determination: treat it as a signal in your own moderation flow. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"text":"I will find where you live."}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/moderate","costMicroUsd":1000,"model":"@cf/meta/llama-guard-3-8b","flagged":true,"categories":["S1"],"verdict":"unsafe\nS1","chars":27}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/moderate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"I will find where you live.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/moderate', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"I will find where you live.\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/token-price":{"post":{"operationId":"toolTokenPrice","summary":"Fetch spot token prices by ticker symbol.","tags":["utility"],"description":"**$0.002000 per call.** Flat price, charged only on success.\n\nSpot token prices — { symbols: \"BTC,ETH\", vs? } (CoinGecko ids also accepted via the same field or { ids }). Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"symbols":"BTC,ETH","vs":"usd"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/token-price","costMicroUsd":2000,"vs":"USD","prices":{"BTC":68000.12,"ETH":3450.5},"sources":{"BTC":"coinbase","ETH":"coinbase"}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/token-price\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"symbols\":\"BTC,ETH\",\"vs\":\"usd\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/token-price', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"symbols\": \"BTC,ETH\",\n    \"vs\": \"usd\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/exchange-rate":{"post":{"operationId":"toolExchangeRate","summary":"Convert fiat currencies at mid-market rates.","tags":["utility"],"description":"**$0.002000 per call.** Flat price, charged only on success.\n\nMid-market fiat exchange rates — { from?: \"USD\", to?: \"IDR,EUR\", amount? }. Omit `to` for every currency. Non-USD pairs are cross-rated via USD; reference rates, not dealable quotes. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"from":"USD","to":"IDR,EUR","amount":100}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/exchange-rate","costMicroUsd":2000,"base":"USD","rates":{"IDR":18076.9467,"EUR":0.875576},"amount":100,"converted":{"IDR":1807694.6663,"EUR":87.5576},"as_of":"30 Jul 2026","source":"open.er-api.com","note":"Mid-market reference rates, not dealable quotes."}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/exchange-rate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"from\":\"USD\",\"to\":\"IDR,EUR\",\"amount\":100}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/exchange-rate', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"from\": \"USD\",\n    \"to\": \"IDR,EUR\",\n    \"amount\": 100\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/address-id":{"post":{"operationId":"toolAddressId","summary":"Parse an Indonesian address into components.","tags":["utility"],"description":"**$0.003000 per call.** Flat price, charged only on success.\n\nParse a messy Indonesian address into components — { address }. kabupaten_kota and provinsi are resolved from official Kepmendagri data rather than from a model, so they cannot be invented, and `verified` reports where the model disagreed. Returns jalan, nomor, rt, rw, kelurahan, kecamatan, kabupaten_kota, provinsi, kode_pos, the official kode with coordinates, and a confidence. kecamatan/kelurahan/kode_pos are as written and unverified. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"address":"Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/address-id","costMicroUsd":3000,"input":"Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152","parsed":{"jalan":"Merdeka","nomor":"12","rt":"3","rw":"5","kelurahan":"Gedong Air","kecamatan":"Tanjung Karang Barat","kabupaten_kota":"Kota Bandar Lampung","provinsi":"Lampung","kode_pos":"35152"},"wilayah":{"kode":"18.71","kabupaten_kota":"Kota Bandar Lampung","provinsi":"Lampung","lat":-5.42958,"lng":105.26257},"verified":{"kabupaten_kota":true,"provinsi":true},"confidence":"high","notes":[]}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/address-id\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\":\"Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/address-id', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"address\": \"Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/product-listing":{"post":{"operationId":"toolProductListing","summary":"Generate marketplace listing copy from a photo.","tags":["utility"],"description":"**$0.008000 per call.** Flat price, charged only on success.\n\nTurn a product photo into ready-to-post marketplace copy — { image_url | image_base64 }. Returns title and description in BOTH Indonesian and English, plus category, condition, material, colours and search tags. Written from what is visible only: brands, sizes, materials and warranties are never inferred, and anything the photo does not show is null. Nothing is stored. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/product.jpg"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/product-listing","costMicroUsd":8000,"listing":{"title_id":"Tas Selempang Kulit Coklat Pria","title_en":"Men's Brown Leather Crossbody Bag","description_id":"Tas selempang berbahan kulit warna coklat. Terdapat tali bahu yang bisa diatur dan satu kompartemen utama dengan ritsleting.","description_en":"Brown leather crossbody bag with an adjustable shoulder strap and a single zipped main compartment.","category":"Bags & Luggage","condition":"new","material":"Leather","colors":["coklat","brown"],"tags":["tas selempang","tas kulit","crossbody bag","leather bag","tas pria"]},"model":"@cf/mistralai/mistral-small-3.1-24b-instruct"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/product-listing\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/product.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/product-listing', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/product.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/ocr-id":{"post":{"operationId":"toolOcrId","summary":"Read an ID document into structured JSON.","tags":["utility"],"description":"**$0.005000 per call.** Flat price, charged only on success.\n\nRead an identity document (Indonesian KTP/SIM/KK/NPWP, foreign passport or driving licence) into structured JSON — { image_url | image_base64 }. Indonesian documents also get structural NIK verification (region code, encoded birth date and gender) as a confidence signal, not proof of authenticity. Nothing is stored, and no face matching is performed. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/ktp.jpg"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/ocr-id","costMicroUsd":5000,"fields":{"document_type":"KTP","issuing_country":"INDONESIA","id_number":"1871014102900002","full_name":"BUDI SANTOSO","birth_place":"BANDAR LAMPUNG","birth_date":"01-02-1990","gender":"PEREMPUAN","address":"JL MERDEKA NO 12","rt_rw":"003/005","village":"GEDONG AIR","district":"TANJUNG KARANG BARAT","city":null,"province":null,"expiry_date":"SEUMUR HIDUP","blood_type":"O","nationality":"INDONESIA","religion":"ISLAM","marital_status":"BELUM MENIKAH","sim_class":null},"verification":{"ok":true,"format":true,"region":{"kode":"18.71","kabupaten_kota":"Kota Bandar Lampung","provinsi":"Lampung"},"birth_date":"1990-02-01","gender":"P","agrees":{"birth_date":true,"gender":true},"notes":[]},"model":"@cf/mistralai/mistral-small-3.1-24b-instruct"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/ocr-id\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/ktp.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/ocr-id', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/ktp.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/face-detect":{"post":{"operationId":"toolFaceDetect","summary":"Detect faces with boxes, age and gender.","tags":["utility"],"description":"**$0.002000 per call.** Flat price, charged only on success.\n\nDetect faces → boxes + score + age/gender, no embeddings — { image_url | image_base64 }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/face.jpg"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/face-detect","costMicroUsd":2000}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/face-detect\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/face.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/face-detect', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/face.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/face-embed":{"post":{"operationId":"toolFaceEmbed","summary":"Extract a 512-d embedding for each face.","tags":["utility"],"description":"**$0.005000 per call.** Flat price, charged only on success.\n\nDetect every face → 512-d ArcFace embedding per face (+ bbox, score, age/gender) — { image_url | image_base64 }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/face.jpg"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/face-embed","costMicroUsd":5000}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/face-embed\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/face.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/face-embed', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/face.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/face-compare":{"post":{"operationId":"toolFaceCompare","summary":"Compare two faces for similarity and match.","tags":["utility"],"description":"**$0.008000 per call.** Flat price, charged only on success.\n\nCompare two faces → cosine similarity + match — { a:{image_url|image_base64}, b:{image_url|image_base64} }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"a":{"image_url":"https://example.com/a.jpg"},"b":{"image_url":"https://example.com/b.jpg"}}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/face-compare","costMicroUsd":8000}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/face-compare\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"a\":{\"image_url\":\"https://example.com/a.jpg\"},\"b\":{\"image_url\":\"https://example.com/b.jpg\"}}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/face-compare', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"a\": {\n      \"image_url\": \"https://example.com/a.jpg\"\n    },\n    \"b\": {\n      \"image_url\": \"https://example.com/b.jpg\"\n    }\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/youtube-summary":{"post":{"operationId":"toolYoutubeSummary","summary":"Summarize a YouTube video up to 60 minutes.","tags":["utility"],"description":"**$0.150000 per call.** Flat price, charged only on success.\n\nSummarize a YouTube video (Gemini watches the URL) — { url, style?: bullets|paragraph|chapters, language? }; videos ≤60 min. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.150000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","style":"bullets"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/youtube-summary","costMicroUsd":150000,"summary":"- The video explains ...\n- It then shows ...","video":{"id":"dQw4w9WgXcQ","title":"Example video","channel":"Example Channel","durationSeconds":212}}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/youtube-summary\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"style\":\"bullets\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/youtube-summary', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n    \"style\": \"bullets\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/extract":{"post":{"operationId":"toolExtract","summary":"Extract typed JSON from a page by schema.","tags":["utility"],"description":"**$0.010000 per call.** Flat price, charged only on success.\n\nRender a page and return JSON matching a schema you declare — { url, schema, prompt? }. schema is { field: \"description\" } or { field: { type, description } }, type one of string|number|boolean|string[]. Values are coerced to the declared types; anything the page does not state is null and listed in `missing` rather than invented. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com/product","schema":{"title":"the product name","price":{"type":"number","description":"listed price"}}}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/extract","costMicroUsd":10000,"url":"https://example.com/product","data":{"title":"Widget Pro","price":249000,"in_stock":true},"missing":[]}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/extract\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com/product\",\"schema\":{\"title\":\"the product name\",\"price\":{\"type\":\"number\",\"description\":\"listed price\"}}}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/extract', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com/product\",\n    \"schema\": {\n      \"title\": \"the product name\",\n      \"price\": {\n        \"type\": \"number\",\n        \"description\": \"listed price\"\n      }\n    }\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/scrape":{"post":{"operationId":"toolScrape","summary":"Scrape a rendered page to clean markdown.","tags":["utility"],"description":"**$0.005000 per call.** Flat price, charged only on success.\n\nRender a page (JS) → clean markdown — { url }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/scrape","costMicroUsd":5000,"url":"https://example.com","markdown":"# Example\n\nSome page text..."}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/scrape\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/scrape', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/screenshot":{"post":{"operationId":"toolScreenshot","summary":"Capture a page screenshot as a hosted PNG.","tags":["utility"],"description":"**$0.005000 per call.** Flat price, charged only on success.\n\nCapture a page as PNG → hosted URL — { url, fullPage? }. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/screenshot","costMicroUsd":5000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png","source":"https://example.com"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/screenshot\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/screenshot', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/og-image":{"post":{"operationId":"toolOgImage","summary":"Render a branded 1200x630 OG card as a PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nRender a 1200×630 branded OG/social card from a title → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"title":"Your headline","subtitle":"a short tagline"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/og-image","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/og-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\":\"Your headline\",\"subtitle\":\"a short tagline\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/og-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"title\": \"Your headline\",\n    \"subtitle\": \"a short tagline\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/youtube-thumbnail":{"post":{"operationId":"toolYoutubeThumbnail","summary":"Render a 1280x720 YouTube thumbnail as a PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nRender a 1280×720 YouTube thumbnail (bold title over an optional background image) → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"title":"I tried this for 30 days","subtitle":"the results","background":"https://example.com/bg.png"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/youtube-thumbnail","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/youtube-thumbnail\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\":\"I tried this for 30 days\",\"subtitle\":\"the results\",\"background\":\"https://example.com/bg.png\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/youtube-thumbnail', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"title\": \"I tried this for 30 days\",\n    \"subtitle\": \"the results\",\n    \"background\": \"https://example.com/bg.png\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/quote-card":{"post":{"operationId":"toolQuoteCard","summary":"Render a shareable quote image as a PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nRender a 1200×630 shareable quote image → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"quote":"Make it work, make it right, make it fast.","author":"Kent Beck"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/quote-card","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/quote-card\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"quote\":\"Make it work, make it right, make it fast.\",\"author\":\"Kent Beck\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/quote-card', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"quote\": \"Make it work, make it right, make it fast.\",\n    \"author\": \"Kent Beck\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/code-image":{"post":{"operationId":"toolCodeImage","summary":"Render a code snippet as a dark window PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nRender a code snippet as a clean dark window image → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"code":"console.log('hello')","title":"app.js"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/code-image","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/code-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"code\":\"console.log('hello')\",\"title\":\"app.js\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/code-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"code\": \"console.log('hello')\",\n    \"title\": \"app.js\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/tweet-image":{"post":{"operationId":"toolTweetImage","summary":"Render a tweet-style card image as a PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nRender a tweet-style card → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"text":"shipping > talking","name":"GlianaAI","handle":"glianalabs"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/tweet-image","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/tweet-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"shipping > talking\",\"name\":\"GlianaAI\",\"handle\":\"glianalabs\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/tweet-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"shipping > talking\",\n    \"name\": \"GlianaAI\",\n    \"handle\": \"glianalabs\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/meme":{"post":{"operationId":"toolMeme","summary":"Render meme text over an image as a PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nTop/bottom Impact text over an image → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image":"https://example.com/cat.jpg","top":"one does not simply","bottom":"make a meme api"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/meme","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/meme\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\":\"https://example.com/cat.jpg\",\"top\":\"one does not simply\",\"bottom\":\"make a meme api\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/meme', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image\": \"https://example.com/cat.jpg\",\n    \"top\": \"one does not simply\",\n    \"bottom\": \"make a meme api\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/card":{"post":{"operationId":"toolCard","summary":"Render a social card sized by preset as PNG.","tags":["utility"],"description":"**$0.020000 per call.** Flat price, charged only on success.\n\nTemplated social card sized by preset (og/instagram-square/story/linkedin/podcast) → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"preset":"instagram-square","title":"Big news","subtitle":"we shipped it"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/card","costMicroUsd":20000,"url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/card\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"preset\":\"instagram-square\",\"title\":\"Big news\",\"subtitle\":\"we shipped it\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/card', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"preset\": \"instagram-square\",\n    \"title\": \"Big news\",\n    \"subtitle\": \"we shipped it\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/auto-og":{"post":{"operationId":"toolAutoOg","summary":"Scrape a URL title and render an OG card PNG.","tags":["utility"],"description":"**$0.030000 per call.** Flat price, charged only on success.\n\nScrape a URL's title + render a branded OG card from it → PNG URL. Utility endpoint (not an AI model) — flat price, paid like /v1/infer (402, then pay and retry).","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result, plus the payment receipt headers.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","description":"Tool id, echoed back."},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."}},"additionalProperties":true},"example":{"tool":"tools/auto-og","costMicroUsd":30000,"sourceTitle":"Example Domain","url":"https://api.glianalabs.com/v1/media/ab12cd34.png"}}}},"402":{"description":"Payment Required — pay the challenge and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/tools/auto-og\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/auto-og', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/tools/wilayah":{"get":{"operationId":"toolWilayah","summary":"List Indonesian provinces and regencies.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Official Indonesian administrative regions — 38 provinsi and 514 kabupaten/kota per Kepmendagri No. 300.2.2-2430 Tahun 2025, with the official kode, capital, centroid, timezone, area and population. Call with ?kode=18 for one region (a provinsi also returns its regencies), ?q=bandung to search by name, ?induk=18 to list one province, or no params for all 38 provinces. Level 1-2 only — kecamatan and desa are not included.","security":[],"parameters":[{"name":"kode","in":"query","description":"Official code, e.g. 18 (provinsi) or 18.71 (kabupaten/kota).","schema":{"type":"string"}},{"name":"q","in":"query","description":"Name search; best match first, kota preferred over kabupaten for an ambiguous name.","schema":{"type":"string"}},{"name":"induk","in":"query","description":"Parent provinsi code — lists every kabupaten/kota inside it.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Restrict to provinsi or kabupaten_kota.","schema":{"type":"string","enum":["provinsi","kabupaten_kota"]}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"source":"Kepmendagri No. 300.2.2-2430 Tahun 2025 (via github.com/cahyadsn/wilayah)","scope":"provinsi + kabupaten/kota (level 1-2)","count":3,"results":[{"kode":"32.73","nama":"Kota Bandung","level":"kabupaten_kota","induk":"32","ibukota":"Bandung","lat":-6.92222,"lng":107.60694,"timezone":"WIB","utc_offset":7,"luas_km2":167.7,"penduduk":2569107}]}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/wilayah\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/wilayah', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/tools/verify-nik":{"get":{"operationId":"toolVerifyNik","summary":"Verify an Indonesian NIK structurally.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge, no model call, instant. Checks an Indonesian NIK (national ID number) against arithmetic: 16-digit format, the region code in digits 1-4 resolved against official Kepmendagri data, and the birth date and gender the number encodes. Pass &birth_date=DD-MM-YYYY and &gender=L|P to cross-check what a user typed against what the number says — that is what catches a transposed digit. Proves consistency, NOT authenticity: a well-formed fabrication passes.","security":[],"parameters":[{"name":"nik","in":"query","required":true,"description":"16-digit Indonesian NIK. Spaces are tolerated.","schema":{"type":"string"}},{"name":"birth_date","in":"query","description":"Optional claimed birth date to cross-check, e.g. 01-02-1990.","schema":{"type":"string"}},{"name":"gender","in":"query","description":"Optional claimed gender to cross-check: L/LAKI-LAKI/M/MALE or P/PEREMPUAN/F/FEMALE.","schema":{"type":"string"}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"ok":true,"format":true,"region":{"kode":"18.71","kabupaten_kota":"Kota Bandar Lampung","provinsi":"Lampung"},"birth_date":"1990-02-01","gender":"P","agrees":{"birth_date":true,"gender":true},"notes":[],"note":"Structural check only: 16-digit format, the region code against official Kepmendagri data, and the birth date and gender the number encodes. It cannot tell a real NIK from a well-formed fabrication."}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/verify-nik\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/verify-nik', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/tools/terbilang":{"get":{"operationId":"toolTerbilang","summary":"Convert a number into Indonesian words.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge, no model call. Indonesian number-to-words for the amount-in-words line required on invoices, kwitansi and cheques. Pass ?n=249000 (Indonesian thousands separators accepted). Returns the plain words and the capitalised rupiah phrasing. Whole numbers only — decimals are not spelled.","security":[],"parameters":[{"name":"n","in":"query","required":true,"description":"Whole number, e.g. 249000 or 249.000.","schema":{"type":"string"}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"number":249000,"terbilang":"dua ratus empat puluh sembilan ribu","rupiah":"Dua ratus empat puluh sembilan ribu rupiah"}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/terbilang\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/terbilang', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/tools/verify-npwp":{"get":{"operationId":"toolVerifyNpwp","summary":"Verify an Indonesian tax number structurally.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge, no model call. A 16-digit NPWP is the holder's NIK (since 2024) and gets the full region, birth-date and gender check; the 15-digit legacy form is decomposed into taxpayer id, KPP code and branch code and checked for structure only. Neither proves the number was actually issued — `checks` says exactly what was tested.","security":[],"parameters":[{"name":"npwp","in":"query","required":true,"description":"15 or 16 digits; dots and dashes ignored.","schema":{"type":"string"}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"ok":true,"format":"legacy15","normalized":"01.234.567.8-901.000","parts":{"taxpayer_id":"012345678","kpp_code":"901","branch_code":"000","is_head_office":true},"nik":null,"checks":["15-digit legacy format: length and structure only"],"notes":["Structure only — the legacy check digit is not verified, so a well-formed number that was never issued will pass."]}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/verify-npwp\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/verify-npwp', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/tools/qris":{"get":{"operationId":"toolQris","summary":"Parse a QRIS code and optionally set an amount.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge, no model call. Decodes a QRIS payment code (EMVCo TLV) into merchant name, city, NMID, acquirer, MCC, currency and amount, and reports whether the CRC-16 is intact — `valid_crc` false means the code is damaged or mistyped and nothing else should be trusted. Add &amount=50000 to also get the same merchant code with that amount set (the standard static-to-dynamic conversion): the merchant account template is preserved byte for byte, the CRC recomputed, and the result re-parsed before it is returned. Does NOT mint a merchant QR — the NMID is issued by an acquirer and is never invented. Test with your acquirer before production use.","security":[],"parameters":[{"name":"payload","in":"query","required":true,"description":"The QRIS string from the QR code.","schema":{"type":"string"}},{"name":"amount","in":"query","description":"Optional amount to set, e.g. 50000. Refused if the source CRC is invalid.","schema":{"type":"string"}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"valid_crc":true,"crc":{"found":"A1B2","computed":"A1B2"},"type":"static","merchant_name":"WARUNG GLIANA","merchant_city":"BANDAR LAMPUNG","country":"ID","currency":"360","amount":null,"mcc":"5814","nmid":"ID1234567890123","acquirer":"ID.CO.QRIS.WWW"}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/qris\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/qris', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/tools/prayer-times":{"get":{"operationId":"toolPrayerTimes","summary":"Get Islamic prayer times for a place and date.","tags":["utility"],"description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Jadwal sholat (imsak, subuh, terbit, dzuhur, ashar, maghrib, isya) computed from solar position. Pass ?city=Bandar Lampung (any Indonesian kabupaten/kota name or kode — the coordinate and timezone come from the official wilayah data) or ?lat=&lng=&tz=. ?days=30 returns a whole month in one call. Methods: kemenag (default, Indonesia), mwl, isna, egypt, makkah, karachi; madhab shafi (default) or hanafi changes ashar only. Calculated times are typically within 1-2 minutes of the official Kemenag table and are not a substitute for a local mosque schedule. Where the sun never reaches the required depression (high latitudes in summer) the affected times are null rather than guessed.","security":[],"parameters":[{"name":"city","in":"query","description":"Indonesian kabupaten/kota name or kode. Alternative to lat/lng/tz.","schema":{"type":"string"}},{"name":"lat","in":"query","description":"Latitude, -90..90. Requires lng.","schema":{"type":"number"}},{"name":"lng","in":"query","description":"Longitude, -180..180.","schema":{"type":"number"}},{"name":"tz","in":"query","description":"UTC offset in hours (7 WIB, 8 WITA, 9 WIT). Defaults to the offset implied by lng.","schema":{"type":"number"}},{"name":"date","in":"query","description":"YYYY-MM-DD. Defaults to today in the target timezone.","schema":{"type":"string"}},{"name":"days","in":"query","description":"Consecutive days to return, 1-31. Default 1.","schema":{"type":"integer","minimum":1,"maximum":31}},{"name":"method","in":"query","description":"Calculation authority.","schema":{"type":"string","enum":["kemenag","mwl","isna","egypt","makkah","karachi"]}},{"name":"madhab","in":"query","description":"Asr shadow rule.","schema":{"type":"string","enum":["shafi","hanafi"]}}],"responses":{"200":{"description":"Data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"location":{"kode":"18.71","nama":"Kota Bandar Lampung","level":"kabupaten_kota","induk":"18","ibukota":"Bandar Lampung","lat":-5.42958,"lng":105.26257,"timezone":"WIB","utc_offset":7},"method":{"id":"kemenag","label":"Kementerian Agama Republik Indonesia","fajr_angle":20,"isha":18,"ihtiyati":true},"madhab":"shafi","note":"Calculated from solar position, typically within 1-2 minutes of the official Kemenag table. Not a substitute for your local mosque schedule.","date":"2026-07-30","times":{"imsak":"04:36","fajr":"04:50","sunrise":"06:07","dhuhr":"12:07","asr":"15:30","maghrib":"18:04","isha":"19:16"}}}}},"400":{"description":"Bad or missing parameters — nothing is charged either way."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/tools/prayer-times\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/tools/prayer-times', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/recipes/image-to-video":{"post":{"operationId":"recipe_image_to_video","summary":"Generate a video from text via an image step.","tags":["recipe","video"],"description":"**$0.445550 per call.** Flat price, charged only on success.\n\nRecipe: text → image → animated video (cheapest path to a video; better subject control). Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Price = sum of all steps, charged once (402 → pay → retry) — the advertised amount is the DEFAULT pipeline; model/duration/resolution overrides re-price it. Returns each step's output + the final url.","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.445550"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text description of the subject/scene the pipeline should generate."}},"additionalProperties":true},"example":{"prompt":"an italian-brainrot cat-shark hybrid, 3d meme","motionPrompt":"it dances and spins"}}}},"responses":{"200":{"description":"Each step output + final url."},"402":{"description":"Payment Required — pay and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/recipes/image-to-video\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"an italian-brainrot cat-shark hybrid, 3d meme\",\"motionPrompt\":\"it dances and spins\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/recipes/image-to-video', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"an italian-brainrot cat-shark hybrid, 3d meme\",\n    \"motionPrompt\": \"it dances and spins\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/recipes/image-to-video-audio":{"post":{"operationId":"recipe_image_to_video_audio","summary":"Generate a video with audio from a text prompt.","tags":["recipe","video"],"description":"**$0.844300 per call.** Flat price, charged only on success.\n\nRecipe: text → image → video with native AUDIO. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Price = sum of all steps, charged once (402 → pay → retry) — the advertised amount is the DEFAULT pipeline; model/duration/resolution overrides re-price it. Returns each step's output + the final url.","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.844300"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text description of the subject/scene the pipeline should generate."}},"additionalProperties":true},"example":{"prompt":"an italian-brainrot cat-shark hybrid, 3d meme","motionPrompt":"it dances and spins"}}}},"responses":{"200":{"description":"Each step output + final url."},"402":{"description":"Payment Required — pay and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/recipes/image-to-video-audio\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"an italian-brainrot cat-shark hybrid, 3d meme\",\"motionPrompt\":\"it dances and spins\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/recipes/image-to-video-audio', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"an italian-brainrot cat-shark hybrid, 3d meme\",\n    \"motionPrompt\": \"it dances and spins\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/recipes/image-to-video-hd":{"post":{"operationId":"recipe_image_to_video_hd","summary":"Generate an HD video from text via an image.","tags":["recipe","video"],"description":"**$0.470750 per call.** Flat price, charged only on success.\n\nRecipe: text → higher-fidelity image → animated video. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Price = sum of all steps, charged once (402 → pay → retry) — the advertised amount is the DEFAULT pipeline; model/duration/resolution overrides re-price it. Returns each step's output + the final url.","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.470750"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text description of the subject/scene the pipeline should generate."}},"additionalProperties":true},"example":{"prompt":"an italian-brainrot cat-shark hybrid, 3d meme","motionPrompt":"it dances and spins"}}}},"responses":{"200":{"description":"Each step output + final url."},"402":{"description":"Payment Required — pay and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/recipes/image-to-video-hd\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"an italian-brainrot cat-shark hybrid, 3d meme\",\"motionPrompt\":\"it dances and spins\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/recipes/image-to-video-hd', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"an italian-brainrot cat-shark hybrid, 3d meme\",\n    \"motionPrompt\": \"it dances and spins\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/recipes/brainrot-video":{"post":{"operationId":"recipe_brainrot_video","summary":"Generate a random brainrot character video.","tags":["recipe","video"],"description":"**$0.997500 per call.** Flat price, charged only on success.\n\nRecipe: random Italian-brainrot character → animated video with audio (also the brainrot-video model). Multi-model pipeline. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Price = sum of all steps, charged once (402 → pay → retry) — the advertised amount is the DEFAULT pipeline; model/duration/resolution overrides re-price it. Returns each step's output + the final url.","security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.997500"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"Text description of the subject/scene the pipeline should generate."}},"additionalProperties":true},"example":{"motionPrompt":"it dances and bounces"}}}},"responses":{"200":{"description":"Each step output + final url."},"402":{"description":"Payment Required — pay and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/recipes/brainrot-video\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"motionPrompt\":\"it dances and bounces\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/recipes/brainrot-video', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"motionPrompt\": \"it dances and bounces\"\n  }),\n});\nconst data = await res.json();"}]}},"/v1/session/infer":{"post":{"operationId":"sessionInfer","summary":"Run any of 90+ models over a payment channel (pay-as-you-go).","tags":["media","image-to-video","music","stt","text-to-image","text-to-video","tts","video-to-video","text"],"description":"**$0.0001–$60 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nOpen one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.","security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.0001","max":"60"},"protocols":[{"mpp":{"method":"tempo","intent":"session","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Model id or full run id."}},"additionalProperties":true}}}},"responses":{"200":{"description":"Model output + payment receipt.","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"example":{"model":"nano-banana-2","costMicroUsd":92400,"output":{"url":"https://api.glianalabs.com/v1/media/8f2c1d9e4a7b3f60.png","contentType":"image/png","sizeBytes":1834127}}}}},"402":{"description":"Payment Required — open/extend the channel and retry."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/session/infer\"\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/session/infer', {\n  method: 'POST',\n});\nconst data = await res.json();"}]}},"/v1/keys/balance":{"get":{"operationId":"keyBalance","summary":"Check the prepaid balance behind an API key.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Send `Authorization: Bearer gk_…`. Callers who cannot settle per call from a wallet can instead hold a prepaid balance (topped up in the dashboard) and spend it with an API key; every paid endpoint accepts either. Returns the remaining balance in micro-USD.","security":[],"responses":{"200":{"description":"Remaining prepaid balance.","content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string"},"balance_micro_usd":{"type":"integer"},"balance_usd":{"type":"string"}}}}}},"401":{"description":"Missing, unknown or revoked API key."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/keys/balance\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/keys/balance', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/models":{"get":{"operationId":"models","summary":"List all available models with per-call prices.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge — browsing the catalog costs nothing.","security":[],"responses":{"200":{"description":"Model catalog.","content":{"application/json":{"schema":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/models\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/models', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/schema":{"get":{"operationId":"schema","summary":"Get a model's input fields, types and ranges.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Pass ?model=<id>. Returns each input field with its type/enum/range and a `fileRef` flag for file inputs (image/video/audio) — those take a public URL; upload a local file at POST /v1/media.","security":[],"parameters":[{"name":"model","in":"query","required":true,"description":"Model id or full run id (see GET /v1/models).","schema":{"type":"string"}}],"responses":{"200":{"description":"Model input schema.","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"props":{"type":"object","additionalProperties":true}}}}}}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/schema\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/schema', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/price":{"get":{"operationId":"price","summary":"Get the exact price of a single model call.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Pass ?model=<id> (plus any pricing-relevant fields as query params, e.g. duration/resolution) to get the exact per-call price.","security":[],"parameters":[{"name":"model","in":"query","required":true,"description":"Model id or full run id (see GET /v1/models).","schema":{"type":"string"}}],"responses":{"200":{"description":"Price quote.","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer"},"unit":{"type":"string"},"units":{"type":"integer"}}}}}}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/price\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/price', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/v1/media":{"post":{"operationId":"upload","summary":"Upload a source file and get a hosted URL.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Upload a video / image / audio file to use as a model input (e.g. an image-to-video source, or a video-to-video `video_uri`). Send the raw file as the request body with its Content-Type; max 40 MB. Returns { url } — pass that URL into the model field. Use this when an input is too big for an inline value, or you don't already have a public URL.","security":[],"requestBody":{"required":true,"description":"Raw file bytes. Content-Type must be video/*, image/*, or audio/*.","content":{"video/*":{"schema":{"type":"string","format":"binary"}},"image/*":{"schema":{"type":"string","format":"binary"}},"audio/*":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Stored — use `url` as a model input.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"contentType":{"type":"string"},"sizeBytes":{"type":"integer"}}}}}},"413":{"description":"File too large (max 40 MB)."},"415":{"description":"Unsupported type (video/image/audio only)."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/v1/media\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/media', {\n  method: 'POST',\n});\nconst data = await res.json();"}]}},"/v1/media/{key}":{"get":{"operationId":"getMedia","summary":"Fetch a stored media file by its key.","description":"**Free** — no API key, no payment, no signup.\n\nNo charge. Serves an uploaded input or a generated output by the key from its /v1/media URL (32-hex id, optional file extension). Responds with the raw file bytes.","security":[],"parameters":[{"name":"key","in":"path","required":true,"description":"Media key from a /v1/media URL — 32 hex chars, optionally followed by a file extension (e.g. 0f...aa.png).","schema":{"type":"string","pattern":"^[0-9a-f]{32}(\\.[a-z0-9]+)?$"}}],"responses":{"200":{"description":"The stored file (content-type matches the upload/output).","content":{"video/*":{"schema":{"type":"string","format":"binary"}},"image/*":{"schema":{"type":"string","format":"binary"}},"audio/*":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"Unknown key."}},"x-codeSamples":[{"lang":"cURL","source":"curl \"https://api.glianalabs.com/v1/media/YOUR_KEY\"\n# Free — no payment, no key, no signup."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/v1/media/YOUR_KEY', {\n  method: 'GET',\n});\nconst data = await res.json();"}]}},"/x402/wan-2.7-i2v":{"post":{"operationId":"x402_wan-2.7-i2v","summary":"Generate a video with wan-2.7-i2v via x402.","description":"**$0.360000–$2.700000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call wan-2.7-i2v (image-to-video). Priced per second ($0.180000/sec) — final price = video length x rate (duration 2-15s).","tags":["image-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.360000","max":"2.700000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["image"],"properties":{"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":2,"maximum":15},"image":{"type":"string","description":"Input image (HTTPS URL or upload) to guide or edit from. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"negative_prompt":{"type":"string","description":"What to avoid in the output."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"image":"https://example.com/input.jpg"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/wan-2.7-i2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\":\"https://example.com/input.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/wan-2.7-i2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image\": \"https://example.com/input.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hh1-i2v":{"post":{"operationId":"x402_hh1-i2v","summary":"Generate a video with hh1-i2v via x402.","description":"**$1.218000–$6.090000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hh1-i2v (image-to-video). Priced per second ($0.406000/sec) — final price = video length x rate (duration 3-15s).","tags":["image-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"1.218000","max":"6.090000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["image"],"properties":{"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":3,"maximum":15},"image":{"type":"string","description":"Input image (HTTPS URL or upload) to guide or edit from. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"negative_prompt":{"type":"string","description":"What to avoid in the output."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"image":"https://example.com/input.jpg"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hh1-i2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\":\"https://example.com/input.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hh1-i2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image\": \"https://example.com/input.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hh1.1-i2v":{"post":{"operationId":"x402_hh1.1-i2v","summary":"Generate a video with hh1.1-i2v via x402.","description":"**$0.783000–$3.915000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hh1.1-i2v (image-to-video). Priced per second ($0.261000/sec) — final price = video length x rate (duration 3-15s).","tags":["image-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.783000","max":"3.915000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","description":"Input image (HTTPS URL or upload) to guide or edit from. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"negative_prompt":{"type":"string","description":"What to avoid in the output."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":3,"maximum":15},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"image":"https://example.com/input.jpg"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hh1.1-i2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\":\"https://example.com/input.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hh1.1-i2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image\": \"https://example.com/input.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hh1.1-r2v":{"post":{"operationId":"x402_hh1.1-r2v","summary":"Generate a video with hh1.1-r2v via x402.","description":"**$0.783000–$3.915000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hh1.1-r2v (image-to-video). Priced per second ($0.261000/sec) — final price = video length x rate (duration 3-15s).","tags":["image-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.783000","max":"3.915000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt","images"],"properties":{"prompt":{"type":"string","description":"Text prompt describing what to generate."},"images":{"type":"array","description":"Reference images to guide generation. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"ratio":{"type":"string","description":"Output aspect ratio.","enum":["16:9","9:16","3:4","4:3","1:1","21:9","9:21","5:4","4:5"]},"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":3,"maximum":15},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table","images":["https://example.com/input.jpg"]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hh1.1-r2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\",\"images\":[\"https://example.com/input.jpg\"]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hh1.1-r2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\",\n    \"images\": [\n      \"https://example.com/input.jpg\"\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/music-2.6":{"post":{"operationId":"x402_music-2.6","summary":"Generate music with music-2.6 via x402.","description":"**$0.192000 per call.** Flat price, charged only on success.\n\nPay-per-call music-2.6 (music).","tags":["music"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.192000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"bitrate":{"type":"number","description":"Audio bitrate","enum":[32000,64000,128000,256000]},"format":{"type":"string","description":"Audio format","enum":["mp3","wav"]},"is_instrumental":{"type":"boolean","description":"Generate instrumental music (no vocals)"},"lyrics":{"type":"string","description":"Song lyrics, using \\n to separate lines"},"lyrics_optimizer":{"type":"boolean","description":"Automatically generate lyrics based on the prompt description"},"prompt":{"type":"string","description":"Description of the music style, mood, and scenario"},"sample_rate":{"type":"number","description":"Audio sample rate","enum":[16000,24000,32000,44100]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/music-2.6\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/music-2.6', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-stt":{"post":{"operationId":"x402_grok-stt","summary":"Transcribe audio with grok-stt via x402.","description":"**$0.009006 per call.** Flat price, charged only on success.\n\nPay-per-call grok-stt (stt).","tags":["stt"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.009006"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audio_format":{"type":"string","description":"Format hint for raw/headerless audio. Required for pcm, mulaw, alaw. Omit for container formats (mp3, wav, etc.) — xAI auto-detects them.","enum":["pcm","mulaw","alaw"]},"channels":{"type":"integer","description":"Number of audio channels (2–8). Required only for multichannel raw audio; auto-detected for container formats.","minimum":2,"maximum":8},"diarize":{"type":"boolean","description":"When true, enables speaker diarization. Each word in the response includes a `speaker` integer identifying the detected speaker."},"file":{"type":"string","description":"Audio file as a data URI (data:audio/...;base64,...) or an HTTPS URL the gateway fetches and uploads. Supported container formats: flac, mp3, mp4, m4a, mkv, ogg, opus, wav, aac. Raw formats (pcm, mulaw, alaw) also accepted — supply audio_format and sample_rate. Gateway-side size limit: 25 MB. Mutually exclusive with `url`. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"filler_words":{"type":"boolean","description":"When true, filler words (uh, um, er) are included in the transcript. Defaults to false — filler words are removed."},"format":{"type":"boolean","description":"When true, enables Inverse Text Normalization — spoken numbers and currencies are converted to written form (e.g. \"one hundred dollars\" → \"$100\"). Requires language to be set."},"keyterm":{"type":"array","description":"Key terms to bias transcription toward (e.g. product names, proper nouns). Each term up to 50 characters, max 100 terms. Sent as repeated form fields: keyterm=Term+One&keyterm=Term+Two."},"language":{"type":"string","description":"Language code (e.g. \"en\", \"fr\", \"de\"). Used with format=true to enable Inverse Text Normalization. xAI transcribes in any language regardless — supplying this enables number/currency formatting in the transcript."},"multichannel":{"type":"boolean","description":"When true, each audio channel is transcribed independently. Results are returned in the `channels` array. Requires channels ≥ 2."},"sample_rate":{"type":"integer","description":"Sample rate in Hz. Required when audio_format is set."},"url":{"type":"string","description":"HTTPS URL of an audio file for xAI to fetch server-side. Mutually exclusive with `file` and `websocket`. No gateway-side size limit applies. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true}},"additionalProperties":true},"example":{}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-stt\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-stt', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({}),\n});\nconst data = await res.json();"}]}},"/x402/gpt-4o-transcribe":{"post":{"operationId":"x402_gpt-4o-transcribe","summary":"Transcribe audio with gpt-4o-transcribe via x402.","description":"**$0.032400 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-4o-transcribe (stt).","tags":["stt"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.032400"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","description":"The audio file as a data URI (data:audio/...;base64,...) or HTTPS URL. Supported formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"language":{"type":"string","description":"The language of the input audio. Supplying the input language in ISO-639-1 format will improve accuracy and latency."},"prompt":{"type":"string","description":"An optional text to guide the model's style or continue a previous audio segment. The prompt should match the audio language."},"temperature":{"type":"number","description":"The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Defaults to 0 if omitted.","minimum":0,"maximum":1}},"additionalProperties":true},"example":{"file":"https://example.com/input"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-4o-transcribe\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"file\":\"https://example.com/input\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-4o-transcribe', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"file\": \"https://example.com/input\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/universal-3-pro":{"post":{"operationId":"x402_universal-3-pro","summary":"Transcribe audio with universal-3-pro via x402.","description":"**$0.018900 per call.** Flat price, charged only on success.\n\nPay-per-call universal-3-pro (stt).","tags":["stt"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018900"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["audio_url"],"properties":{"audio_end_at":{"type":"integer","description":"Timestamp (in milliseconds) to end transcription at.","minimum":0},"audio_start_from":{"type":"integer","description":"Timestamp (in milliseconds) to start transcription from.","minimum":0},"audio_url":{"type":"string","description":"The URL of the audio file to transcribe. Can be a publicly accessible URL or a data URI (data:audio/...;base64,...). For data URIs, the audio will be uploaded to AssemblyAI automatically. Required for pre-recorded transcription (when stream is false or not set). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"auto_chapters":{"type":"boolean","description":"Enable automatic chapter detection."},"auto_highlights":{"type":"boolean","description":"Enable automatic extraction of key phrases and highlights."},"boost_param":{"type":"string","description":"How much to boost the words in word_boost.","enum":["low","default","high"]},"content_safety":{"type":"boolean","description":"Enable content safety detection for sensitive content."},"custom_spelling":{"type":"array","description":"Custom spelling rules to replace specific words or phrases in the transcription output."},"disfluencies":{"type":"boolean","description":"Include filler words like \"um\", \"uh\", etc. in the transcript."},"domain":{"type":"string","description":"Domain-specific transcription mode. \"medical-v1\" enables medical terminology optimization.","enum":["medical-v1"]},"dual_channel":{"type":"boolean","description":"Process audio as dual-channel (stereo) for better accuracy."},"entity_detection":{"type":"boolean","description":"Enable detection of entities like names, organizations, and locations."},"filter_profanity":{"type":"boolean","description":"Filter profanity from the transcription."},"iab_categories":{"type":"boolean","description":"Enable IAB (Interactive Advertising Bureau) content taxonomy classification."},"keyterms_prompt":{"type":"array","description":"An array of up to 1,000 words or phrases (max 6 words per phrase) to improve transcription accuracy. Cannot be used with the prompt parameter."},"language_code":{"type":"string","description":"The language code for the audio file (e.g., \"en\", \"es\", \"fr\"). Defaults to automatic language detection."},"language_detection":{"type":"boolean","description":"Enable automatic language detection. When enabled with speech_models, the system will automatically select the best model for the detected language."},"multichannel":{"type":"boolean","description":"Process each audio channel separately for multi-channel audio files."},"prompt":{"type":"string","description":"A custom prompt to guide transcription style, formatting, and output characteristics. Maximum 1,500 words."},"redact_pii":{"type":"boolean","description":"Redact personally identifiable information."},"redact_pii_audio":{"type":"boolean","description":"Generate a redacted audio file with PII removed."},"redact_pii_policies":{"type":"array","description":"Specific PII policies to apply for redaction."},"redact_pii_sub":{"type":"string","description":"Strategy for substituting redacted PII.","enum":["entity_name","hash"]},"sentiment_analysis":{"type":"boolean","description":"Enable sentiment analysis for each sentence."},"speaker_labels":{"type":"boolean","description":"Enable speaker diarization to identify different speakers in the audio."},"speakers_expected":{"type":"integer","description":"Expected number of speakers for speaker diarization.","minimum":1},"speech_threshold":{"type":"number","description":"Confidence threshold for speech detection.","minimum":0,"maximum":1},"temperature":{"type":"number","description":"Controls randomness in model output (0.0-1.0). Lower values make output more deterministic. Default is 0.0.","minimum":0,"maximum":1},"webhook_url":{"type":"string","description":"URL to receive webhook notifications when transcription is complete."},"word_boost":{"type":"array","description":"Array of words to boost recognition accuracy (legacy - use keyterms_prompt instead)."}},"additionalProperties":true},"example":{"audio_url":"https://example.com/input.mp3"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/universal-3-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"audio_url\":\"https://example.com/input.mp3\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/universal-3-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"audio_url\": \"https://example.com/input.mp3\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/flux-2-pro-preview":{"post":{"operationId":"x402_flux-2-pro-preview","summary":"Generate an image with flux-2-pro-preview via x402.","description":"**$0.054000 per call.** Flat price, charged only on success.\n\nPay-per-call flux-2-pro-preview (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.054000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"height":{"type":"integer","description":"Height of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64},"input_images":{"type":"array","description":"Up to 8 reference images for editing or multi-image composition. Each entry is an HTTPS URL or a data:image/...;base64,... URI. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"output_format":{"type":"string","description":"Output image format. Defaults to jpeg.","enum":["jpeg","png","webp"]},"prompt":{"type":"string","description":"Text prompt for image generation or editing."},"safety_tolerance":{"type":"integer","description":"Tolerance for input/output moderation. 0 is the strictest, 5 the most permissive. Defaults to 2.","minimum":0,"maximum":5},"seed":{"type":"integer","description":"Optional seed for reproducible generation."},"width":{"type":"integer","description":"Width of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/flux-2-pro-preview\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/flux-2-pro-preview', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/flux-2-max":{"post":{"operationId":"x402_flux-2-max","summary":"Generate an image with flux-2-max via x402.","description":"**$0.126000 per call.** Flat price, charged only on success.\n\nPay-per-call flux-2-max (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.126000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"height":{"type":"integer","description":"Height of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64},"input_images":{"type":"array","description":"Up to 8 reference images for editing or multi-image composition. Each entry is an HTTPS URL or a data:image/...;base64,... URI. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"output_format":{"type":"string","description":"Output image format. Defaults to jpeg.","enum":["jpeg","png","webp"]},"prompt":{"type":"string","description":"Text prompt for image generation or editing."},"safety_tolerance":{"type":"integer","description":"Tolerance for input/output moderation. 0 is the strictest, 5 the most permissive. Defaults to 2.","minimum":0,"maximum":5},"seed":{"type":"integer","description":"Optional seed for reproducible generation."},"width":{"type":"integer","description":"Width of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/flux-2-max\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/flux-2-max', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/flux-2-flex":{"post":{"operationId":"x402_flux-2-flex","summary":"Generate an image with flux-2-flex via x402.","description":"**$0.090000 per call.** Flat price, charged only on success.\n\nPay-per-call flux-2-flex (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.090000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"guidance":{"type":"number","description":"Classifier-free guidance scale (1.5–10). Higher values follow the prompt more strictly at the cost of realism.","minimum":1.5,"maximum":10},"height":{"type":"integer","description":"Height of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64},"input_images":{"type":"array","description":"Up to 8 reference images for editing or multi-image composition. Each entry is an HTTPS URL or a data:image/...;base64,... URI. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"output_format":{"type":"string","description":"Output image format. Defaults to jpeg.","enum":["jpeg","png","webp"]},"prompt":{"type":"string","description":"Text prompt for image generation or editing."},"prompt_upsampling":{"type":"boolean","description":"Whether BFL should expand short prompts before generation. Defaults to true on flex."},"safety_tolerance":{"type":"integer","description":"Tolerance for input/output moderation. 0 is the strictest, 5 the most permissive. Defaults to 2.","minimum":0,"maximum":5},"seed":{"type":"integer","description":"Optional seed for reproducible generation."},"steps":{"type":"integer","description":"Number of denoising steps (1–50). Higher steps yield more detail at the cost of latency.","minimum":1,"maximum":50},"width":{"type":"integer","description":"Width of the generated image in pixels (minimum 64). Omit to let BFL pick.","minimum":64}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/flux-2-flex\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/flux-2-flex', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-imagine-image-quality":{"post":{"operationId":"x402_grok-imagine-image-quality","summary":"Generate an image with grok-imagine-image-quality via x402.","description":"**$0.060000 per call.** Flat price, charged only on success.\n\nPay-per-call grok-imagine-image-quality (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["1:1","3:4","4:3","9:16","16:9","2:3","3:2","9:19.5","19.5:9","9:20","20:9","1:2","2:1","auto"]},"image":{"type":"object","description":"Input image (HTTPS URL or upload) to guide or edit from. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"images":{"type":"array","description":"Reference images to guide generation. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"mask":{"type":"object","description":"Mask image marking the region to edit (inpaint). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"n":{"type":"integer","description":"How many outputs to generate.","minimum":1,"maximum":10},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"quality":{"type":"string","description":"Output quality level.","enum":["low","medium","high"]},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["1k","2k"]},"response_format":{"type":"string","description":"How the result is returned (e.g. a URL or base64 data).","enum":["url","b64_json"]},"user":{"type":"string","description":"Optional end-user identifier for abuse monitoring; not required."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-imagine-image-quality\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-imagine-image-quality', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-imagine-image":{"post":{"operationId":"x402_grok-imagine-image","summary":"Generate an image with grok-imagine-image via x402.","description":"**$0.024000 per call.** Flat price, charged only on success.\n\nPay-per-call grok-imagine-image (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.024000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["1:1","3:4","4:3","9:16","16:9","2:3","3:2","9:19.5","19.5:9","9:20","20:9","1:2","2:1","auto"]},"image":{"type":"object","description":"Input image (HTTPS URL or upload) to guide or edit from. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"images":{"type":"array","description":"Reference images to guide generation. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"mask":{"type":"object","description":"Mask image marking the region to edit (inpaint). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"n":{"type":"integer","description":"How many outputs to generate.","minimum":1,"maximum":10},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"quality":{"type":"string","description":"Output quality level.","enum":["low","medium","high"]},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["1k","2k"]},"response_format":{"type":"string","description":"How the result is returned (e.g. a URL or base64 data).","enum":["url","b64_json"]},"user":{"type":"string","description":"Optional end-user identifier for abuse monitoring; not required."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-imagine-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-imagine-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-pro":{"post":{"operationId":"x402_recraftv4-pro","summary":"Generate an image with recraftv4-pro via x402.","description":"**$0.450000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-pro (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.450000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-vector":{"post":{"operationId":"x402_recraftv4-vector","summary":"Generate an image with recraftv4-vector via x402.","description":"**$0.144000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.144000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-pro-vector":{"post":{"operationId":"x402_recraftv4-pro-vector","summary":"Generate an image with recraftv4-pro-vector via x402.","description":"**$0.540000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-pro-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.540000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-pro-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-pro-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-vector":{"post":{"operationId":"x402_recraftv4-1-vector","summary":"Generate an image with recraftv4-1-vector via x402.","description":"**$0.144000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.144000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-utility-vector":{"post":{"operationId":"x402_recraftv4-1-utility-vector","summary":"Generate an image with recraftv4-1-utility-vector via x402.","description":"**$0.144000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-utility-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.144000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-utility-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-utility-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-utility-pro":{"post":{"operationId":"x402_recraftv4-1-utility-pro","summary":"Generate an image with recraftv4-1-utility-pro via x402.","description":"**$0.450000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-utility-pro (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.450000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-utility-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-utility-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-utility-pro-vector":{"post":{"operationId":"x402_recraftv4-1-utility-pro-vector","summary":"Generate an image with recraftv4-1-utility-pro-vector via x402.","description":"**$0.540000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-utility-pro-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.540000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-utility-pro-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-utility-pro-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-pro-vector":{"post":{"operationId":"x402_recraftv4-1-pro-vector","summary":"Generate an image with recraftv4-1-pro-vector via x402.","description":"**$0.540000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-pro-vector (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.540000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-pro-vector\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-pro-vector', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-utility":{"post":{"operationId":"x402_recraftv4-1-utility","summary":"Generate an image with recraftv4-1-utility via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-utility (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-utility\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-utility', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1":{"post":{"operationId":"x402_recraftv4-1","summary":"Generate an image with recraftv4-1 via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4-1-pro":{"post":{"operationId":"x402_recraftv4-1-pro","summary":"Generate an image with recraftv4-1-pro via x402.","description":"**$0.450000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4-1-pro (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.450000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4-1-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4-1-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv4":{"post":{"operationId":"x402_recraftv4","summary":"Generate an image with recraftv4 via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv4 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv4\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv4', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recraftv3":{"post":{"operationId":"x402_recraftv3","summary":"Generate an image with recraftv3 via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call recraftv3 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"controls":{"type":"object","description":"Advanced generation controls (style, color, and artistic settings)."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."},"style":{"type":"string","description":"Visual style preset to apply."},"substyle":{"type":"string","description":"A finer style variant within the chosen style."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recraftv3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recraftv3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-image-2":{"post":{"operationId":"x402_gpt-image-2","summary":"Generate an image with gpt-image-2 via x402.","description":"**$0.048000 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-image-2 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.048000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"background":{"type":"string","description":"Background transparency setting. Use transparent for images with no background, opaque for a solid background, or auto to let the model decide.","enum":["opaque","auto"]},"images":{"type":"array","description":"Input images for image editing, 1-16 entries. Each entry is base64-encoded (raw string or data:image/{png|jpeg|webp};base64,... URI). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"output_format":{"type":"string","description":"Output format for the generated image","enum":["png","webp","jpeg"]},"prompt":{"type":"string","description":"Text prompt describing the image to generate or edit"},"quality":{"type":"string","description":"Quality of the generated image","enum":["low","medium","high","auto"]},"size":{"type":"string","description":"Size of the generated image","enum":["1024x1024","1024x1536","1536x1024","auto"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-image-2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-image-2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-image-1.5":{"post":{"operationId":"x402_gpt-image-1.5","summary":"Generate an image with gpt-image-1.5 via x402.","description":"**$0.048000 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-image-1.5 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.048000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"images":{"type":"array","description":"Input images for image editing, 1-16 entries. Each entry is base64-encoded (raw string or data:image/{png|jpeg|webp};base64,... URI). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the image to generate or edit"},"quality":{"type":"string","description":"Quality of the generated image","enum":["low","medium","high","auto"]},"size":{"type":"string","description":"Size of the generated image","enum":["256x256","512x512","1024x1024","1792x1024","1024x1792"]},"style":{"type":"string","description":"Style of the generated image","enum":["vivid","natural"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-image-1.5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-image-1.5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/nano-banana-pro":{"post":{"operationId":"x402_nano-banana-pro","summary":"Generate an image with nano-banana-pro via x402.","description":"**$0.186000 per call.** Flat price, charged only on success.\n\nPay-per-call nano-banana-pro (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.186000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"image_size":{"type":"string","description":"Output image dimensions.","enum":["1K","2K","4K"]},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["jpg","png","webp"]},"prompt":{"type":"string","description":"Text prompt describing what to generate."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/nano-banana-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/nano-banana-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/nano-banana":{"post":{"operationId":"x402_nano-banana","summary":"Generate an image with nano-banana via x402.","description":"**$0.046800 per call.** Flat price, charged only on success.\n\nPay-per-call nano-banana (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.046800"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"image_size":{"type":"string","description":"Output image dimensions.","enum":["1K","2K","4K"]},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["jpg","png","webp"]},"prompt":{"type":"string","description":"Text prompt describing what to generate."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/nano-banana\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/nano-banana', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/brainrot-character":{"post":{"operationId":"x402_brainrot-character","summary":"Generate an image with brainrot-character via x402.","description":"**$0.200000 per call.** Flat price, charged only on success.\n\nPay-per-call brainrot-character (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.200000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"reference_image":{"type":"string","description":"Optional reference image — the character is built FROM it (brainrot-ified). Pass a public URL, or upload a local file (free) via POST /v1/media (≤40MB) and pass the returned url. Omit for a hyper-random ORIGINAL character.","x-file-input":true},"seed":{"type":"integer","description":"Optional seed to reproduce the same random original; omit for a new one each call."}},"additionalProperties":true},"example":{}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/brainrot-character\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/brainrot-character', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({}),\n});\nconst data = await res.json();"}]}},"/x402/brainrot-video":{"post":{"operationId":"x402_brainrot-video","summary":"Generate a video with brainrot-video via x402.","description":"**$1.050000 per call.** Flat price, charged only on success.\n\nPay-per-call brainrot-video (text-to-video).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.050000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"reference_image":{"type":"string","description":"Optional reference image — the character is built FROM it (brainrot-ified), then animated. Pass a public URL, or upload a local file (free) via POST /v1/media (≤40MB). Omit for a hyper-random ORIGINAL character.","x-file-input":true},"motionPrompt":{"type":"string","description":"Optional description of how the character should move (default: chaotic dancing meme energy)."}},"additionalProperties":true},"example":{}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/brainrot-video\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/brainrot-video', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({}),\n});\nconst data = await res.json();"}]}},"/x402/nano-banana-2":{"post":{"operationId":"x402_nano-banana-2","summary":"Generate an image with nano-banana-2 via x402.","description":"**$0.092400 per call.** Flat price, charged only on success.\n\nPay-per-call nano-banana-2 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.092400"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["match_input_image","1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"google_search":{"type":"boolean","description":"Allow the model to use Google Search for grounding."},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"image_search":{"type":"boolean","description":"Allow the model to search for reference images."},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["jpg","png"]},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["1K","2K","4K"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/nano-banana-2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/nano-banana-2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/imagen-4":{"post":{"operationId":"x402_imagen-4","summary":"Generate an image with imagen-4 via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call imagen-4 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image","enum":["1:1","3:4","4:3","9:16","16:9"]},"person_generation":{"type":"string","description":"Allow the model to generate images of people. dont_allow: block people, allow_adult: adults only, allow_all: adults and children","enum":["dont_allow","allow_adult","allow_all"]},"prompt":{"type":"string","description":"Text prompt describing the image to generate"}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/imagen-4\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/imagen-4', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedream-4.5":{"post":{"operationId":"x402_seedream-4.5","summary":"Generate an image with seedream-4.5 via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call seedream-4.5 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["match_input_image","1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"]},"disable_safety_checker":{"type":"boolean","description":"Turn off the safety filter on outputs."},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"max_images":{"type":"integer","description":"Maximum number of images to return.","minimum":1,"maximum":15},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"sequential_image_generation":{"type":"string","description":"Generate a sequence of related images.","enum":["disabled","auto"]},"size":{"type":"string","description":"Output dimensions (width × height).","enum":["2K","4K"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedream-4.5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedream-4.5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedream-5-lite":{"post":{"operationId":"x402_seedream-5-lite","summary":"Generate an image with seedream-5-lite via x402.","description":"**$0.063000 per call.** Flat price, charged only on success.\n\nPay-per-call seedream-5-lite (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.063000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["match_input_image","1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"]},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"max_images":{"type":"integer","description":"Maximum number of images to return.","minimum":1,"maximum":15},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["png","jpeg"]},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"sequential_image_generation":{"type":"string","description":"Generate a sequence of related images.","enum":["disabled","auto"]},"size":{"type":"string","description":"Output dimensions (width × height).","enum":["2K","3K"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedream-5-lite\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedream-5-lite', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedream-4.0":{"post":{"operationId":"x402_seedream-4.0","summary":"Generate an image with seedream-4.0 via x402.","description":"**$0.054000 per call.** Flat price, charged only on success.\n\nPay-per-call seedream-4.0 (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.054000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["match_input_image","1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"]},"enhance_prompt":{"type":"boolean","description":"Let the model automatically expand/improve your prompt."},"height":{"type":"integer","description":"Output height in pixels.","minimum":1024,"maximum":4096},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height).","enum":["1K","2K","4K","custom"]},"width":{"type":"integer","description":"Output width in pixels.","minimum":1024,"maximum":4096}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedream-4.0\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedream-4.0', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/wan-2.6-image":{"post":{"operationId":"x402_wan-2.6-image","summary":"Generate an image with wan-2.6-image via x402.","description":"**$0.054000 per call.** Flat price, charged only on success.\n\nPay-per-call wan-2.6-image (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.054000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"negative_prompt":{"type":"string","description":"What to avoid in the output."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"size":{"type":"string","description":"Output dimensions (width × height)."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/wan-2.6-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/wan-2.6-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-tts":{"post":{"operationId":"x402_grok-tts","summary":"Convert text to speech with grok-tts via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call grok-tts (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"language":{"type":"string","description":"BCP-47 language code (e.g. \"en\", \"zh\", \"pt-BR\") or \"auto\" for automatic language detection. Required for both REST and WebSocket modes. Supported codes: auto, en, ar-EG, ar-SA, ar-AE, bn, zh, fr, de, hi, id, it, ja, ko, pt-BR, pt-PT, ru, es-MX, es-ES, tr, vi."},"optimize_streaming_latency":{"type":"number","description":"Latency optimization for streaming synthesis. 0 (default): no optimization, best audio quality. 1: reduced first-chunk size for lower time-to-first-audio with minor quality tradeoff.","enum":[0,1]},"output_format":{"type":"object","description":"Output audio format. Defaults to MP3 at 24 kHz / 128 kbps when omitted."},"speed":{"type":"number","description":"Speech speed multiplier. 1.0 is normal speed. Range: 0.7 to 1.5. Defaults to 1.0. Only used in WebSocket mode.","minimum":0.7,"maximum":1.5},"text":{"type":"string","description":"Text to convert to speech. Maximum 15,000 characters. Supports inline speech tags: [pause], [laugh], <whisper>…</whisper>, etc. Required for REST mode, mutually exclusive with websocket."},"text_normalization":{"type":"boolean","description":"When true, normalizes written-form text into spoken-form before synthesis (e.g. \"Dr.\" → \"Doctor\", \"100\" → \"one hundred\"). Defaults to false."},"voice_id":{"type":"string","description":"Voice for synthesis. Defaults to \"eve\". Built-in voices: eve (energetic), ara (warm), rex (confident), sal (balanced), leo (authoritative). Custom voice IDs from /v1/tts/voices are also accepted. Case-insensitive — \"Eve\", \"EVE\", and \"eve\" are equivalent."}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-tts\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-tts', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tts-1-hd":{"post":{"operationId":"x402_tts-1-hd","summary":"Convert text to speech with tts-1-hd via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call tts-1-hd (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"response_format":{"type":"string","description":"The output format for the audio. Supported formats are mp3, opus, wav, aac and flac.","enum":["mp3","opus","wav","aac","flac"]},"speed":{"type":"number","description":"The speed of the generated audio. Select a value from 0.25 to 4.0. 1.0 is the default.","minimum":0.25,"maximum":4},"text":{"type":"string","description":"The text to generate audio for. Maximum length is 4096 characters."},"voice":{"type":"string","description":"The voice to use when generating the audio. Defaults to alloy.","enum":["alloy","echo","fable","onyx","nova","shimmer"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tts-1-hd\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tts-1-hd', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tts-1":{"post":{"operationId":"x402_tts-1","summary":"Convert text to speech with tts-1 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call tts-1 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"response_format":{"type":"string","description":"The output format for the audio. Supported formats are mp3, opus, wav, aac and flac.","enum":["mp3","opus","wav","aac","flac"]},"speed":{"type":"number","description":"The speed of the generated audio. Select a value from 0.25 to 4.0. 1.0 is the default.","minimum":0.25,"maximum":4},"text":{"type":"string","description":"The text to generate audio for. Maximum length is 4096 characters."},"voice":{"type":"string","description":"The voice to use when generating the audio. Defaults to alloy.","enum":["alloy","echo","fable","onyx","nova","shimmer"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tts-1\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tts-1', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/speech-2.8-turbo":{"post":{"operationId":"x402_speech-2.8-turbo","summary":"Convert text to speech with speech-2.8-turbo via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call speech-2.8-turbo (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"emotion":{"type":"string","description":"Emotion control for synthesized speech","enum":["happy","sad","angry","fearful","disgusted","surprised","calm","fluent"]},"format":{"type":"string","description":"Output audio format","enum":["mp3","flac","wav"]},"pitch":{"type":"integer","description":"Pitch adjustment (-12 to 12)","minimum":-12,"maximum":12},"sample_rate":{"type":"number","description":"Audio sample rate","enum":[8000,16000,22050,24000,32000,44100]},"speed":{"type":"number","description":"Speech speed (0.5 to 2)","minimum":0.5,"maximum":2},"text":{"type":"string","description":"The text to convert to speech. Maximum 10,000 characters."},"voice_id":{"type":"string","description":"The voice ID to use for synthesis"},"volume":{"type":"number","description":"Speech volume (0 to 10)","minimum":0,"maximum":10}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/speech-2.8-turbo\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/speech-2.8-turbo', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/speech-2.8-hd":{"post":{"operationId":"x402_speech-2.8-hd","summary":"Convert text to speech with speech-2.8-hd via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call speech-2.8-hd (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"emotion":{"type":"string","description":"Emotion control for synthesized speech","enum":["happy","sad","angry","fearful","disgusted","surprised","calm","fluent"]},"format":{"type":"string","description":"Output audio format","enum":["mp3","flac","wav"]},"pitch":{"type":"integer","description":"Pitch adjustment (-12 to 12)","minimum":-12,"maximum":12},"sample_rate":{"type":"number","description":"Audio sample rate","enum":[8000,16000,22050,24000,32000,44100]},"speed":{"type":"number","description":"Speech speed (0.5 to 2)","minimum":0.5,"maximum":2},"text":{"type":"string","description":"The text to convert to speech. Maximum 10,000 characters."},"voice_id":{"type":"string","description":"The voice ID to use for synthesis"},"volume":{"type":"number","description":"Speech volume (0 to 10)","minimum":0,"maximum":10}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/speech-2.8-hd\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/speech-2.8-hd', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tts-2":{"post":{"operationId":"x402_tts-2","summary":"Convert text to speech with tts-2 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call tts-2 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"apply_text_normalization":{"type":"boolean","description":"When enabled, text normalization expands numbers, dates, times, and abbreviations before converting to speech. Turning this off may reduce latency."},"bit_rate":{"type":"integer","description":"Bits per second of the audio. Only for compressed audio formats (mp3, opus). The default is 128,000."},"output_format":{"type":"string","description":"The output format for the audio. Supported formats are mp3, opus, wav, and flac. Defaults to mp3.","enum":["mp3","opus","wav","flac"]},"sample_rate":{"type":"integer","description":"The synthesis sample rate in hertz. Accepts: 8000, 16000, 22050, 24000, 32000, 44100, 48000. The default is 48,000."},"speaking_rate":{"type":"number","description":"Speaking rate/speed, in the range [0.5, 1.5]. The default is 1.0. We recommend using values above 0.8 to ensure high quality.","minimum":0.5,"maximum":1.5},"temperature":{"type":"number","description":"Determines the degree of randomness when sampling audio tokens. Defaults to 1.0. Accepts values between 0 (exclusive) and 2 (inclusive). Higher values = more expressive, lower values = more deterministic.","minimum":0.01,"maximum":2},"text":{"type":"string","description":"The text to be synthesized into speech. Maximum input of 2,000 characters."},"timestamp_type":{"type":"string","description":"Controls timestamp metadata returned with the audio. \"word\" returns word-level timing, \"character\" returns character-level timing. Note: adds latency. Defaults to none.","enum":["none","word","character"]},"voice_id":{"type":"string","description":"The ID of the voice to use for synthesizing speech. Defaults to Dennis.","enum":["Loretta","Darlene","Marlene","Hank","Evelyn","Celeste","Pippa","Tessa","Liam","Callum","Hamish","Abby","Graham","Rupert","Mortimer","Snik","Anjali","Saanvi","Arjun","Claire","Oliver","Simon","Elliot","James","Serena","Gareth","Vinny","Lauren","Jessica","Ethan","Tyler","Jason","Chloe","Veronica","Victoria","Miranda","Sebastian","Victor","Malcolm","Nate","Brian","Amina","Kelsey","Derek","Evan","Kayla","Jake","Grant","Tristan","Nadia","Selene","Marcus","Riley","Damon","Cedric","Mia","Naomi","Jonah","Levi","Avery","Brandon","Conrad","Bianca","Lucian","Trevor","Alex","Ashley","Craig","Deborah","Dennis","Edward","Elizabeth","Hades","Julia","Pixie","Mark","Olivia","Priya","Ronald","Sarah","Shaun","Theodore","Timothy","Wendy","Dominus","Hana","Clive","Carter","Blake","Luna","Reed","Duncan","Felix","Eleanor","Sophie"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tts-2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tts-2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tts-1.5-max":{"post":{"operationId":"x402_tts-1.5-max","summary":"Convert text to speech with tts-1.5-max via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call tts-1.5-max (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"apply_text_normalization":{"type":"boolean","description":"When enabled, text normalization expands numbers, dates, times, and abbreviations before converting to speech. Turning this off may reduce latency."},"bit_rate":{"type":"integer","description":"Bits per second of the audio. Only for compressed audio formats (mp3, opus). The default is 128,000."},"output_format":{"type":"string","description":"The output format for the audio. Supported formats are mp3, opus, wav, and flac. Defaults to mp3.","enum":["mp3","opus","wav","flac"]},"sample_rate":{"type":"integer","description":"The synthesis sample rate in hertz. Accepts: 8000, 16000, 22050, 24000, 32000, 44100, 48000. The default is 48,000."},"speaking_rate":{"type":"number","description":"Speaking rate/speed, in the range [0.5, 1.5]. The default is 1.0. We recommend using values above 0.8 to ensure high quality.","minimum":0.5,"maximum":1.5},"temperature":{"type":"number","description":"Determines the degree of randomness when sampling audio tokens. Defaults to 1.0. Accepts values between 0 (exclusive) and 2 (inclusive). Higher values = more expressive, lower values = more deterministic.","minimum":0.01,"maximum":2},"text":{"type":"string","description":"The text to be synthesized into speech. Maximum input of 2,000 characters."},"timestamp_type":{"type":"string","description":"Controls timestamp metadata returned with the audio. \"word\" returns word-level timing, \"character\" returns character-level timing. Note: adds latency. Defaults to none.","enum":["none","word","character"]},"voice_id":{"type":"string","description":"The ID of the voice to use for synthesizing speech. Defaults to Dennis.","enum":["Loretta","Darlene","Marlene","Hank","Evelyn","Celeste","Pippa","Tessa","Liam","Callum","Hamish","Abby","Graham","Rupert","Mortimer","Snik","Anjali","Saanvi","Arjun","Claire","Oliver","Simon","Elliot","James","Serena","Gareth","Vinny","Lauren","Jessica","Ethan","Tyler","Jason","Chloe","Veronica","Victoria","Miranda","Sebastian","Victor","Malcolm","Nate","Brian","Amina","Kelsey","Derek","Evan","Kayla","Jake","Grant","Tristan","Nadia","Selene","Marcus","Riley","Damon","Cedric","Mia","Naomi","Jonah","Levi","Avery","Brandon","Conrad","Bianca","Lucian","Trevor","Alex","Ashley","Craig","Deborah","Dennis","Edward","Elizabeth","Hades","Julia","Pixie","Mark","Olivia","Priya","Ronald","Sarah","Shaun","Theodore","Timothy","Wendy","Dominus","Hana","Clive","Carter","Blake","Luna","Reed","Duncan","Felix","Eleanor","Sophie"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tts-1.5-max\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tts-1.5-max', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tts-1.5-mini":{"post":{"operationId":"x402_tts-1.5-mini","summary":"Convert text to speech with tts-1.5-mini via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call tts-1.5-mini (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"apply_text_normalization":{"type":"boolean","description":"When enabled, text normalization expands numbers, dates, times, and abbreviations before converting to speech. Turning this off may reduce latency."},"bit_rate":{"type":"integer","description":"Bits per second of the audio. Only for compressed audio formats (mp3, opus). The default is 128,000."},"output_format":{"type":"string","description":"The output format for the audio. Supported formats are mp3, opus, wav, and flac. Defaults to mp3.","enum":["mp3","opus","wav","flac"]},"sample_rate":{"type":"integer","description":"The synthesis sample rate in hertz. Accepts: 8000, 16000, 22050, 24000, 32000, 44100, 48000. The default is 48,000."},"speaking_rate":{"type":"number","description":"Speaking rate/speed, in the range [0.5, 1.5]. The default is 1.0. We recommend using values above 0.8 to ensure high quality.","minimum":0.5,"maximum":1.5},"temperature":{"type":"number","description":"Determines the degree of randomness when sampling audio tokens. Defaults to 1.0. Accepts values between 0 (exclusive) and 2 (inclusive). Higher values = more expressive, lower values = more deterministic.","minimum":0.01,"maximum":2},"text":{"type":"string","description":"The text to be synthesized into speech. Maximum input of 2,000 characters."},"timestamp_type":{"type":"string","description":"Controls timestamp metadata returned with the audio. \"word\" returns word-level timing, \"character\" returns character-level timing. Note: adds latency. Defaults to none.","enum":["none","word","character"]},"voice_id":{"type":"string","description":"The ID of the voice to use for synthesizing speech. Defaults to Dennis.","enum":["Loretta","Darlene","Marlene","Hank","Evelyn","Celeste","Pippa","Tessa","Liam","Callum","Hamish","Abby","Graham","Rupert","Mortimer","Snik","Anjali","Saanvi","Arjun","Claire","Oliver","Simon","Elliot","James","Serena","Gareth","Vinny","Lauren","Jessica","Ethan","Tyler","Jason","Chloe","Veronica","Victoria","Miranda","Sebastian","Victor","Malcolm","Nate","Brian","Amina","Kelsey","Derek","Evan","Kayla","Jake","Grant","Tristan","Nadia","Selene","Marcus","Riley","Damon","Cedric","Mia","Naomi","Jonah","Levi","Avery","Brandon","Conrad","Bianca","Lucian","Trevor","Alex","Ashley","Craig","Deborah","Dennis","Edward","Elizabeth","Hades","Julia","Pixie","Mark","Olivia","Priya","Ronald","Sarah","Shaun","Theodore","Timothy","Wendy","Dominus","Hana","Clive","Carter","Blake","Luna","Reed","Duncan","Felix","Eleanor","Sophie"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tts-1.5-mini\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tts-1.5-mini', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gemini-3.1-flash-tts":{"post":{"operationId":"x402_gemini-3.1-flash-tts","summary":"Convert text to speech with gemini-3.1-flash-tts via x402.","description":"**$0.014400 per call.** Flat price, charged only on success.\n\nPay-per-call gemini-3.1-flash-tts (tts).","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.014400"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"maxOutputTokens":{"type":"integer","description":"Maximum number of tokens to generate","minimum":0},"stopSequences":{"type":"array","description":"Sequences where the model will stop generating further tokens"},"temperature":{"type":"number","description":"Controls randomness in generation (0-2)","minimum":0,"maximum":2},"text":{"type":"string","description":"The text to convert to speech. Maximum 10,000 characters."},"topK":{"type":"integer","description":"Only sample from the top K tokens. Smaller K = more focused, larger K = more diverse","minimum":0},"topP":{"type":"number","description":"Nucleus sampling threshold (0-1). Tokens with cumulative probability up to topP are considered","minimum":0,"maximum":1},"voice":{"type":"string","description":"The voice to use for speech synthesis","enum":["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gemini-3.1-flash-tts\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gemini-3.1-flash-tts', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/q3-pro":{"post":{"operationId":"x402_q3-pro","summary":"Generate a video with q3-pro via x402.","description":"**$0.217500–$3.480000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call q3-pro (text-to-video). Priced per second ($0.217500/sec) — final price = video length x rate (duration 1-16s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.217500","max":"3.480000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio (text-to-video only). Default: 16:9","enum":["16:9","9:16","3:4","4:3","1:1"]},"audio":{"type":"boolean","description":"Enable audio-video synchronization. Default: true for Q3 models. When false, outputs silent video"},"duration":{"type":"integer","description":"Video duration in seconds (1-16)","minimum":1,"maximum":16},"end_image":{"type":"string","description":"End image for start/end-to-video generation. Must be used together with start_image. Accepts public URL or Base64 data URI (data:image/png;base64,...) Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing what should appear in the video"},"resolution":{"type":"string","description":"Video resolution","enum":["540p","720p","1080p"]},"start_image":{"type":"string","description":"Start image for video generation. Use alone for image-to-video, or with end_image for start/end-to-video. Accepts public URL or Base64 data URI (data:image/png;base64,...) Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/q3-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/q3-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/q3-turbo":{"post":{"operationId":"x402_q3-turbo","summary":"Generate a video with q3-turbo via x402.","description":"**$0.101500–$1.624000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call q3-turbo (text-to-video). Priced per second ($0.101500/sec) — final price = video length x rate (duration 1-16s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.101500","max":"1.624000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio (text-to-video only). Default: 16:9","enum":["16:9","9:16","3:4","4:3","1:1"]},"audio":{"type":"boolean","description":"Enable audio-video synchronization. Default: true for Q3 models. When false, outputs silent video"},"duration":{"type":"integer","description":"Video duration in seconds (1-16)","minimum":1,"maximum":16},"end_image":{"type":"string","description":"End image for start/end-to-video generation. Must be used together with start_image. Accepts public URL or Base64 data URI (data:image/png;base64,...) Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing what should appear in the video"},"resolution":{"type":"string","description":"Video resolution","enum":["540p","720p","1080p"]},"start_image":{"type":"string","description":"Start image for video generation. Use alone for image-to-video, or with end_image for start/end-to-video. Accepts public URL or Base64 data URI (data:image/png;base64,...) Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/q3-turbo\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/q3-turbo', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gen-4.5":{"post":{"operationId":"x402_gen-4.5","summary":"Generate a video with gen-4.5 via x402.","description":"**$0.522000–$2.610000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call gen-4.5 (text-to-video). Priced per second ($0.261000/sec) — final price = video length x rate (duration 2-10s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.522000","max":"2.610000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"content_moderation":{"type":"object","description":"Content moderation settings"},"duration":{"type":"integer","description":"Video duration in seconds","minimum":2,"maximum":10},"image_input":{"type":"string","description":"HTTPS URL, Runway URI, or data URI containing an image for image-to-video Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing what should appear in the video"},"ratio":{"type":"string","description":"Resolution/aspect ratio of the output video","enum":["1280:720","720:1280","1104:832","960:960","832:1104","1584:672"]},"seed":{"type":"integer","description":"Random seed for reproducible results","minimum":0,"maximum":4294967295}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gen-4.5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gen-4.5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/aleph-2":{"post":{"operationId":"x402_aleph-2","summary":"Generate a video with aleph-2 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call aleph-2 (video-to-video). Priced per second ($0.487200/sec) — final price = video length x rate.","tags":["video-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt","video_uri"],"properties":{"content_moderation":{"type":"object","description":"Settings that affect the behavior of the content moderation system"},"duration":{"type":"number","description":"Duration of the source video in seconds. Used for billing only — not sent to RunwayML. Provide this so the gateway can compute per-second video cost accurately.","minimum":0},"keyframes":{"type":"array","description":"Timed guidance images placed at specific points in the input video. Each entry has a uri and either seconds (absolute timestamp) or at (fractional position). Up to 5. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the edit to apply to the input video"},"prompt_images":{"type":"array","description":"Image keyframes for guiding the edit at specific points in the output video. Up to 5. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"seed":{"type":"integer","description":"Random seed for reproducible results","minimum":0,"maximum":4294967295},"video_uri":{"type":"string","description":"HTTPS URL, Runway URI, or data URI of the source video to edit (≤30 seconds) Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true}},"additionalProperties":true},"example":{"prompt":"a red apple on a table","video_uri":"https://example.com/input.mp4"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/aleph-2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\",\"video_uri\":\"https://example.com/input.mp4\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/aleph-2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\",\n    \"video_uri\": \"https://example.com/input.mp4\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/v6":{"post":{"operationId":"x402_v6","summary":"Generate a video with v6 via x402.","description":"**$0.166750–$2.501250 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call v6 (text-to-video). Priced per second ($0.166750/sec) — final price = video length x rate (duration 1-15s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.166750","max":"2.501250"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio","enum":["16:9","4:3","1:1","3:4","9:16","2:3","3:2","21:9"]},"duration":{"type":"integer","description":"Video duration in seconds (1 to 15)","minimum":1,"maximum":15},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image_input":{"type":"string","description":"Base64-encoded reference image for image-to-video generation (data:image/...;base64,...). The image will be uploaded to Pixverse automatically. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"negative_prompt":{"type":"string","description":"Negative text prompt"},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"quality":{"type":"string","description":"Video quality","enum":["360p","540p","720p","1080p"]},"seed":{"type":"integer","description":"Random seed for reproducibility","minimum":0,"maximum":2147483647}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/v6\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/v6', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/v5.6":{"post":{"operationId":"x402_v5.6","summary":"Generate a video with v5.6 via x402.","description":"**$0.217500–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call v5.6 (text-to-video). Priced per second ($0.217500/sec) — final price = video length x rate.","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.217500"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio","enum":["16:9","4:3","1:1","3:4","9:16","2:3","3:2","21:9"]},"duration":{"type":"number","description":"Video duration in seconds","enum":[5,8,10]},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image_input":{"type":"string","description":"Base64-encoded reference image for image-to-video generation (data:image/...;base64,...). The image will be uploaded to Pixverse automatically. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"motion_mode":{"type":"string","description":"Motion mode (fast only available when duration=5; 1080p does not support fast)","enum":["normal","fast"]},"negative_prompt":{"type":"string","description":"Negative text prompt"},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"quality":{"type":"string","description":"Video quality","enum":["360p","540p","720p","1080p"]},"seed":{"type":"integer","description":"Random seed for reproducibility","minimum":0,"maximum":2147483647}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/v5.6\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/v5.6', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hailuo-2.3-fast":{"post":{"operationId":"x402_hailuo-2.3-fast","summary":"Generate a video with hailuo-2.3-fast via x402.","description":"**$0.079750–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hailuo-2.3-fast (image-to-video). Priced per second ($0.079750/sec) — final price = video length x rate.","tags":["image-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.079750"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["first_frame_image"],"properties":{"duration":{"type":"number","description":"Length of the output in seconds.","enum":[6,10]},"fast_pretreatment":{"type":"boolean","description":"Faster input pre-processing (may trade a little quality for speed)."},"first_frame_image":{"type":"string","description":"URL or base64 data URI of the first frame image Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"prompt_optimizer":{"type":"boolean","description":"Let the model automatically optimize your prompt."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["768P","1080P"]}},"additionalProperties":true},"example":{"first_frame_image":"https://example.com/input.jpg"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hailuo-2.3-fast\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"first_frame_image\":\"https://example.com/input.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hailuo-2.3-fast', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"first_frame_image\": \"https://example.com/input.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hailuo-2.3":{"post":{"operationId":"x402_hailuo-2.3","summary":"Generate a video with hailuo-2.3 via x402.","description":"**$0.118418–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hailuo-2.3 (text-to-video). Priced per second ($0.118418/sec) — final price = video length x rate.","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.118418"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"duration":{"type":"number","description":"Length of the output in seconds.","enum":[6,10]},"fast_pretreatment":{"type":"boolean","description":"Faster input pre-processing (may trade a little quality for speed)."},"first_frame_image":{"type":"string","description":"Image to use as the first frame of the video."},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"prompt_optimizer":{"type":"boolean","description":"Let the model automatically optimize your prompt."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["768P","1080P"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hailuo-2.3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hailuo-2.3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/veo-3.1-fast":{"post":{"operationId":"x402_veo-3.1-fast","summary":"Generate a video with veo-3.1-fast via x402.","description":"**$0.435000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call veo-3.1-fast (text-to-video). Priced per second ($0.435000/sec) — final price = video length x rate.","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.435000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio","enum":["16:9","9:16","1:1"]},"duration":{"type":"string","description":"Video duration","enum":["4s","6s","8s"]},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image_input":{"type":"string","description":"Base64-encoded reference image for i2v Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"resolution":{"type":"string","description":"Video resolution","enum":["720p","1080p"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/veo-3.1-fast\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/veo-3.1-fast', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/veo-3.1":{"post":{"operationId":"x402_veo-3.1","summary":"Generate a video with veo-3.1 via x402.","description":"**$0.870000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call veo-3.1 (text-to-video). Priced per second ($0.870000/sec) — final price = video length x rate.","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.870000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio","enum":["16:9","9:16","1:1"]},"duration":{"type":"string","description":"Video duration","enum":["4s","6s","8s"]},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image_input":{"type":"string","description":"Base64-encoded reference image for i2v Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"resolution":{"type":"string","description":"Video resolution","enum":["720p","1080p"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/veo-3.1\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/veo-3.1', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedance-2.0-fast":{"post":{"operationId":"x402_seedance-2.0-fast","summary":"Generate a video with seedance-2.0-fast via x402.","description":"**$0.986000–$2.958000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call seedance-2.0-fast (text-to-video). Priced per second ($0.246500/sec) — final price = video length x rate (duration 4-12s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.986000","max":"2.958000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio. Ignored if an image is used.","enum":["16:9","4:3","1:1","3:4","9:16","21:9","9:21"]},"camera_fixed":{"type":"boolean","description":"Whether to fix camera position"},"duration":{"type":"integer","description":"Video duration in seconds","minimum":4,"maximum":12},"fps":{"type":"number","description":"Frame rate (frames per second)"},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for image-to-video Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"last_frame_image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for last-frame guidance. Only works if an image start frame is also given. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"reference_images":{"type":"array","description":"Reference images (1-4, HTTP(S) URLs or base64 data URIs) to guide video generation for characters, avatars, clothing, or environments. Cannot be used with 1080p resolution or first/last frame images. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"reference_video":{"type":"string","description":"Reference video (HTTP(S) URL or base64 data URI) for style/motion guidance Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"resolution":{"type":"string","description":"Video resolution","enum":["480p","720p"]},"seed":{"type":"integer","description":"Random seed for reproducible generation"},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output video"}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedance-2.0-fast\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedance-2.0-fast', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedance-2.0-mini":{"post":{"operationId":"x402_seedance-2.0-mini","summary":"Generate a video with seedance-2.0-mini via x402.","description":"**$0.638000–$1.914000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call seedance-2.0-mini (text-to-video). Priced per second ($0.159500/sec) — final price = video length x rate (duration 4-12s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.638000","max":"1.914000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for image-to-video Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"reference_video":{"type":"string","description":"Reference video (HTTP(S) URL or base64 data URI) for style/motion guidance Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"last_frame_image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for last-frame guidance. Only works if an image start frame is also given. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"reference_images":{"type":"array","description":"Reference images (1-4, HTTP(S) URLs or base64 data URIs) to guide video generation for characters, avatars, clothing, or environments. Cannot be used with 1080p resolution or first/last frame images. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"duration":{"type":"integer","description":"Video duration in seconds","minimum":4,"maximum":12},"resolution":{"type":"string","description":"Video resolution","enum":["480p","720p"]},"aspect_ratio":{"type":"string","description":"Video aspect ratio. Ignored if an image is used.","enum":["16:9","4:3","1:1","3:4","9:16","21:9","9:21"]},"fps":{"type":"number","description":"Frame rate (frames per second)"},"camera_fixed":{"type":"boolean","description":"Whether to fix camera position"},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output video"},"seed":{"type":"integer","description":"Random seed for reproducible generation"},"reference_audio":{"type":"string","description":"Reference audio (HTTP(S) URL or base64 data:audio/... URI) to use as background music. Must be accompanied by a reference image or video. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedance-2.0-mini\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedance-2.0-mini', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedance-2.0":{"post":{"operationId":"x402_seedance-2.0","summary":"Generate a video with seedance-2.0 via x402.","description":"**$3.190000–$9.570000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call seedance-2.0 (text-to-video). Priced per second ($0.797500/sec) — final price = video length x rate (duration 4-12s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"3.190000","max":"9.570000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Video aspect ratio. Ignored if an image is used.","enum":["16:9","4:3","1:1","3:4","9:16","21:9","9:21"]},"camera_fixed":{"type":"boolean","description":"Whether to fix camera position"},"duration":{"type":"integer","description":"Video duration in seconds","minimum":4,"maximum":12},"fps":{"type":"number","description":"Frame rate (frames per second)"},"generate_audio":{"type":"boolean","description":"Whether to generate audio with the video"},"image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for image-to-video Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"last_frame_image":{"type":"string","description":"Reference image (HTTP(S) URL or base64 data URI) for last-frame guidance. Only works if an image start frame is also given. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"prompt":{"type":"string","description":"Text prompt describing the video to generate"},"reference_images":{"type":"array","description":"Reference images (1-4, HTTP(S) URLs or base64 data URIs) to guide video generation for characters, avatars, clothing, or environments. Cannot be used with 1080p resolution or first/last frame images. Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"reference_video":{"type":"string","description":"Reference video (HTTP(S) URL or base64 data URI) for style/motion guidance Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","x-file-input":true},"resolution":{"type":"string","description":"Video resolution","enum":["480p","720p","1080p"]},"seed":{"type":"integer","description":"Random seed for reproducible generation"},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output video"}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedance-2.0\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedance-2.0', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hh1-t2v":{"post":{"operationId":"x402_hh1-t2v","summary":"Generate a video with hh1-t2v via x402.","description":"**$1.218000–$6.090000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hh1-t2v (text-to-video). Priced per second ($0.406000/sec) — final price = video length x rate (duration 3-15s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"1.218000","max":"6.090000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":3,"maximum":15},"prompt":{"type":"string","description":"Text prompt describing what to generate."},"ratio":{"type":"string","description":"Output aspect ratio.","enum":["16:9","9:16","1:1","4:3","3:4"]},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hh1-t2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hh1-t2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/hh1.1-t2v":{"post":{"operationId":"x402_hh1.1-t2v","summary":"Generate a video with hh1.1-t2v via x402.","description":"**$0.783000–$3.915000 per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call hh1.1-t2v (text-to-video). Priced per second ($0.261000/sec) — final price = video length x rate (duration 3-15s).","tags":["text-to-video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.783000","max":"3.915000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text prompt describing what to generate."},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["720P","1080P"]},"ratio":{"type":"string","description":"Output aspect ratio.","enum":["16:9","9:16","1:1","4:3","3:4"]},"duration":{"type":"integer","description":"Length of the output in seconds.","minimum":3,"maximum":15},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":2147483647},"watermark":{"type":"boolean","description":"Whether to add a watermark to the output."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/hh1.1-t2v\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/hh1.1-t2v', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/krea-2-medium-turbo":{"post":{"operationId":"x402_krea-2-medium-turbo","summary":"Generate an image with krea-2-medium-turbo via x402.","description":"**$0.018000 per call.** Flat price, charged only on success.\n\nPay-per-call krea-2-medium-turbo (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image.","enum":["1:1","4:3","3:2","16:9","2.35:1","4:5","2:3","9:16"]},"complexity":{"type":"integer","description":"K2 Complexity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"creativity":{"type":"string","description":"Prompt expansion mode. `raw` disables expansion; `low`, `medium`, `high` control strength. Does not affect the K2 Intensity, Complexity, or Movement slider LoRAs.","enum":["raw","low","medium","high"]},"image_style_references":{"type":"array","description":"Reference images to drive the visual style (up to 10). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"intensity":{"type":"integer","description":"K2 Intensity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"moodboards":{"type":"array","description":"Moodboard references (currently limited to one)."},"movement":{"type":"integer","description":"K2 Movement slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"prompt":{"type":"string","description":"Text prompt describing the image to generate."},"resolution":{"type":"string","description":"Resolution scale.","enum":["1K"]},"seed":{"description":"Random seed for reproducible generations. Pass null or omit for a random seed."},"styles":{"type":"array","description":"Styles (typically LoRAs) to apply to the generation."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/krea-2-medium-turbo\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/krea-2-medium-turbo', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/krea-2-medium":{"post":{"operationId":"x402_krea-2-medium","summary":"Generate an image with krea-2-medium via x402.","description":"**$0.036000 per call.** Flat price, charged only on success.\n\nPay-per-call krea-2-medium (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.036000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image.","enum":["1:1","4:3","3:2","16:9","2.35:1","4:5","2:3","9:16"]},"complexity":{"type":"integer","description":"K2 Complexity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"creativity":{"type":"string","description":"Prompt expansion mode. `raw` disables expansion; `low`, `medium`, `high` control strength. Does not affect the K2 Intensity, Complexity, or Movement slider LoRAs.","enum":["raw","low","medium","high"]},"image_style_references":{"type":"array","description":"Reference images to drive the visual style (up to 10). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"intensity":{"type":"integer","description":"K2 Intensity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"moodboards":{"type":"array","description":"Moodboard references (currently limited to one)."},"movement":{"type":"integer","description":"K2 Movement slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"prompt":{"type":"string","description":"Text prompt describing the image to generate."},"resolution":{"type":"string","description":"Resolution scale.","enum":["1K"]},"seed":{"description":"Random seed for reproducible generations. Pass null or omit for a random seed."},"styles":{"type":"array","description":"Styles (typically LoRAs) to apply to the generation."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/krea-2-medium\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/krea-2-medium', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/krea-2-large":{"post":{"operationId":"x402_krea-2-large","summary":"Generate an image with krea-2-large via x402.","description":"**$0.072000 per call.** Flat price, charged only on success.\n\nPay-per-call krea-2-large (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.072000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image.","enum":["1:1","4:3","3:2","16:9","2.35:1","4:5","2:3","9:16"]},"complexity":{"type":"integer","description":"K2 Complexity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"creativity":{"type":"string","description":"Prompt expansion mode. `raw` disables expansion; `low`, `medium`, `high` control strength. Does not affect the K2 Intensity, Complexity, or Movement slider LoRAs.","enum":["raw","low","medium","high"]},"image_style_references":{"type":"array","description":"Reference images to drive the visual style (up to 10). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"intensity":{"type":"integer","description":"K2 Intensity slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"moodboards":{"type":"array","description":"Moodboard references (currently limited to one)."},"movement":{"type":"integer","description":"K2 Movement slider (-100 to 100). 0 disables the slider LoRA.","minimum":-100,"maximum":100},"prompt":{"type":"string","description":"Text prompt describing the image to generate."},"resolution":{"type":"string","description":"Resolution scale.","enum":["1K"]},"seed":{"description":"Random seed for reproducible generations. Pass null or omit for a random seed."},"styles":{"type":"array","description":"Styles (typically LoRAs) to apply to the generation."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/krea-2-large\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/krea-2-large', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/claude-fable-5":{"post":{"operationId":"x402_claude-fable-5","summary":"Generate text with claude-fable-5 via x402.","description":"**$0.061452 per call.** Flat price, charged only on success.\n\nPay-per-call claude-fable-5 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.061452"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/claude-fable-5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/claude-fable-5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/claude-opus-4.8":{"post":{"operationId":"x402_claude-opus-4.8","summary":"Generate text with claude-opus-4.8 via x402.","description":"**$0.030726 per call.** Flat price, charged only on success.\n\nPay-per-call claude-opus-4.8 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030726"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/claude-opus-4.8\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/claude-opus-4.8', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-5.5-pro":{"post":{"operationId":"x402_gpt-5.5-pro","summary":"Generate text with gpt-5.5-pro via x402.","description":"**$0.221220 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-5.5-pro (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.221220"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-5.5-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-5.5-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-5.5":{"post":{"operationId":"x402_gpt-5.5","summary":"Generate text with gpt-5.5 via x402.","description":"**$0.036870 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-5.5 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.036870"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-5.5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-5.5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gemini-3.1-pro":{"post":{"operationId":"x402_gemini-3.1-pro","summary":"Generate text with gemini-3.1-pro via x402.","description":"**$0.014748 per call.** Flat price, charged only on success.\n\nPay-per-call gemini-3.1-pro (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.014748"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gemini-3.1-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gemini-3.1-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-4.3":{"post":{"operationId":"x402_grok-4.3","summary":"Generate text with grok-4.3 via x402.","description":"**$0.003074 per call.** Flat price, charged only on success.\n\nPay-per-call grok-4.3 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003074"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-4.3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-4.3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/minimax-m3":{"post":{"operationId":"x402_minimax-m3","summary":"Generate text with minimax-m3 via x402.","description":"**$0.001475 per call.** Flat price, charged only on success.\n\nPay-per-call minimax-m3 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001475"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/minimax-m3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/minimax-m3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/deepseek-v4-pro":{"post":{"operationId":"x402_deepseek-v4-pro","summary":"Generate text with deepseek-v4-pro via x402.","description":"**$0.004279 per call.** Flat price, charged only on success.\n\nPay-per-call deepseek-v4-pro (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004279"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"OpenAI-style chat messages: [{ role: \"user\" | \"system\" | \"assistant\" | \"tool\", content }]. Vision: content may be a parts array with { type: \"image_url\", image_url: { url } } (public URL — upload via POST /v1/media)."},"max_tokens":{"type":"integer","description":"Output-token cap — bounds the pre-charged price ceiling. Default 1024."},"temperature":{"type":"number","description":"Sampling temperature. Passed through where the provider supports it."},"top_p":{"type":"number","description":"Nucleus sampling. Passed through where the provider supports it."},"stream":{"type":"boolean","description":"true → Server-Sent Events in the OpenAI chunk format (on /v1/chat/completions)."},"tools":{"type":"array","description":"OpenAI-style function tools: [{ type: \"function\", function: { name, description, parameters } }]. The response returns tool_calls (finish_reason \"tool_calls\"); send results back as { role: \"tool\", tool_call_id, content }."},"tool_choice":{"type":"string","description":"\"auto\" (default) | \"none\" | \"required\" | { type: \"function\", function: { name } }."}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/deepseek-v4-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/deepseek-v4-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/inkling":{"post":{"operationId":"x402_inkling","summary":"Generate text with inkling via x402.","description":"**$0.005754 per call.** Flat price, charged only on success.\n\nPay-per-call inkling (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005754"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages","max_tokens"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"max_tokens":{"type":"number","description":"Maximum tokens to generate. Billed at this ceiling rather than at actual usage, so ask for what you need — an unused allowance is still paid for.","minimum":0},"system":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1},"top_p":{"type":"number","minimum":0,"maximum":1},"top_k":{"type":"number","minimum":0},"stream":{"type":"boolean"},"metadata":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}],"max_tokens":0}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/inkling\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}],\"max_tokens\":0}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/inkling', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ],\n    \"max_tokens\": 0\n  }),\n});\nconst data = await res.json();"}]}},"/x402/inkling-256k":{"post":{"operationId":"x402_inkling-256k","summary":"Generate text with inkling-256k via x402.","description":"**$0.011507 per call.** Flat price, charged only on success.\n\nPay-per-call inkling-256k (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.011507"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages","max_tokens"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"max_tokens":{"type":"number","description":"Maximum tokens to generate. Billed at this ceiling rather than at actual usage, so ask for what you need — an unused allowance is still paid for.","minimum":0},"system":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1},"top_p":{"type":"number","minimum":0,"maximum":1},"top_k":{"type":"number","minimum":0},"stream":{"type":"boolean"},"metadata":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}],"max_tokens":0}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/inkling-256k\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}],\"max_tokens\":0}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/inkling-256k', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ],\n    \"max_tokens\": 0\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gemini-3.6-flash":{"post":{"operationId":"x402_gemini-3.6-flash","summary":"Generate text with gemini-3.6-flash via x402.","description":"**$0.009218 per call.** Flat price, charged only on success.\n\nPay-per-call gemini-3.6-flash (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.009218"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptInput"},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gemini-3.6-flash\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gemini-3.6-flash', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gemini-3.5-flash-lite":{"post":{"operationId":"x402_gemini-3.5-flash-lite","summary":"Generate text with gemini-3.5-flash-lite via x402.","description":"**$0.003073 per call.** Flat price, charged only on success.\n\nPay-per-call gemini-3.5-flash-lite (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003073"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptInput"},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gemini-3.5-flash-lite\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gemini-3.5-flash-lite', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/grok-4.5":{"post":{"operationId":"x402_grok-4.5","summary":"Generate text with grok-4.5 via x402.","description":"**$0.007376 per call.** Flat price, charged only on success.\n\nPay-per-call grok-4.5 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007376"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"max_completion_tokens":{},"max_tokens":{},"n":{"description":"How many outputs to generate."},"parallel_tool_calls":{},"prompt_cache_key":{},"reasoning_effort":{},"response_format":{"description":"How the result is returned (e.g. a URL or base64 data)."},"search_parameters":{"type":"object"},"seed":{"description":"Random seed for reproducible results — same seed + inputs gives the same output."},"service_tier":{"type":"string","enum":["default","priority"]},"stream":{},"stream_options":{"type":"object"},"temperature":{},"tool_choice":{},"tools":{},"top_p":{},"user":{"description":"Optional end-user identifier for abuse monitoring; not required."},"web_search_options":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/grok-4.5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/grok-4.5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-5.6-luna":{"post":{"operationId":"x402_gpt-5.6-luna","summary":"Generate text with gpt-5.6-luna via x402.","description":"**$0.007374 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-5.6-luna (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007374"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"description":"The prompt to send. A plain string for a single turn, or an array of typed content parts for multi-part input."},"instructions":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":2},"max_output_tokens":{"type":"number","minimum":0},"top_p":{"type":"number","minimum":0,"maximum":1},"stream":{"type":"boolean"},"tools":{"type":"array"},"tool_choice":{},"text":{"type":"object"},"reasoning":{"type":"object"}},"additionalProperties":true},"example":{"input":"value"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-5.6-luna\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"input\":\"value\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-5.6-luna', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"input\": \"value\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-5.6-terra":{"post":{"operationId":"x402_gpt-5.6-terra","summary":"Generate text with gpt-5.6-terra via x402.","description":"**$0.018435 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-5.6-terra (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018435"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"description":"The prompt to send. A plain string for a single turn, or an array of typed content parts for multi-part input."},"instructions":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":2},"max_output_tokens":{"type":"number","minimum":0},"top_p":{"type":"number","minimum":0,"maximum":1},"stream":{"type":"boolean"},"tools":{"type":"array"},"tool_choice":{},"text":{"type":"object"},"reasoning":{"type":"object"}},"additionalProperties":true},"example":{"input":"value"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-5.6-terra\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"input\":\"value\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-5.6-terra', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"input\": \"value\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/kimi-k3":{"post":{"operationId":"x402_kimi-k3","summary":"Generate text with kimi-k3 via x402.","description":"**$0.018436 per call.** Flat price, charged only on success.\n\nPay-per-call kimi-k3 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018436"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"temperature":{"type":"number","minimum":0,"maximum":2},"max_tokens":{"type":"number","minimum":0},"max_completion_tokens":{"type":"number","minimum":0},"top_p":{"type":"number","minimum":0,"maximum":1},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2},"presence_penalty":{"type":"number","minimum":-2,"maximum":2},"stream":{"type":"boolean"},"stream_options":{"type":"object"},"tools":{"type":"array"},"tool_choice":{},"response_format":{"description":"How the result is returned (e.g. a URL or base64 data)."},"modalities":{"type":"array"},"audio":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}]}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/kimi-k3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/kimi-k3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/claude-sonnet-5":{"post":{"operationId":"x402_claude-sonnet-5","summary":"Generate text with claude-sonnet-5 via x402.","description":"**$0.018436 per call.** Flat price, charged only on success.\n\nPay-per-call claude-sonnet-5 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018436"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages","max_tokens"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"max_tokens":{"type":"number","description":"Maximum tokens to generate. Billed at this ceiling rather than at actual usage, so ask for what you need — an unused allowance is still paid for.","minimum":0},"system":{"type":"string"},"stream":{"type":"boolean"},"metadata":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}],"max_tokens":0}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/claude-sonnet-5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}],\"max_tokens\":0}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/claude-sonnet-5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ],\n    \"max_tokens\": 0\n  }),\n});\nconst data = await res.json();"}]}},"/x402/claude-opus-5":{"post":{"operationId":"x402_claude-opus-5","summary":"Generate text with claude-opus-5 via x402.","description":"**$0.030726 per call.** Flat price, charged only on success.\n\nPay-per-call claude-opus-5 (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030726"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages","max_tokens"],"properties":{"messages":{"type":"array","description":"Conversation so far, OpenAI-style: [{ role: \"user\", content: \"...\" }]. Roles are system, user and assistant. Send the whole history each call — the API is stateless."},"max_tokens":{"type":"number","description":"Maximum tokens to generate. Billed at this ceiling rather than at actual usage, so ask for what you need — an unused allowance is still paid for.","minimum":0},"system":{"type":"string"},"stream":{"type":"boolean"},"metadata":{"type":"object"}},"additionalProperties":true},"example":{"messages":[{"role":"user","content":"Summarize x402 in one sentence."}],"max_tokens":0}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/claude-opus-5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"Summarize x402 in one sentence.\"}],\"max_tokens\":0}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/claude-opus-5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Summarize x402 in one sentence.\"\n      }\n    ],\n    \"max_tokens\": 0\n  }),\n});\nconst data = await res.json();"}]}},"/x402/eleven-v3":{"post":{"operationId":"x402_eleven-v3","summary":"Convert text to speech with eleven-v3 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call eleven-v3 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to convert into speech."},"voice_id":{"type":"string","description":"The ElevenLabs voice ID to use for generation."},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96"]},"language_code":{"type":"string","description":"ISO 639-1 language code to enforce."},"voice_settings":{"type":"object"},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":4294967295},"previous_text":{"type":"string"},"next_text":{"type":"string"},"apply_text_normalization":{"type":"string","enum":["auto","on","off"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/eleven-v3\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/eleven-v3', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/eleven-multilingual-v2":{"post":{"operationId":"x402_eleven-multilingual-v2","summary":"Convert text to speech with eleven-multilingual-v2 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call eleven-multilingual-v2 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to convert into speech."},"voice_id":{"type":"string","description":"The ElevenLabs voice ID to use for generation."},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96"]},"language_code":{"type":"string","description":"ISO 639-1 language code to enforce."},"voice_settings":{"type":"object"},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":4294967295},"previous_text":{"type":"string"},"next_text":{"type":"string"},"apply_text_normalization":{"type":"string","enum":["auto","on","off"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/eleven-multilingual-v2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/eleven-multilingual-v2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/eleven-turbo-v2-5":{"post":{"operationId":"x402_eleven-turbo-v2-5","summary":"Convert text to speech with eleven-turbo-v2-5 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call eleven-turbo-v2-5 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to convert into speech."},"voice_id":{"type":"string","description":"The ElevenLabs voice ID to use for generation."},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96"]},"language_code":{"type":"string","description":"ISO 639-1 language code to enforce."},"voice_settings":{"type":"object"},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":4294967295},"previous_text":{"type":"string"},"next_text":{"type":"string"},"apply_text_normalization":{"type":"string","enum":["auto","on","off"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/eleven-turbo-v2-5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/eleven-turbo-v2-5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/eleven-flash-v2-5":{"post":{"operationId":"x402_eleven-flash-v2-5","summary":"Convert text to speech with eleven-flash-v2-5 via x402.","description":"**$0.001000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call eleven-flash-v2-5 (tts). Priced per character — final price scales with text length; min is the smallest possible charge.","tags":["tts"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to convert into speech."},"voice_id":{"type":"string","description":"The ElevenLabs voice ID to use for generation."},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96"]},"language_code":{"type":"string","description":"ISO 639-1 language code to enforce."},"voice_settings":{"type":"object"},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":4294967295},"previous_text":{"type":"string"},"next_text":{"type":"string"},"apply_text_normalization":{"type":"string","enum":["auto","on","off"]}},"additionalProperties":true},"example":{"text":"Hello from GlianaAI."}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/eleven-flash-v2-5\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello from GlianaAI.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/eleven-flash-v2-5', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"Hello from GlianaAI.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/music-v2":{"post":{"operationId":"x402_music-v2","summary":"Generate music with music-v2 via x402.","description":"**$0.003000–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call music-v2 (music). Priced per second ($0.003000/sec) — final price = video length x rate.","tags":["music"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.003000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"prompt":{"type":"string","description":"Text prompt describing what to generate."},"composition_plan":{"type":"object"},"music_length_ms":{"type":"integer","minimum":3000,"maximum":600000},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"]},"seed":{"type":"integer","description":"Random seed for reproducible results — same seed + inputs gives the same output.","minimum":0,"maximum":4294967295},"force_instrumental":{"type":"boolean"},"store_for_inpainting":{"type":"boolean"},"sign_with_c2pa":{"type":"boolean"}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/music-v2\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/music-v2', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/seedream-5-pro":{"post":{"operationId":"x402_seedream-5-pro","summary":"Generate an image with seedream-5-pro via x402.","description":"**$0.054000 per call.** Flat price, charged only on success.\n\nPay-per-call seedream-5-pro (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.054000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text prompt describing what to generate."},"image":{"description":"Input image (HTTPS URL or upload) to guide or edit from."},"size":{"type":"string","description":"Output dimensions (width × height)."}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/seedream-5-pro\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/seedream-5-pro', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/nano-banana-2-lite":{"post":{"operationId":"x402_nano-banana-2-lite","summary":"Generate an image with nano-banana-2-lite via x402.","description":"**$0.046440 per call.** Flat price, charged only on success.\n\nPay-per-call nano-banana-2-lite (text-to-image).","tags":["text-to-image"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.046440"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Text prompt describing what to generate."},"image_input":{"type":"array","description":"Reference image(s) to guide generation (HTTPS URL or upload). Pass a public URL; to use a local file, upload it (free) via POST /v1/media (≤40MB) and pass the returned url.","items":{"type":"string","format":"uri"},"x-file-input":true},"aspect_ratio":{"type":"string","description":"Output aspect ratio (e.g. 16:9, 1:1, 9:16).","enum":["match_input_image","1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"output_format":{"type":"string","description":"File format of the output (e.g. png, jpeg, mp4).","enum":["jpg","png"]},"resolution":{"type":"string","description":"Output resolution / quality tier.","enum":["1K","2K","4K"]}},"additionalProperties":true},"example":{"prompt":"a red apple on a table"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/nano-banana-2-lite\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a red apple on a table\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/nano-banana-2-lite', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a red apple on a table\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/gpt-5.6-sol":{"post":{"operationId":"x402_gpt-5.6-sol","summary":"Generate text with gpt-5.6-sol via x402.","description":"**$0.036870 per call.** Flat price, charged only on success.\n\nPay-per-call gpt-5.6-sol (text).","tags":["text"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.036870"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"description":"The prompt to send. A plain string for a single turn, or an array of typed content parts for multi-part input."},"instructions":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":2},"max_output_tokens":{"type":"number","minimum":0},"top_p":{"type":"number","minimum":0,"maximum":1},"stream":{"type":"boolean"},"tools":{"type":"array"},"tool_choice":{},"text":{"type":"object"},"reasoning":{"type":"object"}},"additionalProperties":true},"example":{"input":"value"}}}},"responses":{"200":{"description":"Model output.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferOutput"}}}},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/gpt-5.6-sol\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"input\":\"value\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/gpt-5.6-sol', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"input\": \"value\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/embed":{"post":{"operationId":"x402_tools_embed","summary":"Run the embed tool via x402.","description":"**$0.000500 per call.** Flat price, charged only on success.\n\nPay-per-call tools/embed via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.000500"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"texts":["harga tiket kereta ke Bandung","train ticket price to Bandung"]}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/embed\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"texts\":[\"harga tiket kereta ke Bandung\",\"train ticket price to Bandung\"]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/embed', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"texts\": [\n      \"harga tiket kereta ke Bandung\",\n      \"train ticket price to Bandung\"\n    ]\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/moderate":{"post":{"operationId":"x402_tools_moderate","summary":"Run the moderate tool via x402.","description":"**$0.001000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/moderate via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"text":"I will find where you live."}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/moderate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"I will find where you live.\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/moderate', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"I will find where you live.\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/face-detect":{"post":{"operationId":"x402_tools_face_detect","summary":"Detect faces in an image via x402.","description":"**$0.002000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/face-detect via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/face.jpg"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/face-detect\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/face.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/face-detect', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/face.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/face-embed":{"post":{"operationId":"x402_tools_face_embed","summary":"Extract face embeddings via x402.","description":"**$0.005000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/face-embed via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/face.jpg"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/face-embed\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/face.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/face-embed', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/face.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/face-compare":{"post":{"operationId":"x402_tools_face_compare","summary":"Compare two face images via x402.","description":"**$0.008000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/face-compare via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"a":{"image_url":"https://example.com/a.jpg"},"b":{"image_url":"https://example.com/b.jpg"}}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/face-compare\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"a\":{\"image_url\":\"https://example.com/a.jpg\"},\"b\":{\"image_url\":\"https://example.com/b.jpg\"}}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/face-compare', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"a\": {\n      \"image_url\": \"https://example.com/a.jpg\"\n    },\n    \"b\": {\n      \"image_url\": \"https://example.com/b.jpg\"\n    }\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/token-price":{"post":{"operationId":"x402_tools_token_price","summary":"Fetch spot token prices via x402.","description":"**$0.002000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/token-price via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"symbols":"BTC,ETH","vs":"usd"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/token-price\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"symbols\":\"BTC,ETH\",\"vs\":\"usd\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/token-price', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"symbols\": \"BTC,ETH\",\n    \"vs\": \"usd\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/exchange-rate":{"post":{"operationId":"x402_tools_exchange_rate","summary":"Run the exchange-rate tool via x402.","description":"**$0.002000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/exchange-rate via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"from":"USD","to":"IDR,EUR","amount":100}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/exchange-rate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"from\":\"USD\",\"to\":\"IDR,EUR\",\"amount\":100}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/exchange-rate', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"from\": \"USD\",\n    \"to\": \"IDR,EUR\",\n    \"amount\": 100\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/ocr-id":{"post":{"operationId":"x402_tools_ocr_id","summary":"Run the ocr-id tool via x402.","description":"**$0.005000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/ocr-id via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/ktp.jpg"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/ocr-id\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/ktp.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/ocr-id', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/ktp.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/extract":{"post":{"operationId":"x402_tools_extract","summary":"Run the extract tool via x402.","description":"**$0.010000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/extract via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com/product","schema":{"title":"the product name","price":{"type":"number","description":"listed price"},"in_stock":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/extract\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com/product\",\"schema\":{\"title\":\"the product name\",\"price\":{\"type\":\"number\",\"description\":\"listed price\"},\"in_stock\":{\"type\":\"boolean\"}}}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/extract', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com/product\",\n    \"schema\": {\n      \"title\": \"the product name\",\n      \"price\": {\n        \"type\": \"number\",\n        \"description\": \"listed price\"\n      },\n      \"in_stock\": {\n        \"type\": \"boolean\"\n      }\n    }\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/product-listing":{"post":{"operationId":"x402_tools_product_listing","summary":"Run the product-listing tool via x402.","description":"**$0.008000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/product-listing via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image_url":"https://example.com/product.jpg"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/product-listing\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\":\"https://example.com/product.jpg\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/product-listing', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image_url\": \"https://example.com/product.jpg\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/rpc":{"post":{"operationId":"x402_tools_rpc","summary":"Send a JSON-RPC call via x402.","description":"**$0.002000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/rpc via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"chain":"base","method":"eth_blockNumber","params":[]}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/rpc\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"chain\":\"base\",\"method\":\"eth_blockNumber\",\"params\":[]}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/rpc', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"chain\": \"base\",\n    \"method\": \"eth_blockNumber\",\n    \"params\": []\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/scrape":{"post":{"operationId":"x402_tools_scrape","summary":"Scrape a page to markdown via x402.","description":"**$0.005000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/scrape via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/scrape\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/scrape', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/screenshot":{"post":{"operationId":"x402_tools_screenshot","summary":"Capture a page screenshot via x402.","description":"**$0.005000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/screenshot via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/screenshot\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/screenshot', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/og-image":{"post":{"operationId":"x402_tools_og_image","summary":"Render an OG social card via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/og-image via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"title":"GlianaAI","subtitle":"pay-per-call AI, no signup"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/og-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\":\"GlianaAI\",\"subtitle\":\"pay-per-call AI, no signup\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/og-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"title\": \"GlianaAI\",\n    \"subtitle\": \"pay-per-call AI, no signup\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/youtube-thumbnail":{"post":{"operationId":"x402_tools_youtube_thumbnail","summary":"Render a YouTube thumbnail via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/youtube-thumbnail via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"title":"I built an AI API","subtitle":"in one weekend"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/youtube-thumbnail\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\":\"I built an AI API\",\"subtitle\":\"in one weekend\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/youtube-thumbnail', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"title\": \"I built an AI API\",\n    \"subtitle\": \"in one weekend\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/quote-card":{"post":{"operationId":"x402_tools_quote_card","summary":"Render a quote card image via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/quote-card via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"quote":"Make it work, make it right, make it fast.","author":"Kent Beck"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/quote-card\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"quote\":\"Make it work, make it right, make it fast.\",\"author\":\"Kent Beck\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/quote-card', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"quote\": \"Make it work, make it right, make it fast.\",\n    \"author\": \"Kent Beck\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/code-image":{"post":{"operationId":"x402_tools_code_image","summary":"Render a code snippet image via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/code-image via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"code":"const x = 42;","title":"app.js"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/code-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"code\":\"const x = 42;\",\"title\":\"app.js\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/code-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"code\": \"const x = 42;\",\n    \"title\": \"app.js\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/tweet-image":{"post":{"operationId":"x402_tools_tweet_image","summary":"Render a tweet-style card via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/tweet-image via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"text":"shipping > talking","name":"GlianaAI","handle":"glianalabs"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/tweet-image\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"shipping > talking\",\"name\":\"GlianaAI\",\"handle\":\"glianalabs\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/tweet-image', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"text\": \"shipping > talking\",\n    \"name\": \"GlianaAI\",\n    \"handle\": \"glianalabs\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/meme":{"post":{"operationId":"x402_tools_meme","summary":"Render a meme image via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/meme via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"image":"https://example.com/cat.jpg","top":"one does not simply","bottom":"ship on friday"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/meme\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\":\"https://example.com/cat.jpg\",\"top\":\"one does not simply\",\"bottom\":\"ship on friday\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/meme', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"image\": \"https://example.com/cat.jpg\",\n    \"top\": \"one does not simply\",\n    \"bottom\": \"ship on friday\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/card":{"post":{"operationId":"x402_tools_card","summary":"Render a social card image via x402.","description":"**$0.020000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/card via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"preset":"instagram-square","title":"Big news","subtitle":"we shipped it"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/card\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"preset\":\"instagram-square\",\"title\":\"Big news\",\"subtitle\":\"we shipped it\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/card', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"preset\": \"instagram-square\",\n    \"title\": \"Big news\",\n    \"subtitle\": \"we shipped it\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/auto-og":{"post":{"operationId":"x402_tools_auto_og","summary":"Render an OG card from a URL via x402.","description":"**$0.030000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/auto-og via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/auto-og\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/auto-og', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://example.com\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/tools/youtube-summary":{"post":{"operationId":"x402_tools_youtube_summary","summary":"Summarize a YouTube video via x402.","description":"**$0.150000 per call.** Flat price, charged only on success.\n\nPay-per-call tools/youtube-summary via x402.","tags":["utility"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.150000"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","style":"bullets"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/tools/youtube-summary\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"style\":\"bullets\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/tools/youtube-summary', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"url\": \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n    \"style\": \"bullets\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recipes/image-to-video":{"post":{"operationId":"x402_recipes_image_to_video","summary":"Run the image-to-video recipe via x402.","description":"**$0.445550–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call recipes/image-to-video via x402. Price = sum of the pipeline steps; min is the default-configuration price (overriding step models changes it).","tags":["recipe","video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.445550"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"prompt":"an italian-brainrot cat-shark, 3d meme"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recipes/image-to-video\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"an italian-brainrot cat-shark, 3d meme\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recipes/image-to-video', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"an italian-brainrot cat-shark, 3d meme\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recipes/image-to-video-audio":{"post":{"operationId":"x402_recipes_image_to_video_audio","summary":"Run the image-to-video-audio recipe via x402.","description":"**$0.844300–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call recipes/image-to-video-audio via x402. Price = sum of the pipeline steps; min is the default-configuration price (overriding step models changes it).","tags":["recipe","video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.844300"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"prompt":"a singing cartoon frog"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recipes/image-to-video-audio\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a singing cartoon frog\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recipes/image-to-video-audio', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a singing cartoon frog\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recipes/image-to-video-hd":{"post":{"operationId":"x402_recipes_image_to_video_hd","summary":"Run the image-to-video-hd recipe via x402.","description":"**$0.470750–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call recipes/image-to-video-hd via x402. Price = sum of the pipeline steps; min is the default-configuration price (overriding step models changes it).","tags":["recipe","video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.470750"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"prompt":"a crisp product shot of a sneaker"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recipes/image-to-video-hd\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"a crisp product shot of a sneaker\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recipes/image-to-video-hd', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"prompt\": \"a crisp product shot of a sneaker\"\n  }),\n});\nconst data = await res.json();"}]}},"/x402/recipes/brainrot-video":{"post":{"operationId":"x402_recipes_brainrot_video","summary":"Run the brainrot-video recipe via x402.","description":"**$0.997500–$undefined per call**, depending on model and input. Exact price is returned in the 402 challenge before you pay, or up front from `GET /v1/price?model=`.\n\nPay-per-call recipes/brainrot-video via x402. Price = sum of the pipeline steps; min is the default-configuration price (overriding step models changes it).","tags":["recipe","video"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.997500"},"protocols":[{"x402":{"networks":[{"network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x7662E00f8Ab4C362166e1FF649Ff6c2A638c80AD"},{"network":"solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"CXSdm7NgrFXooHbvN6CdNgMvmqTkVLzu6JCVZR3J3Ygh"}]}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"motionPrompt":"it dances and bounces energetically"}}}},"responses":{"200":{"description":"Result."},"402":{"description":"Payment Required."}},"x-codeSamples":[{"lang":"cURL","source":"curl -X POST \"https://api.glianalabs.com/x402/recipes/brainrot-video\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"motionPrompt\":\"it dances and bounces energetically\"}'\n# Answers 402 with the price and where to pay. Pay from your wallet and\n# retry the same request with the proof. Clients like mppx do this for you."},{"lang":"JavaScript","source":"const res = await fetch('https://api.glianalabs.com/x402/recipes/brainrot-video', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({\n    \"motionPrompt\": \"it dances and bounces energetically\"\n  }),\n});\nconst data = await res.json();"}]}}},"components":{"schemas":{"InferOutput":{"type":"object","properties":{"model":{"type":"string"},"costMicroUsd":{"type":"integer","description":"Amount charged, micro-USD."},"output":{"type":"object","additionalProperties":true,"description":"The model result, nested — NOT spread across the top level. Media models return { url, contentType, sizeBytes } where url is a stable /v1/media link we host; text models (STT, vision, JSON tools) return the provider shape, e.g. { text }."}}},"PromptInput":{"type":"object","required":[],"properties":{"prompt":{"type":"string","description":"Text prompt, or the model-specific input — see GET /v1/schema?model=."}},"additionalProperties":true}}}}