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 now

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/svp-85/sales?limit=50"

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

Recipes

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

1. Deal finder

Search listings and compare against TV-WAP.

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/svp-85/market-history"

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 start

  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"

Authentication

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 · Apps access · 7 days of history
EliteBearer API key10,000 requests/day · Apps access · 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}/market-history
  • /api/v3/cards/{id}/marketplace-sales
  • /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.

Endpoints

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}/market-historyDaily market history
GET/api/v3/cards/{id}/marketplace-sales/api/v3/cards/{id}/marketplace-sales
GET/api/v3/cards/{id}/price-historyPrice history
GET/api/v3/cards/{id}/salesVerified sales across marketplaces for one card
GET/api/v3/cards/{id}/tcgplayer-historyTCGplayer daily price and sales history
GET/api/v3/cards/{id}/vwapVolume-weighted average price
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}/price-distributionSet price distribution
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 routes

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

RouteStatusUse instead
GET /api/v3/analytics/grade-premiumNot availableNot exposed on the public API.
GET /api/v3/analytics/kfactorNot availableNot exposed on the public API.
GET /api/v3/cards/summaryNot available`GET /api/v3/cards/{id}` or `GET /api/v3/cards?limit=N`.
GET /api/v3/cards/timeseriesNot available`GET /api/v3/cards/{id}/market-history`.
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/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
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

Response envelope

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

Pagination

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).

Errors

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 cards

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.

Examples

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

# Card market history
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/cards/svp-85/market-history"

# 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"

Reference