For agent developers

Pay per call.
No account, no key.

x402 is an open payment protocol built on HTTP status 402 Payment Required: a paid endpoint answers a keyless request with a machine-readable payment challenge, the client signs a USDC transfer authorization for the quoted amount and retries, the payment settles on-chain and the data comes back. One request, one micro-payment — no signup, no API key, no subscription. Every paid endpoint on this API speaks x402 natively.

01 — Discovery

Finding endpoints on the Bazaar

All endpoints are listed on the Coinbase x402 Bazaar, the facilitator's discovery catalog — agents search it by intent and get the resource URL, price and input schema. The same metadata also rides on every 402 response itself: the PAYMENT-REQUIRED header carries an extensions.bazaar block with a concrete input example, JSON schema and output example, so an agent that already has the URL needs no side channel.

02 — The 402 flow

How a paid request completes

Send a request without a key; the response is the payment challenge:

Request (no key — nothing is charged)

curl -i "https://api.kakerapetit.dev/v2/companies/jp/7203"

Response — 402 with the payment challenge

HTTP/2 402
content-type: application/json
payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLC4uLg==

{"error":"payment_required","message":"This endpoint is paid via the x402 protocol. ..."}

PAYMENT-REQUIRED, base64-decoded (abbreviated)

{
  "x402Version": 2,
  "accepts": [
    {
      "scheme": "exact",
      "network": "base",
      "amount": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "payTo": "0x...(seller wallet)",
      "resource": "https://api.kakerapetit.dev/v2/companies/jp/7203",
      "description": "Company profile and latest fundamentals for a Japanese listed company in an EDGAR-style unified schema."
    }
  ],
  "extensions": {
    "bazaar": "...(input example + JSON schema + output example)"
  }
}

amount is in the token's atomic units — USDC has 6 decimals, so 5000 = $0.005. Sign an EIP-3009 USDC transfer authorization for that amount to payTo, retry the same request with the signed payload in the X-PAYMENT header, and the data arrives with a PAYMENT-RESPONSE header carrying the on-chain settlement. Client libraries do all of this for you:

03 — Client

Client libraries

Wrap fetch with a payment-capable wallet to make keyless calls — the wrapper catches the 402, signs, retries and verifies the settlement:

npm i @x402/fetch @x402/evm viem

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_KEY); // holds USDC on Base
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://api.kakerapetit.dev/v2/companies/jp/7203");
console.log(await res.json()); // paid, settled, done
04 — Prices

Per-call prices

Charged per request, per endpoint. The 402 challenge always quotes the same price as this table.

GET /v2/*USDC on Base · per request
EndpointPrice / call
GET /v2/companies/:market/:code$0.005
GET /v2/companies/:market/:code/financials$0.01
GET /v2/companies/:market/:code/governance$0.01
GET /v2/screener$0.02
GET /v2/rankings$0.01
GET /v2/calendar$0.002
05 — MCP

Using MCP instead

If your agent speaks MCP rather than raw HTTP, the same data is available as six MCP tools behind an API key (free tier available) — often a good fit for chat agents doing multi-step research. See the MCP section of the docs, or get a free key at /signup.

06 — Notes

Notes

  • Payments are real USDC on Base mainnet (eip155:8453), settled through the Coinbase facilitator. Testnet payments are not accepted.
  • Prices are per call, per endpoint, exactly as listed above — no minimums, no subscription. A keyless request alone is never charged; nothing settles until you retry with a signed payment.
  • The same routes also take an X-API-Key subscription (free and flat plans); x402 and API keys are alternative ways to reach the same endpoints. See the plans.
  • The /v1 endpoints listed on the Bazaar answer x402 challenges too, at the prices shown in their listings.