API monetization with x402 and USDC
API monetization on vAPI Call means charging USDC for each request to an API you host. You set an x402 price, prove your payout wallet and publish the payable endpoints in Call's directory. Buyers pay the quoted amount to your Base FeeSplitter, which sends the provider share to your wallet when its balance is distributed.
| Item | Current state |
|---|---|
| vAPI Call | Launching. The console does not serve Call yet. |
| API hosting | Your own origin |
| Self-listing payment | x402 v2 exact, canonical USDC on Base |
| Network fee | 5% through the provider's FeeSplitter |
| Checked on | 2026-10-02 |
Prepare a payable endpoint
Call is launching. These steps describe the provider flow at launch; the production console does not serve it yet. You operate the API at your own origin and decide what each paid request costs. The directory helps buyers find and inspect it, while the API supplies the request contract and the live payment offer.
- Answer unpaid requests with an x402 v2
exactoffer in canonical USDC on Base. Put the offer in both the JSON body and the base64PAYMENT-REQUIREDheader for a clean conformance check. - For OpenAPI publishing, declare a
402response andx-payment-infoon every paid operation. One concrete endpoint can be listed without OpenAPI. - For browser buyers, allow the console origin through CORS and expose
PAYMENT-REQUIREDandPAYMENT-RESPONSEto browser JavaScript. An API can list with a CORS warning, but browser access still needs those headers. - Use
vapi checkto inspect the unpaid challenge before publishing. Checking the protocol does not charge the buyer or establish that a paid request will succeed.
Publish and confirm your payout wallet
The Add API flow accepts an origin, endpoint or OpenAPI URL. It probes the payable operations, lets you select them and asks the payout wallet to sign a message. That signature proves the payout wallet; it makes no payment and gives vAPI no authority to sign for buyers.
- Submit the URL and let the registry probe the payable operations.
- Select the endpoints to publish, with their request and payment metadata.
- Sign the payout-wallet proof with the wallet that receives your Call payouts.
- Deploy the predicted FeeSplitter on Base from your wallet, then set the API's live
payToto that splitter address. - Activate the API. Activation checks every endpoint again and verifies the deployed splitter onchain before the API enters discovery.
These commands are copied from the provider documentation. The example URL, API name and slug are placeholders for your own API. The flow needs the payout proof and deployed splitter before activation; the command sample does not bypass those checks.
vapi auth set-key
vapi publish https://your-api.example --mode origin --select paid --name "Provider API" --description "Paid API" --category data
vapi publish activate <slug>How each request pays you
The buyer reads your live 402 and signs an authorization for the exact advertised amount. Your API has the payment verified and settled to payTo, then supplies the paid response. The live offer remains the source of truth for the price and payee; directory metadata does not override it.
5% network fee on self-listed APIs, nothing on indexed listings. The fee comes out of the advertised amount at the payout address. When distribute() runs, your immutable FeeSplitter sends 95% of its accumulated USDC to your payout wallet and 5% to the network fee path. Anyone can call it. The splitter has no owner or upgrade path.
Self-listing through this splitter is Base-only. Buyer support for Arc does not establish an Arc self-listing path: no FeeSplitter factory is deployed there. Direct-payout partner APIs and external indexed APIs use their own payout path and carry no network fee.
Listing and verification are separate
Passing the automated probe lets an API list as unverified. Verification is a separate review tier, requested after activation. Default search includes verified APIs and the external catalog; buyers can opt into unverified results. Listing alone does not put an API into the verified tier.
A scheduled check runs every hour and rechecks self-listed APIs in batches. Three consecutive failed checks suspend an API and remove it from discovery without changing its verification tier. Fix the endpoint and activate it again to resume discovery. Keep the request contract and live payment offer consistent as you change your API.








