150+ models, Claude, GPT, Gemini and DeepSeek among them, below list price. One SingIt API key works in the OpenAI SDK, the Anthropic SDK and Claude Code. Agents with a wallet need no key: they pay per answer over x402. Try it free first.
Agents with no wallet of their own: use an MCP key with limits your owner sets. Caps apply only to calls made with the key to SingIt. Try a free first answer without a key or wallet.
Just want to chat with these models? Open SingIt, no code needed.
Base URL with an API key
https://app.singitai.app/v1
Without a key: free model and x402
https://ask.singitai.app/v1
Same model, lower priceLive
Claude Opus 5.5 · output, per 1M tokens
−75%below the model's list price, markup included
List price$20.00
SingIt$5.07
Expected price: what answers from this model cost us, plus 30%. You pay what each answer actually used, and nothing without an answer. With a key, that is all; over x402, plus $0.001 per answer on Base.
For your own code or agent. To chat, open SingIt instead.
Try free Live · freeCall a model at ask.singitai.app with no wallet and no key: one of 6 free models, for example free/deepseek-v4.1-flash: up to 20 answers a day per network, with a shared daily cost cap that can run out for the day. Resets at midnight UTC.
Get a keyIn the SingIt app under Settings → API keys, your wallet signs the key's limits (per day, per request, how many days), and you top up $1 to $50 at a time in USDC. Each request costs what it used + 30%, with no fee per call, in the OpenAI SDK, the Anthropic SDK or Claude Code at app.singitai.app/v1, with any id from the model list.
Plug in MCP LiveUse Add to Cursor in the MCP tab, or one command in Claude Code. Prices work without a key; your key unlocks web search, page reading and market data.
No wallet, no key. Drop the free/ prefix or pick another model and the same request returns a 402 asking for payment.
Python · key
from openai import OpenAI
# The official OpenAI SDK, pointed at SingIt, with a key from the SingIt app.
client = OpenAI(base_url="https://app.singitai.app/v1", api_key="sk_singit_...")
answer = client.chat.completions.create(
model="claude-opus-5.5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(answer.choices[0].message.content)
Web search too: Exa's SDK with base_url="https://app.singitai.app/v1/exa" and the same key, paid per search from your wallet. Streaming, tools and images work as the model offers them. Each answer carries billing.chargedAtomic: what it took from your balance, in USDC micro-units. /v1/responses, /v1/balance and /v1/usage answer too.
Claude Code
# Your SingIt key, in Anthropic's format
export ANTHROPIC_BASE_URL="https://app.singitai.app"
export ANTHROPIC_AUTH_TOKEN="sk_singit_..."
export ANTHROPIC_MODEL="claude-sonnet-5.5"
claude
Make the key with at least $2 a request: a coding agent sends long contexts. The Anthropic SDK works the same way: base_url="https://app.singitai.app" and the key as api_key. Any model from the list answers here, not only Claude.
MCP
# Claude Code. The free tools work without the header; paid ones need your key.
claude mcp add --transport http singit https://app.singitai.app/mcp \
--header "Authorization: Bearer sk_singit_..."
# Cursor and other clients: mcp.json
{
"mcpServers": {
"singit": {
"url": "https://app.singitai.app/mcp",
"headers": { "Authorization": "Bearer ${env:SINGIT_API_KEY}" }
}
}
}
Listed in the official MCP Registry as app.singitai/singit. Without a key: prices, price symbols and the model list. With a key: web search, page reading and market data, each billed to the key's own limits. The button adds the server without a key; add the header above for paid tools.
x402 · no key
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);
For agents with their own wallet: no account and no key, just a little USDC on Base. The payment is upto: you sign a ceiling, and Coinbase's facilitator settles only what the answer used (billing.totalAtomic, in USDC micro-units). A failed answer is never settled.
First paid call in 60s
# 1. Ask with no payment: HTTP 402 and a PAYMENT-REQUIRED header (base64 JSON, x402 v2)
curl -i https://ask.singitai.app/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"deepseek-v4.1-flash","max_tokens":200,"messages":[{"role":"user","content":"Hello"}]}'
# 2. Sign an offer: upto on Base comes first, a ceiling of 0.0015 USDC here, no ETH needed.# The "x402 · no key" tab signs it for you; so do Coinbase's Bazaar MCP and agentic wallet.# 3. Retry with PAYMENT-SIGNATURE: HTTP 200 with choices[0].message.content,# billing.totalAtomic (what was settled) and a PAYMENT-RESPONSE header.
You pay the answer's actual cost + 30% + $0.001 on Base; exact offers follow for wallets that sign only a flat price. For Claude Opus sign upto: its exact price carries room for thinking tokens and is usually dearer than the answer used. Step by step, with the x402 fetch, Bazaar MCP and agentic wallet variants: the first paid call guide. We ran the paid step end to end on 28.10.2026: deepseek-v4.1-flash, upto on Base, HTTP 200, $0.001 settled, about 3.3 s (transaction).
Discovery
# Models, our prices, list prices and fees
GET https://ask.singitai.app/v1/models
# OpenAPI 3.1 with x402 payment info (x402scan reads this)
GET https://ask.singitai.app/openapi.json
# x402 resource list
GET https://ask.singitai.app/.well-known/x402
Listed on Coinbase's x402 Bazaar and on x402scan, so agents can find SingIt on their own.
Frameworks
# LangChain.js — MCP tools and x402-paid chat
npm install @langchain/mcp-adapters @langchain/core @langchain/openai
# Vercel AI SDK — MCP tools and x402-paid chat
npm install ai @ai-sdk/mcp @ai-sdk/openai-compatible
# ElizaOS — plugin, not on npm yet: install from a checkout
git clone https://github.com/SingItAi/SingItAI.git
npm install ./SingItAI/integrations/elizaos-plugin
Pay from your own Base wallet: limits are enforced in your code before anything is signed; the key comes from an environment variable.
npm install @singitai/sdk @langchain/openai
import { ChatOpenAI } from "@langchain/openai";
import { SingIt } from "@singitai/sdk";
const singit = new SingIt({
evmPrivateKey: process.env.AGENT_PRIVATE_KEY,
network: "base",
maxPerCallUsd: 0.01,
maxPerDayUsd: 1,
});
const chat = new ChatOpenAI({
model: "deepseek-v4.1-flash",
apiKey: "x402",
configuration: { baseURL: "https://ask.singitai.app/v1", fetch: singit.paidFetch() },
maxRetries: 0,
});
console.log((await chat.invoke("What is x402?")).content);
Vercel AI SDK
Pay from your own Base wallet: limits are enforced in your code before anything is signed; the key comes from an environment variable.
npm install @singitai/sdk ai @ai-sdk/openai-compatible
import { generateText } from "ai";
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { SingIt } from "@singitai/sdk";
const singit = new SingIt({
evmPrivateKey: process.env.AGENT_PRIVATE_KEY,
network: "base",
maxPerCallUsd: 0.01,
maxPerDayUsd: 1,
});
const singitProvider = createOpenAICompatible({
name: "singit",
apiKey: "x402",
baseURL: "https://ask.singitai.app/v1",
fetch: singit.paidFetch(),
});
const result = await generateText({
model: singitProvider("deepseek-v4.1-flash"),
prompt: "What is x402?",
maxRetries: 0,
});
console.log(result.text);
@singitai/sdk is released by the maintainer; until it appears on npm, use the repo checkout (sdk/typescript).
Works with
Where you already work.
LiveAny OpenAI client
Base URL app.singitai.app/v1 and a SingIt key. Chat completions and the Responses API, streaming included.
LiveClaude Code and the Anthropic SDK
The same key, in Anthropic's format at app.singitai.app. Every model in the list, not only Claude.
LiveAny x402 agent
Listed on Coinbase's x402 Bazaar and x402scan. Agents pay with their own wallet, no key, in OpenAI's chat completions, Anthropic's Messages or OpenAI's Responses format.
LiveSingIt app and Telegram
Your own agent, paying from limits held in your wallet. Open SingIt
LiveImages
36 image models, Nano Banana, GPT Image, Flux and Seedream among them, from about $0.01 an image. OpenAI's images API at /v1/images/generations, with a key or over x402. Models and prices
LiveVoice
Text to speech from 11 voices (Kokoro, ElevenLabs, Gemini, MiniMax) at /v1/audio/speech, from about $0.005 per 1000 characters; speech to text with a key at /v1/audio/transcriptions. OpenAI's audio API. Models and prices
Live · freePrices
54 cryptocurrencies, gold and silver from Chainlink on Base, and 30 currencies, with no key, no wallet and no payment: ask.singitai.app/v1/prices/crypto/BTC. What is offered
SoonVideo
30+ text-to-video models (LongCat, Grok Imagine, Wan, PixVerse, Seedance) as jobs at /v1/video/generations, from about $0.12 a clip, with a key or over x402. Models and prices
LiveAn MCP server
Prices, web search, page reading and market data inside Claude Code, Cursor or any MCP client, at app.singitai.app/mcp. In the official MCP Registry as app.singitai/singit. Set it up
LiveWeb search and answers
Exa's search, page contents and cited answers at app.singitai.app/v1/exa with the same key, about $0.007 a search from your wallet, Exa's list price. Exa's own SDK works. x402 agents: ask.singitai.app/v1/exa/search.
Prices
Popular models, below list price.
Per million tokens. Ours is the expected price (cost + 30%); list price crossed out; est. means it comes from sellers' quotes, not yet from answers we paid for. With a key, nothing more; over x402, plus $0.001 per answer on Base, $0.002 on Solana. All models
The agent signs a ceiling and is charged the actual cost of the answer. Paying from a SingIt budget, it cannot go past the limits you set, and says why when it stops.
ask claude-opus-5.5 "Review this pull request"
← 402 Payment Required · ceiling 0.054 USDC
→ signed upto 0.054 USDC on Base
✓ 200 · answered · charged 0.0071 USDC, what it used
buy "Steam gift card, $25"
→ Bitrefill · Steam $25 · 25.13 USDC
✕ Over your $10 per-purchase limit. Nothing was paid.
One signature in your wallet raises it.
An example run. Ceilings and charges depend on the model and the answer.
Safety
A budget, not a hot wallet.
A key on disk
The agent's key holds the whole balance
A leaked key is lost money
Limits live in the agent's own software
Stopping it means moving the funds out
SingIt
USDC stays in your own wallet
Daily and per-purchase limits in a contract on Base
An API key spends only the balance you bought, within its own limits
One click revokes a key; one signature revokes the limits