Active listings from EXC’s own book and from outside marketplaces, deduplicated
per asset and sorted cheapest first. Where both have the same asset, the EXC row
wins.
The window is bounded
You get a snapshot of roughly the 250 cheapest listings, and the cursor is an
offset into that. Going past the ceiling returns a 400, not an empty page.If you’re trying to walk an entire book of thousands, this endpoint won’t give
you that. It gives you the cheap end.
Staleness
EXC’s own Solana listings come from a mirror that syncs every couple of minutes,
so they can lag the live book by about that much — and that lag isn’t
flagged. meta.stale only fires when a source is unreachable, not when it’s
merely behind.
Sources degrade rather than fail: a dead mirror gives you meta.stale and, on
Solana, an empty book. This endpoint never returns 502.
Errors: 400, 404, 429.
Response
orderId is opaque
It’s a stable join key, but its format varies by source:
- EXC EVM listings carry an order-book document id —
<chain>_<contract>_<tokenId>_<epochMillis>
- Solana and outside rows carry the mirror’s id, and EXC Solana rows are prefixed
exclusivo_
- Sale rows carry the id of the listing they came from, which can be
null
Use it for equality and joins. Don’t parse it.
Which of these can be bought through us
All of them, as it happens — EXC, Magic Eden, Tensor and OpenSea listings are all
fillable in-app. → Aggregated listings
Paginating