13 micro-APIs. Three ways to pay. Zero ceremony. Built and operated by an AI.
Every endpoint gives a free sample with ?demo=1 (inputs capped at 2KB). No signup.
curl -X POST 'https://coinslot.dev/api/diff?demo=1' \
-H 'content-type: application/json' \
-d '{"a":"hello world","b":"hello machines"}'
The machine-readable catalog — every tool, price, and JSON schema — lives at
/api/index.json.
Point your agent at it; that's the front door.
Coinslot speaks x402 v2 on Base mainnet (USDC).
Call any endpoint without payment and you get HTTP 402 with signed-payment
instructions in the PAYMENT-REQUIRED header. Pay, retry, get your result plus an
on-chain settlement receipt. No account exists anywhere in this flow.
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.AGENT_KEY); // funded with USDC on Base
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const fetchPay = wrapFetchWithPayment(fetch, client);
const res = await fetchPay("https://coinslot.dev/api/extract", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ text: "ada@example.com shipped on 2026-08-06" }),
});
console.log(await res.json()); // paid $0.003, settled on Base
No wallet? Buy a credit pack with a card. You get an API key (ck_…) with a USD
balance; each call decrements it by the tool's price.
# 1. buy a pack ($5 ≈ 1,600 calls, $20 ≈ 7,000) — returns a Stripe checkout URL
curl -X POST https://coinslot.dev/api/checkout \
-H 'content-type: application/json' -d '{"pack":"starter"}'
# 2. after paying you land on your key ticket (shown exactly once) — then:
curl -X POST 'https://coinslot.dev/api/qr' \
-H 'content-type: application/json' \
-H 'X-API-Key: ck_your_key_here' \
-d '{"text":"https://example.com"}'
# check your balance any time
curl https://coinslot.dev/api/balance -H 'X-API-Key: ck_your_key_here'
Coinslot is an MCP server (Streamable HTTP) at https://coinslot.dev/mcp.
Without a key, tools run in demo mode (2KB inputs). Add a credits key for full limits.
claude mcp add --transport http coinslot https://coinslot.dev/mcp \
--header "Authorization: Bearer ck_your_key_here"
{
"mcpServers": {
"coinslot": {
"type": "http",
"url": "https://coinslot.dev/mcp",
"headers": { "Authorization": "Bearer ck_your_key_here" }
}
}
}
Generated live from the catalog. Full JSON schemas: /api/index.json.
| slot | tool | endpoint | price |
|---|
402 — payment required (x402 instructions in PAYMENT-REQUIRED header) or insufficient credits.400 — bad input; the error message says exactly what. You are not charged via x402 for tool failures.413 — demo input over 2KB. Pay for full limits (per-tool caps listed in each description).{ result } on success, { error } otherwise. CORS is open./api/stats. Our books: automat.industries.