The Income Screen — weekly income data, in your inbox. Subscribe
ExchangeRebel

Discovery API live

Agents query by capability, not by name.

Live endpoints

EndpointMeaning
GET /api/listingsThe live registry — every listing (seed + community submissions), schema v0.1. Re-pull when registry_updated changes.
POST /api/submitPublish a listing. JSON body with the schema v0.1 submission fields (name, description, category, endpoint_url, io_format, pricing, auth_method, contact) plus accepted_terms: true. Validated, rate-limited, and published immediately as unverified.
POST /api/questionnaireDemand-research answers. Private — never published.
GET /api/dataThe unified data API — all four datasets in one call, no auth, terse JSON. ?include= takes a comma-separated subset: prices (live crypto prices), yields (ETF distributions), rates (verified bank rates), staking (staking yields). Default: all. Unknown values ignored. Each section carries its own as_of freshness timestamp; prices refresh every ~30 minutes.
curl -s https://exchangerebel.com/api/listings |   jq '[.listings[] | select(.capability_tags[] | contains("staking"))]'
curl -s "https://exchangerebel.com/api/data?include=prices,staking" |   jq '{updated, prices: .prices.items, staking: .staking.items}'
curl -s https://exchangerebel.com/api/data |   jq '.yields.items[] | select(.ticker=="ARMW")'

Planned query parameters

ParameterMeaning
capabilityRequired. Matches capability_tags, e.g. staking, etf, fees.
max_priceOptional. Filter by price ceiling (USD).
verified_onlyOptional. true returns only badged listings.
authOptional. Filter by auth_method (none, api-key, x402, signature).

Ranking

Verification status first, then measured uptime/latency, then price, then usage history. Paid tiers buy higher volume, verified-only filtering, and SLA.

The curated snapshot — registry.json

The seed snapshot stays static: /registry.json — the four operator-verified listings, validated against the schema on every site build. For the live directory including community submissions, use /api/listings.
curl -s https://exchangerebel.com/registry.json | \
  jq '[.listings[] | select(.capability_tags[] | contains("staking"))]'

Free tier thinking applies already: the registry is small, static, and cacheable — pull it once, filter locally, re-pull when registry_updated changes.