The First x402 Payment API
Pay per request with USDC. No subscriptions, no credit cards. Just instant micropayments for AI agents and developers.
Why x402?
⚡ Instant Payments
Pay per request, no subscriptions. Perfect for AI agents making autonomous payments.
💰 Micropayments
Pay from $0.001 per request (typical $0.01, range $0.001–$0.10 by endpoint). QR code endpoint free. No minimums, no commitments.
🤖 AI Agent Ready
Native x402 support means AI agents can pay automatically without human intervention.
🌐 No Account Required
Just pay and use. No registration, no credit cards, no KYC.
API Endpoints
Market Data
AI Tools
Crypto Analytics
Utilities
Authentication
AsterPay uses one rule per surface. You almost never need an API key.
| Surface | Auth | How |
|---|---|---|
| Free read endpoints trust score, settlement estimate, discovery, market rates |
None | Plain HTTP GET. No key, no account. |
| Paid endpoints deep analysis, offramp, AI tools, crypto analytics |
Pay-per-call (keyless) | x402 PAYMENT-SIGNATURE header, or MPP Authorization: Payment. No account. |
| Dashboard & merchant features usage analytics, settlement payouts (app.asterpay.io) |
API key | Authorization: Bearer sk_.... Only for dashboard-bound calls — never required for the public API above. |
Live payout requires KYB (handled at settlement, not at the API). Reads and per-call payments stay keyless and accountless.
Example Usage
// FREE read endpoint — no key, no payment
const est = await fetch(
'https://x402.asterpay.io/v1/settlement/estimate?amount=100'
).then(r => r.json());
console.log(est.data.netEurAmount, est.data.estimatedSepaTime);
// PAID endpoint — easiest path is the x402 fetch wrapper, which
// auto-handles the 402 -> pay -> retry loop for you.
// npm install x402-fetch (USDC on Base, EIP-3009, mainnet)
import { wrapFetchWithPayment } from 'x402-fetch';
import { account } from './wallet.js'; // your funded signer
const pay = wrapFetchWithPayment(fetch, account);
const data = await pay(
'https://x402.asterpay.io/v1/agent/deep-analysis/0xYourAgentAddress'
).then(r => r.json());
// The wrapper reads the 402 challenge (x402Version 2, network eip155:8453,
// USDC asset), signs an EIP-3009 transferWithAuthorization, base64-encodes it,
// and retries with the PAYMENT-SIGNATURE header. You just get the result.
Prefer raw HTTP or another language? The full request/response shapes are in the
OpenAPI 3.1 spec,
the Postman collection,
and the interactive docs. Every paid call also accepts MPP
(Authorization: Payment) on the same URL.