Pay-per-call LLM API, no API key
LLM inference API: OpenAI-compatible chat completions for 136 AI models (Claude, GPT, Gemini, Grok, DeepSeek, Qwen, Kimi, GLM), paid per call in USDC on Base with x402. No account, no API key, automatic refund if the model fails.
POST https://modelaccessgateway.com/v1/chat/completions (OpenAI format, model in body.model)When to use it
For AI agents, scripts and apps that need LLM inference on demand and can pay from a wallet: no sign-up, no monthly plan, no key to store. Each call is quoted and paid on its own.
Popular models
- Claude Opus 5.5
/llm/claude-opus-5.5 - Claude Sonnet 5.5
/llm/claude-sonnet-5.5 - Claude Haiku 5.5
/llm/claude-haiku-5.5 - GPT-6 Astra
/llm/gpt-6-astra - GPT-6.1 Sol
/llm/gpt-6.1-sol - GPT-5.5
/llm/gpt-5.5 - GPT-6 Luna
/llm/gpt-6-luna - Gemini 4 Argon
/llm/gemini-4-argon - Gemini 3.1 Pro
/llm/gemini-3.1-pro - Gemini 3.8 Flash
/llm/gemini-3.8-flash - Grok 4.7
/llm/grok-4.7 - Kimi K3
/llm/kimi-k3 - GLM-5.3
/llm/glm-5.3 - DeepSeek V4 Pro
/llm/deepseek-v4-pro - DeepSeek V4.1 Flash
/llm/deepseek-v4.1-flash - DeepSeek V4 Flash Chat
/llm/deepseek-chat - Qwen3.8 Max
/llm/qwen3.8-max - MiniMax M3
/llm/minimax-m3 - Llama 3.3 70B
/llm/llama-3.3-70b - Mistral Large 4
/llm/mistral-large-4 - OpenAI GPT OSS 120B
/llm/gpt-oss-120b - Claude Opus 5
/llm/claude-opus-5 - Claude Sonnet 5
/llm/claude-sonnet-5 - Gemini 3.6 Flash
/llm/gemini-3.6-flash
How to call it
- POST your OpenAI-style request to
https://modelaccessgateway.com/v1/chat/completionswithout payment. The answer is HTTP 402 with aPAYMENT-REQUIREDheader: the exact price in USDC for that prompt andmax_tokens(x402 v2, schemeexact, Base mainnet). - Sign the payment with any x402 client (EIP-3009
transferWithAuthorization; the wallet needs USDC on Base, no ETH). - Send the same request again with the
PAYMENT-SIGNATUREheader. You get a standardchat.completion(or server-sent events with"stream": true). If the model fails to answer, the payment is refunded automatically.
// npm i @x402/core @x402/evm @x402/fetch viem
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.WALLET_KEY), networks: ["eip155:8453"] });
const pay = wrapFetchWithPayment(fetch, client);
const r = await pay("https://modelaccessgateway.com/v1/chat/completions", { method: "POST", headers: { "content-type": "application/json" },
body: JSON.stringify({ messages: [{ role: "user", content: "Hello" }], max_tokens: 256 }) });
console.log((await r.json()).choices[0].message.content);
Quote only (free): curl -i -X POST https://modelaccessgateway.com/v1/chat/completions -H 'content-type: application/json' -d '{"messages":[{"role":"user","content":"Hello"}],"max_tokens":256}'
Machine-readable
OpenAPI 3.1 · llms.txt · x402 manifest · pricing.json · Terms of use
The gateway is independent and not affiliated with any model provider; model names only identify the model that answers.