Skip to content

API Getting Started

Live Pokémon TCG market data — try the playground free, then unlock the full API

Last updated:

Try it nowLink copied!

No signup required. Paste either command in your terminal:

Trending leaderboard

curl "https://silphcoanalytics.xyz/api/v3/trending?limit=5"

Card sales (playground)

Example: Pikachu ex SIR from Ascended Heroes — same URL as on each card page. 1 req/s, up to 50 rows, no API key.

curl "https://silphcoanalytics.xyz/api/v3/cards/me2pt5-276/sales?limit=50"

Playground responses include X-LOR-Tier: playground. Want more? Sign in for a free API key (100 requests/day).

RecipesLink copied!

Three common starting points. Replace YOUR_API_KEY with a key from the dashboard.

1. Deal finder

Search listings and compare against Live Mark Pricing.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/search?q=charizard&limit=5"

2. Price history chart

One card with graded price history — great for bots and dashboards.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/cards/me2pt5-276/chart-series"

3. Market pulse

30-day volume across sets and marketplaces.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/market/volume?days=30&language=en"

4. Multi-card batch (Pro / Elite only)

Load up to 50 cards (Pro) or 100 (Elite) in one request for portfolios and bots. Free keys get HTTP 403. Each unique id costs one daily quota unit.

curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids":["base1-4","sv3-197","swsh12pt5-159"],"game":"pokemon","profile":"core"}' \
  "https://silphcoanalytics.xyz/api/v3/cards/batch"

Quick startLink copied!

  1. Create an account and generate an API key at the dashboard.
  2. Send the key as a Bearer token on every request.
  3. Browse the interactive reference for parameters and response shapes.
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/cards?limit=1"

AuthenticationLink copied!

Most /api/v3 data routes require Authorization: Bearer YOUR_API_KEY. Requests without a valid key return HTTP 401.

Playground plus Free / Pro / Elite apply at https://silphcoanalytics.xyz:

TierAuthLimits
PlaygroundNo API key1 req/s, 50-row cap · 3 days of history
FreeBearer API key100 requests/day · 3 days of history
ProBearer API key2,000 requests/day · 7 days of history
EliteBearer API key10,000 requests/day · Card Signals API · Full unrestricted history

History windows are enforced: the public edge clamps since / date_from to your tier (see X-Silph-History-Days response headers).

Playground routes work without a key on the same URLs:

  • /api/v3/cards/{id}
  • /api/v3/cards/{id}/sales
  • /api/v3/cards/{id}/tcgplayer-history
  • /api/v3/trending

Add a Bearer token on any route to use your account tier. Per-card sales return up to 200 rows per request and include next_cursor for paging within your history window. Responses include X-LOR-Tier (playground vs authenticated).

Check daily usage with GET /keys/usage using the same Bearer token (includes history_days).

Beta: GET /api/v3/shop/listings is available but not suitable for production integrations. Deal scores and platform freshness are experimental — verify listings before acting on them.

EndpointsLink copied!

Base URL: https://silphcoanalytics.xyz/api/v3

Cards

MethodPathDescription
GET/api/v3/cardsList and filter cards
GET/api/v3/cards/{id}Card detail
GET/api/v3/cards/{id}/analyticsCard analytics
GET/api/v3/cards/{id}/chart-seriesProduct chart series (realized sales ribbon)
GET/api/v3/cards/{id}/price-historyOracle price history (method=fmv|tvwap|median)
GET/api/v3/cards/{id}/salesVerified sales across marketplaces for one card
GET/api/v3/cards/{id}/tcgplayer-historyTCGplayer daily price and sales history
POST/api/v3/cards/batchBatch card-gold core lookup (Pro+/Elite paid only; cost = unique ids; pro max 50, elite max 100)

Market

MethodPathDescription
GET/api/v3/market/volumeMarket-wide volume by set
GET/api/v3/shop/listingsShop listings across marketplaces (beta)

Meta

MethodPathDescription
POST/api/v3/me/imports/confirm/api/v3/me/imports/confirm
POST/api/v3/me/imports/preview/api/v3/me/imports/preview

Search

MethodPathDescription
GET/api/v3/lookupResolve a card or set identifier
GET/api/v3/searchFull-text card search
GET/api/v3/trendingTrending cards leaderboard

Sets

MethodPathDescription
GET/api/v3/setsList sets
GET/api/v3/sets/{id}Set detail
GET/api/v3/sets/{id}/breakdownSet sales breakdown
GET/api/v3/sets/{id}/trending-cardsTrending cards in a set
GET/api/v3/sets/{id}/volume-historySet volume over time

SQL

MethodPathDescription
POST/api/v3/sqlRead-only SQL against gold datasets

Unavailable routesLink copied!

These routes appear in contract metadata or older docs but are not callable on the public API. Use the replacement where listed.

RouteStatusUse instead
DELETE /api/v3/me/alerts/{id}Not available
GET /api/v3/cards/{id}/bundleNot availableInternal BFF route for the mobile/web card page — use GET /api/v3/cards/{id}, /chart-series, /sales, and /tcgplayer-history individually.
GET /api/v3/listsNot available
GET /api/v3/lists/{id}Not available
GET /api/v3/marketplacesNot availableNot exposed on the public API.
GET /api/v3/me/alertsNot available
GET /api/v3/me/alerts/digestNot available
GET /api/v3/me/portfolio/historyNot available
GET /api/v3/me/portfolio/mark-previewNot available
GET /api/v3/me/portfolio/valuationNot available
GET /api/v3/me/watchlist/moversNot available
GET /api/v3/salesNot available`GET /api/v3/cards/{id}/sales`.
PATCH /api/v3/lists/{id}Not available
PATCH /api/v3/lists/{id}/items/{item_id}Not available
PATCH /api/v3/me/alerts/{id}Not available
POST /api/v3/cards/analytics/batchNot available`GET /api/v3/cards/{id}/analytics per card`.
POST /api/v3/events/shareNot availableNot exposed on the public API.
POST /api/v3/feedbackNot availableNot exposed on the public API
POST /api/v3/listsNot available
POST /api/v3/lists/{id}/itemsNot available
POST /api/v3/me/alertsNot available

Response envelopeLink copied!

Every v3 response uses silphco-envelope.v1. The payload lives in data; the contract field names its schema version.

PaginationLink copied!

Lists accept offset and limit (max 200). Per-card sales use an opaque next_cursor to page through history (API key required; playground returns at most 50 rows and next_cursor: null).

ErrorsLink copied!

Errors return contract: "error.v1" with error.code and error.message. HTTP 401 indicates a missing or invalid key. For removed routes, 404 with error.code: "removed" includes error.details.replacement pointing at the supported path.

Finding cardsLink copied!

You do not need a Pokémon TCG card ID to start. Use the same filters as Explore on GET /api/v3/search (with q) or GET /api/v3/cards (browse without q). Resolve fuzzy names with GET /api/v3/lookup, then call GET /api/v3/cards/{id} or /sales once you have an ID.

Shared filters include language, grader, rarity, variant, min_price / max_price, sort, window, slab_only, and raw_only.

Card IdentityLink copied!

Cards are uniquely identified by a combination of set code and print number:

TypeFormatExamples
English Cards{set_id}-{number}base1-4, sv3-197
Japanese (TCGdex){jp_set_code}-{number}s12a-239, sv4pt5-232
Japanese (TCGCSV)jp-{slug}-{number}jp-pokemon-card-151-001

Print Variants & FinishesLink copied!

Cards with the same ID can exist in different variant runs or finishes. These are treated as separate asset nodes for pricing and uniqueness:

Variant SlugDisplay LabelDescription
normalNormalStandard non-holographic printing finish.
holofoilHolofoilStandard holographic artwork finish.
reverse_holofoilReverse HolofoilHolographic finish applied to the body/frame of the card.
1st_edition1st EditionEarly first-edition print run.
1st_edition_holofoil1st Edition HolofoilEarly first-edition holographic print run.
unlimitedUnlimitedStandard post-first-edition print run.
unlimited_holofoilUnlimited HolofoilStandard post-first-edition holographic print run.
cardmarketCardmarketCardmarket finish/printing variations.

ExamplesLink copied!

# Search
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/search?q=charizard&limit=5"

# Card chart series
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/cards/me2pt5-276/chart-series"

# Market volume (30 days)
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/market/volume?days=30&language=en"

# Trending (no API key)
curl "https://silphcoanalytics.xyz/api/v3/trending?limit=5"

# Shop listings (beta — experimental deal scores)
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/shop/listings?limit=5"

# SQL (body field is sql, not query)
curl -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sql":"SELECT tcg_card_id FROM pkmn_card_rollup LIMIT 1"}' \
  "https://silphcoanalytics.xyz/api/v3/sql"

ReferenceLink copied!