{"service":"PRXVT API","summary":"OpenAI-compatible chat completions with two ways to pay, same models + body shape on both: (A) an API KEY — Authorization: Bearer prxvt-sk-..., backed by a topped-up account balance, the familiar drop-in for any OpenAI client (base_url https://api.prxvt.ai/v1); or (B) x402 PAY-PER-CALL — one signed USDC authorization per request, gasless, no account or key.","protocol":"x402-v2","scheme":"exact","chainId":8453,"network":"eip155:8453","endpoints":{"paid":[{"method":"POST","path":"/chat/completions","aliases":["/v1/x402/chat/completions"],"description":"Pay-per-call OpenAI-compatible chat completion. Quote = (input_tokens + max_output_tokens) * model rate * 1.10. Settled gaslessly via EIP-3009. No account, no API key.","pricingModel":"per-token + 10% margin","bodySchema":{"model":"string (see GET /v1/models)","messages":"Array<{role: 'user'|'system'|'assistant', content: string}>","stream":"boolean (optional, default false)","max_tokens":"number (optional, default 1024, max 32768)","temperature":"number (optional)","top_p":"number (optional)","tools":"array (optional, OpenAI tools format)"}},{"method":"POST","path":"/topup","aliases":["/v1/credits/topup"],"description":"Pay $5 USDC, server credits your wallet-keyed PRXVT account. Sign in via SIWE at prxvt.ai/api-keys to mint API keys and spend the balance against the bearer endpoints below.","pricingModel":"fixed $5 USDC"}],"bearer":[{"method":"POST","path":"/v1/chat/completions","auth":"Authorization: Bearer prxvt-sk-...","description":"Bearer-authed chat completions. Each call debits the key's account balance. Same OpenAI-compatible body shape as the x402 rail."},{"method":"POST","path":"/v1/mcp","auth":"Authorization: Bearer prxvt-sk-...","description":"Model Context Protocol over Streamable HTTP. Tools: chat, balance, models, keys, topup info. For tool-using LLM clients (Claude Desktop, Cursor, custom agents)."}],"public":[{"method":"GET","path":"/llms.txt","description":"Plain-text instructions for AI agents. Read this if you ARE an LLM and you want to know how to call the paid endpoints."},{"method":"GET","path":"/v1/models","description":"Catalog of every model + per-token prices. OpenAI-shape + PRXVT extras."},{"method":"GET","path":"/v1/credits/info","description":"Server wallet address, chain id, USDC contract, fixed-price metadata."},{"method":"GET","path":"/","description":"This manifest."}]},"paymentDance":{"step1":"POST to a paid endpoint without payment. Server responds 402 with a base64 PaymentRequired body in the `payment-required` header.","step2":"Decode the header (or use @x402/core/client), sign the EIP-3009 transferWithAuthorization for the quoted amount with viem.","step3":"Re-POST the same body with `PAYMENT-SIGNATURE` set to the base64-encoded signed payload. Server settles via the facilitator (gas paid by them) and returns the completion."},"sdks":{"node":["@x402/core","@x402/evm","viem"],"install":"npm i @x402/core @x402/evm viem"},"llmsTxt":"/llms.txt","docs":"https://prxvt.ai/docs"}