Skip to main content
https://exclusivo.one/v1 No auth, GET only, CORS-open — so you can call it straight from a browser with no backend.

Endpoints

Envelopes

Success
pagination on lists. meta only appears when a source degraded.
Error

Three things that will catch you out

A short page isn’t the end. Several endpoints cut the page first and drop unusable rows afterwards, so data.length can be less than limit — even zero — while hasMore is true. Always page on hasMore and nextCursor. Don’t parse collectionId. It looks like <chain>_<contractAddress>, but the address half is lowercased for every chain including Solana. Solana base58 is case-sensitive, so slicing a Solana collectionId gives you an invalid address. Pass the id back to /v1/collections/{id} and read the real contractAddress from there. Chains. All eight are accepted: solana, ethereum, polygon, base, ink, apechain, abstract and robinhood. Anything else is a bad_request.

Prices

Always an object, never a bare number:
Do arithmetic on raw. decimal loses precision on large wei values, and usd can be null on any row.

Address casing

EVM addresses come back lowercase. Solana base58 keeps its case — never lowercase one, it stops being a valid address.

Degrading rather than failing

Most endpoints are built to degrade. Sources are independently timed out, and a failing one gives you null fields or a meta.stale flag with a 200. /v1/collections/{id}, …/floor, …/listings and the token endpoint never return 502. Only /v1/collections and …/sales can. meta.stale means a source was unreachable, not merely behind. EXC’s own Solana listings sync every couple of minutes and can lag by about that without being flagged.

Caching and limits

Responses are CDN-cached with stale-while-revalidate, so don’t add cache-busting parameters. Separate counters. → Rate limits