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.
Public reads, with optional SDK authentication
These read consoles currently send requests without an X-API-Key header. For an integration you intend to maintain, follow the published SDK's API-key guidance: the SDK accepts a key, and its documentation recommends obtaining one because anonymous access is planned to change.
GraveMint has a different access model. Read keys and origins before integrating its mint flows.
Prefer the SDK — it gives you typed responses, retries and pagination helpers:
npm install @solanadeads/gravemarketimport { GraveyardClient } from '@solanadeads/gravemarket';
const gmk = new GraveyardClient();Identifiers
A collection is addressable three ways, and every console below accepts any of them:
| form | example |
|---|---|
| slug | solana-deads |
| on-chain address | 7ZYBDpPou8EehaYz6nUPExy5DU1bL3E64P5AKtikwZnh |
| internal id | b2a30c10-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
/collectionsPaginated browse. Returns a cursor — see Pagination below.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections?limit=3
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const result = await market.collections.list({
limit: 3,
});
console.log(result);/collections/metaThe 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
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const meta = await market.collections.meta();
console.log(meta);One collection
/collections/{id}Full detail: stats, floor, verification, chain and standard.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const result = await market.collections.get("solana-deads");
console.log(result);/collections/{id}/statsHeadline 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
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const stats = await market.collections.stats("solana-deads");
console.log(stats);Items and listings
/collections/{id}/itemsItems in the collection, with listing state.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/items?limit=3
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const items = await market.collections.items("solana-deads", {
limit: 3,
});
console.log(items);/collections/{id}/offersStanding offers against the collection.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/offers?limit=3
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const offers = await market.collections.offers("solana-deads", {
limit: 3,
});
console.log(offers);Activity
/collections/{id}/activitySales 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
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const activity = await market.collections.activity("solana-deads", {
limit: 3,
});
console.log(activity);/activityGlobal activity across the marketplace.
Sent
GET https://api.solanadeads.com/gravemarket/v1/activity?limit=3
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const result = await market.activity.list({
limit: 3,
});
console.log(result);Traits and holders
/collections/{id}/traitsEvery trait and value, with counts — what you build a rarity filter from.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/traits
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const traits = await market.collections.traits("solana-deads");
console.log(traits);/collections/{id}/holdersHolder distribution, with unique_holders.
Sent
GET https://api.solanadeads.com/gravemarket/v1/collections/solana-deads/holders?limit=3
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const holders = await market.collections.holders("solana-deads", {
limit: 3,
});
console.log(holders);Search
/searchSearches 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
Received
import { GravemarketClient } from "@solanadeads/gravemarket";
const market = new GravemarketClient();
const result = await market.search.query({
q: "deads",
limit: 3,
});
console.log(result);Pagination
List endpoints are cursor-paginated and return cursor and hasMore:
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.
For a complete export, follow the cursor until there are no more pages. Use the statistics endpoints for headline totals; the number of records loaded into a UI is not the collection total.
Differences from GraveMint v1
| GraveMint v1 | GraveMarket v1 | |
|---|---|---|
| credential | gm_pub_ / gm_live_, invite-only | none |
| origin binding | required | n/a |
| collection scope | key is confined to its drops | n/a — public data |
| writes | prepare / execute a mint | read-only |
| pagination | limit + offset | cursor |
Related
- GraveMarket SDK — the typed client, generated from the published package
- GraveMint v1 API — minting on your own site
