Get started
Call pays any x402 API per request in USDC. No API key, no subscription, no account with the provider.
How Call works
01
Send the request
Call the API like any HTTP endpoint. No key and no sign-up.
02
Get the price
The API answers 402 Payment Required with its price in USDC.
03
Sign once
Your wallet signs one payment for that exact amount, to that exact address.
04
Get the answer
The request goes again with the payment. The API settles it onchain and responds.
You sign every payment yourself. vAPI never holds your key, and a local wallet's spend caps stop any payment above your limit. How x402 works
Choose how to call
Same APIs, same USDC payment. Pick the tool that fits how you work.
Try an API by hand, right here in the browser.
- 1Connect a wallet with the button at the top right.
- 2Fund it with USDC on Base.
- 3Open an API in Discover, run the free price check, then sign.
Search and pay from your terminal, with a wallet that stays on your machine.
- 1Install vapi-network and create a local wallet.
- 2Fund it with USDC on Base.
- 3Search, inspect, then pay with a price cap.
# Install and create a wallet on your machinenpm i -g vapi-networkvapi init # Add USDC on Basevapi fund # Find an API, read its terms, pay at most $0.05vapi search "weather"vapi inspect <ref>vapi pay <ref> --max 0.05
Let Claude, Cursor or Codex find and pay APIs for you.
- 1Create and fund a wallet first: run vapi init and vapi fund from the CLI tab.
- 2Add this server to your AI app's MCP config.
- 3Ask your agent. It uses call.search, call.inspect and call.pay within the wallet's spend caps: $0.10 per call and $1.00 per day by default.
The hosted MCP at api.vapinetwork.ai/mcp only searches and inspects. Payments always run on your machine.
{ "mcpServers": { "vapi": { "command": "npx", "args": ["-y", "vapi-network", "mcp"] } }}
Pay APIs from your own TypeScript code.
- 1Install vapi-network in your project.
- 2Create a client for a local account.
- 3Search, then pay with maxPriceUsd as the cap.
// npm i vapi-networkimport { createVapiClient } from "vapi-network"; const vapi = await createVapiClient({ account: "main" }); const apis = await vapi.call.search("weather");const terms = await vapi.call.inspect("<ref>");const result = await vapi.call.pay({ id: "<ref>", maxPriceUsd: 0.05 });console.log(result.body);
See how it works underneath: search and prices are plain HTTP.
- 1Search the public catalog.
- 2Call an API without paying to read its 402 price.
- 3To pay, sign the PAYMENT-SIGNATURE header yourself, or use the CLI, MCP or SDK.
# Search the catalogcurl 'https://api.vapinetwork.ai/api/call/discovery?q=weather&kinds=api&limit=5' # Call an API without paying: it answers 402 with its pricecurl -i '<api-url>'
