# 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 `exact` offer in canonical USDC on Base. Put the offer in both the JSON body and the base64 `PAYMENT-REQUIRED` header for a clean conformance check.
- For OpenAPI publishing, declare a `402` response and `x-payment-info` on every paid operation. One concrete endpoint can be listed without OpenAPI.
- For browser buyers, allow the console origin through CORS and expose `PAYMENT-REQUIRED` and `PAYMENT-RESPONSE` to browser JavaScript. An API can list with a CORS warning, but browser access still needs those headers.
- Use `vapi check` to 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.

1. Submit the URL and let the registry probe the payable operations.
2. Select the endpoints to publish, with their request and payment metadata.
3. Sign the payout-wallet proof with the wallet that receives your Call payouts.
4. Deploy the predicted FeeSplitter on Base from your wallet, then set the API's live `payTo` to that splitter address.
5. 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.

~~~bash
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.

## Prepare your API for Call

### vAPI documentation

List your API: https://docs.vapinetwork.ai/call/for-providers/list-your-api
Publishing from the CLI: https://docs.vapinetwork.ai/call/for-providers/publishing-from-the-cli
Fees and payouts: https://docs.vapinetwork.ai/call/for-providers/fees-and-payouts
Get verified: https://docs.vapinetwork.ai/call/for-providers/get-verified

### On this site

vAPI Call: https://vapinetwork.ai/call
What is x402?: https://vapinetwork.ai/x402
402 Payment Required: https://vapinetwork.ai/learn/http-402-payment-required
Agent payments: https://vapinetwork.ai/agent-payments
