Skip to main content
Use the running API’s discovery documents when building a request. This keeps new routes, changed inputs and prices in one place.

Inspect an HTTP request

These reads are free. They need curl and jq, but no wallet:
Check the method, required query or body fields, enum values, amount units and any additional authorization. For example, an Otto X withdrawal needs a position ratio or an amount; a price listing alone does not describe that execution contract.

LP pool APR

This unpaid request asks for the exact SPY/MU v4 pool on Robinhood Chain. It returns the payment challenge for a 0.001 USDC Base payment. Keep the same JSON body when repeating it with your payment authorization:
The chain, protocol, pool, ordered token addresses and hook must match the provider response. A v3 pool uses its 20-byte pool address and a zero hook; a v4 pool uses its 32-byte PoolId. Exact identity validation does not establish pool safety or investment suitability. Read feeAprPct, incentiveAprPct and totalAprPct with status, retrievedAt, validUntil, source and components. Valid cached numbers remain current for an hour. Failed refreshes keep last-good numbers with their original age and a stale label. Zero incentives means the provider explicitly reported none; null means that component has no available observation. For position context, inspect the POST /lp-intelligence schema and supply a position containing chainId, positionManager and tokenId. It costs 0.02 USDC on Base. Pool APR appears in advice.details.yield; current position reads, conditional models and recorded history retain their separate evidence. The HTTP guide explains how to interpret the rates.

Inspect the payment and declared output

An unpaid request to a paid route returns a 402 challenge. Decode its PAYMENT-REQUIRED header:
accepts supplies the price, network, token and recipient for that call. Where advertised, extensions.bazaar supplies the declared output schema and example. An example explains a shape; its prices, scores and dates are not current market observations. A successful paid call returns the actual result. A 402 does not prove your input is valid: some routes evaluate payment before parameter validation. Read the request schema first. Missing fields, null, zero and a measured value can have different meanings; preserve the response’s coverage and caveats. The HTTP guide explains freshness metadata. For a paid request, follow HTTP API or X Layer API. Compare the returned body with the requested service and retain its payment receipt.