Pay per answer over x402
A pay-per-answer LLM API over x402
150+ models, Claude, GPT, Gemini and DeepSeek among them. Your agent pays per answer in USDC from its own wallet: no account and no key. You pay only what the answer used.
The problem.
An agent needs an account, a card and a stored API key before it can ask one question. A stored key is a blank check with your billing attached.
Prepaid credits get stranded at one provider, and per-request pricing is a guess until the bill arrives.
How it works.
- One endpoint, OpenAI format:
POST https://ask.singitai.app/v1/chat/completions. Anthropic's Messages (/v1/messages) and OpenAI's Responses (/v1/responses) formats work too.
- 402, then pay:
a request without payment returns 402 Payment Required with a ceiling. Your agent signs an upto payment for that ceiling, and Coinbase's facilitator settles only what the answer used.
- Price:
the answer's actual cost + 30%, plus a settlement fee of $0.001 per answer on Base or $0.002 on Solana. A failed answer is never settled.
- No ETH needed on Base:
the facilitator pays the gas. The agent just needs a little USDC.
- Discoverable:
listed on Coinbase's x402 Bazaar and on x402scan.
An example run. Ceilings and charges depend on the model and the answer.
Quickstart.
Free, no wallet, no key
curl https://ask.singitai.app/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "free/deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Hello!"}]}'
The free model gives 20 answers a day. Drop the free/ prefix or pick another model and the same request returns a 402 asking for payment.
x402, paid from the agent's own wallet
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { UptoEvmScheme } from "@x402/evm/upto/client";
import { createPublicClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";
// A wallet holding a little USDC on Base. No ETH: the facilitator pays the gas.
const account = privateKeyToAccount(process.env.AGENT_KEY);
const chain = createPublicClient({ chain: base, transport: http() });
const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453",
client: new UptoEvmScheme({ address: account.address, signTypedData: account.signTypedData,
readContract: chain.readContract.bind(chain) }) }] });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://ask.singitai.app/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ model: "claude-opus-5.5",
messages: [{ role: "user", content: "Hello!" }] }),
});
const answer = await res.json();
console.log(answer.choices[0].message.content, answer.billing.totalAtomic);
Discovery
GET https://ask.singitai.app/v1/models # models, our prices, list prices and fees
GET https://ask.singitai.app/openapi.json # OpenAPI 3.1 with x402 payment info
GET https://ask.singitai.app/.well-known/x402 # x402 resource list
Beyond chat.
The same x402 lane serves images (/v1/images/generations), text to speech (/v1/audio/speech), and Exa web search, contents and answers (/v1/exa/search, /contents, /answer). Video generation is listed as coming soon on /developers/.
Prefer a key? Or a budget?
- API key:
get one in the SingIt app (Settings → API keys). Your wallet signs the key's limits. Top up $1 to $50 at a time in USDC; each request costs what it used + 30%, with no fee per call. Works with the OpenAI SDK, the Anthropic SDK and Claude Code at https://app.singitai.app/v1. Developer docs
- Budget from your own wallet:
pay answers from SingIt's daily and per-purchase limits (how the limits work).
FAQ.
Do I need an account or API key?
- Not for x402. An agent with a little USDC on Base or Solana pays per answer. A key is optional, for SDKs and Claude Code.
What does "upto" mean?
- Your agent signs a ceiling. The facilitator settles only what the answer actually used, reported as billing.totalAtomic in USDC micro-units. A failed answer is never settled.
Which models?
- 150+ from the live list at GET https://ask.singitai.app/v1/models, Claude, GPT, Gemini, Grok, DeepSeek and Qwen among them. Pass any model id in the model field.
How much does it cost?
- The answer's actual cost + 30%, plus $0.001 per answer on Base or $0.002 on Solana over x402. Live prices against list prices are on /models/.
Can I try it before paying?
- Yes. free/deepseek-v4.1-flash answers with no wallet and no key, 20 answers a day.