https://x402.renvoy.ai
Core endpoints
These are the two endpoints your server calls to process payments:POST /settle
Settle a payment on-chain. Submits the client’s signed USDC transfer to the network.
Request:
200):
POST /verify
Verify a payment signature without settling. Checks that the signed payment is valid (correct amount, recipient, sufficient balance) but does not submit it on-chain.
Request: Same format as /settle.
Response (200):
Path prefixes
The path prefix determines authentication and which facilitator tier handles the request:/sandbox/...
No authentication. IP-based rate limiting. Base Sepolia and Solana Devnet (testnets).
- 1,000 settlements / 5,000 verifications per month per IP
- 5 RPS per IP
- Minimum payment: 0.0001 USDC
/v1/<key>/...
API key authentication. Routes to the facilitator tier matching your plan.
/v1/<key>/flash/...
Same as above, but routes to the Flashblocks facilitator for ~200ms settlement. Requires Growth plan or higher.
Utility endpoints
GET /health
Health check. No authentication.
GET /supported
Returns supported networks and assets. No authentication.
GET /
Redirects to https://www.renvoy.ai. This is not an API endpoint.
Discovery
GET /discovery/resources
Returns a catalog of x402-enabled resources discovered from successful settlements. Public, no authentication. Resources that include Bazaar metadata (v2 extensions.bazaar or v1 outputSchema) are automatically indexed when settlements succeed through our proxy.
Query parameters:
Response (
200):
- v2 resources include
metadata.bazaarwith full Bazaarinfoandschema - v1 resources have
metadata: {}(discovery data lives inaccepts[].outputSchema) - Responses are cached for 5 minutes
- Resources not seen in 90 days are automatically removed
Agent API
For AI agents that provision their own endpoints via USDC payment. See Agent Self-Provisioning for full documentation.Authentication
JWT (merchant endpoints)
Merchant endpoints (/api/me/...) require a JWT in the Authorization header:
SIWE (payer and agent endpoints)
Payer and agent endpoints accept SIWE (Sign-In with Ethereum) authentication via headers:domain matching x402.renvoy.ai and include an expirationTime (messages without expiry are rejected).
Alternatively, you can obtain a short-lived session token via POST /api/v1/auth/siwe and use it as a Bearer token for subsequent requests. See SIWE session tokens below.
SIWE session tokens
POST /api/v1/auth/siwe
Exchange SIWE credentials for a session token. This avoids repeating SIWE signature verification on every request.
Request:
200):
Use the token as a Bearer token on subsequent requests:
Settlement History
Query settlement history for your account. All history endpoints return paginated results with opaque cursors.Merchant history (JWT)
limit (1-100, default 50), cursor (opaque, from previous response), direction (before or after).
Response (200):
agents array is present when the payer wallet holds ERC-8004 agent NFTs. Each entry contains token_id, name, and a url linking to the agent’s 8004scan profile. Omitted if no agents are detected.
Payer history (SIWE)
Admin history
Opt-out
Tenants can disable settlement logging per API key:history_enabled to true (or omit it) to re-enable. History is enabled by default.
Analytics
Aggregated analytics for your settlements. Returns summary metrics, daily time-series, top resources, error breakdown, and network distribution for a given time window. Analytics are derived from logged settlements. Keys with history disabled (history_enabled: false) are excluded from analytics data.
Merchant analytics (JWT)
days (7, 30, or 90 — default 30).
Response (200):
- All volume fields are in atomic USDC units (6 decimals). Divide by 1,000,000 for human-readable values.
period.start_dateis inclusive,period.end_dateis exclusive (today). Only completed UTC days are included — today’s activity will appear tomorrow.prev_*fields compare against the prior period of equal length. They arenullwhen there are no settlements in the prior period.unique_payerscounts distinct known payer addresses. The same wallet on different networks counts once.timeseriescontains only days with activity. Zero-fill missing dates client-side usingstart_date(inclusive) toend_date(exclusive).
Admin analytics
owner_id and tenant_id query parameters to scope results; omit both for platform-wide analytics.
Error responses
All error responses return JSON with anerror field:
Rate limit headers
Metered responses include remaining quota in headers:remaining count includes both free quota and purchased credits.
When quota is exhausted, 429 responses include: