Skip to main content
Base URL: 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:
Response (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.bazaar with full Bazaar info and schema
  • v1 resources have metadata: {} (discovery data lives in accepts[].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:
JWTs are issued by Auth0 when you sign in at renvoy.ai. The dashboard handles this automatically. If you’re calling merchant endpoints programmatically, use the JWT from your authenticated session.

SIWE (payer and agent endpoints)

Payer and agent endpoints accept SIWE (Sign-In with Ethereum) authentication via headers:
The SIWE message must have a 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:
No request body. The SIWE message and signature are sent in headers. Response (200):
Use the token as a Bearer token on subsequent requests:
Rate limited to 5 requests per second per IP.

Settlement History

Query settlement history for your account. All history endpoints return paginated results with opaque cursors.

Merchant history (JWT)

Returns settlements for all API keys under your account. Query parameters: limit (1-100, default 50), cursor (opaque, from previous response), direction (before or after). Response (200):
The 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)

Returns settlements where the authenticated wallet was the payer. You can also use a session token as a Bearer token instead of SIWE headers.

Admin history

Requires admin auth. Supports all filters as query parameters.

Opt-out

Tenants can disable settlement logging per API key:
Or for agents via SIWE:
Set 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)

Query parameters: 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_date is inclusive, period.end_date is 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 are null when there are no settlements in the prior period.
  • unique_payers counts distinct known payer addresses. The same wallet on different networks counts once.
  • timeseries contains only days with activity. Zero-fill missing dates client-side using start_date (inclusive) to end_date (exclusive).

Admin analytics

Requires admin auth. Same response format as merchant analytics. Supports optional owner_id and tenant_id query parameters to scope results; omit both for platform-wide analytics.

Error responses

All error responses return JSON with an error field:

Rate limit headers

Metered responses include remaining quota in headers:
Starter and Growth plans: the remaining count includes both free quota and purchased credits. When quota is exhausted, 429 responses include:
or: