Skip to main content

Gate · Paid API access

A paywall your agent customers can pay.

Put a price on any endpoint. A calling agent gets a 402 with the price, pays under its own mandate, and gets through. Both sides keep the record.

Test keys are free.

GET /v1/datasets/retaildemocaller agt_r3sc · mnd_r3sc

0 msRequest

agent run "fetch the retail dataset" · GET /v1/datasets/retail

no payment

12 ms402 Payment Required

0.02 USDC
{ "x402Version": 1, "error": "X-PAYMENT header is required", "accepts": [{ "scheme": "exact", "network": "base", "maxAmountRequired": "20000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "payTo": "0x7a3f2c9d5e1b8a4f6c0d3e2b9a7f5c1d8e4b91fe", "resource": "https://api.orbital.example/v1/datasets/retail", "maxTimeoutSeconds": 60 }] }

15 msMandate

mnd_r3sc · per-call cap US$ 0.10 · 0.02 inside

within cap

1.810 sPay

GET /v1/datasets/retail · X-PAYMENT

+0.02 USDCsettled

1.894 s200 OK

X-PAYMENT-RESPONSE · rec_82d0 · signed on both sides

signed receipt

request · 0 ms

402 + price · 12 ms

mandate · 3 ms

pay · settles in 1.795 s

200 + record · 84 ms

Sandbox run · demo data

Who it's for

API and data providers whose callers are agents.

Datasets, enrichment, pricing and any endpoint an agent calls on its own.

/v1/datasets/retaildataset
/v1/enrich/companyenrichment
/v1/prices/fxpricing

The problem

Agents call your API and there is no way to charge them per call.

So you give the call away, or you turn the agent down.

GET /v1/datasets/retailfree
GET /v1/datasets/retailfree
GET /v1/datasets/retailturned down

The result

Every paid call settles before the response.

The caller pays inside its own mandate. Both sides keep the same signed receipt.

402 · 0.02 USDCpriced
paid under its mandatesettled
200 OKsigned receipt

Paid calls

Every call that paid, and the ones that didn't.

Both books file the same receipt for each paid call. A refused or failed call is recorded too, with nothing charged.

The caller keeps

Endpoint

Price paid

Mandate that allowed it

Signed receipt

Your endpoint keeps

Caller

Amount received

Result returned

Signed receipt

Your endpoint · calls today demoUSDC
POST /v1/enrich/companyPricing agent · rec_51e20.05runningsettled
GET /v1/datasets/retailResearch agent · rec_82d00.02settled
GET /v1/reports/fullResearch agent · over the caller's per-call cap, nothing charged0.40refused
GET /v1/prices/fxPricing agent · the price quote expired, the caller asked again0.01expired
GET /v1/datasets/retailSourcing agent · payment did not settle, no data returned0.02failed

Sandbox run · demo data

Price one endpoint.

Your endpoint answers unpaid calls with a 402 and the price. A calling agent pays inside its own mandate and retries.

agt_r3sc · paid calldemo
$ agent run "fetch the retail dataset"→ GET /v1/datasets/retail← 402 Payment Required · 0.02 USDC# mandate · cap US$ 0.10 per call · ok→ GET /v1/datasets/retail · X-PAYMENT# settled← 200 OK# rec_82d0 · receipt signed on both sides

Sandbox run · demo data

CodeSpar · Gate · A paywall your agent customers can pay.