Skip to content

GraveMarket v1 API

Base URL — https://api.solanadeads.com/gravemarket/v1

The marketplace read API. Browse collections, read an item, follow sales activity, pull traits and holders.

No key, no origin registration

Unlike GraveMint v1, this API is public. There is no credential to obtain, nothing to scope, and nothing to register — so the consoles below send no X-API-Key header at all.

That difference is structural rather than a policy choice. GraveMint mints, so it needs a credential bound to an origin, a collection and a chain. GraveMarket reads public marketplace state that anyone can already see on the site.

Prefer the SDK — it gives you typed responses, retries and pagination helpers:

bash
npm install @solanadeads/gravemarket
ts
import { GraveyardClient } from '@solanadeads/gravemarket';
const gmk = new GraveyardClient();

Identifiers

A collection is addressable three ways, and every console below accepts any of them:

formexample
slugsolana-deads
on-chain address7ZYBDpPou8EehaYz6nUPExy5DU1bL3E64P5AKtikwZnh
internal idb2a30c10-0ba7-4ca8-9482-397324dc64bf

Prefer the slug: it is stable, readable, and what the marketplace URLs use.

Try it live

Every console runs against our own collection, solana-deads.

Browse collections

GET/collections

Paginated browse. Returns a cursor — see Pagination below.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections?limit=3'

Received

Nothing yet — press Send.
GET/collections/meta

The chains and categories the marketplace currently indexes — use it to build filters rather than hardcoding a list.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/meta
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/meta'

Received

Nothing yet — press Send.

One collection

GET/collections/{id}

Full detail: stats, floor, verification, chain and standard.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads'

Received

Nothing yet — press Send.
GET/collections/{id}/stats

Headline stats plus a daily series. Includes wash_trade_count_7d — volume figures elsewhere are not filtered for it, so read this before quoting volume.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/stats
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/stats'

Received

Nothing yet — press Send.

Items and listings

GET/collections/{id}/items

Items in the collection, with listing state.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/items?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/items?limit=3'

Received

Nothing yet — press Send.
GET/collections/{id}/offers

Standing offers against the collection.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/offers?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/offers?limit=3'

Received

Nothing yet — press Send.

Activity

GET/collections/{id}/activity

Sales and listings for one collection — the secondary-market context that pairs with a GraveMint drop.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/activity?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/activity?limit=3'

Received

Nothing yet — press Send.
GET/activity

Global activity across the marketplace.

Sent

GET https://api.solanadeads.com/gravemarket/v1/activity?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/activity?limit=3'

Received

Nothing yet — press Send.

Traits and holders

GET/collections/{id}/traits

Every trait and value, with counts — what you build a rarity filter from.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/traits
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/traits'

Received

Nothing yet — press Send.
GET/collections/{id}/holders

Holder distribution, with unique_holders.

Sent

GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/holders?limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/holders?limit=3'

Received

Nothing yet — press Send.
GET/search

Searches collections, items, profiles and traits in one call — the response is split by kind.

Sent

GET https://api.solanadeads.com/gravemarket/v1/search?q=deads&limit=3
as curl
curl -s -X GET \
  'https://api.solanadeads.com/gravemarket/v1/search?q=deads&limit=3'

Received

Nothing yet — press Send.

Pagination

List endpoints are cursor-paginated and return cursor and hasMore:

ts
let cursor;
do {
  const page = await gmk.collections.activity('solana-deads', { limit: 50, cursor });
  handle(page.data);
  cursor = page.cursor;
} while (cursor);

The SDK also exposes listAll / activityAll async generators that drain pages for you.

Do not stop at the first page

A bare limit silently drops everything past it. If you are computing a total, a holder count or a volume figure, drain the cursor — a partial page produces a confidently wrong number.

Differences from GraveMint v1

GraveMint v1GraveMarket v1
credentialgm_pub_ / gm_live_, invite-onlynone
origin bindingrequiredn/a
collection scopekey is confined to its dropsn/a — public data
writesprepare / execute a mintread-only
paginationlimit + offsetcursor

SDK pages are generated from the published npm tarballs and cannot drift.