Skip to content

The SilphCo API is four collections now

Same data on every tier. Free is 1,000 requests a day. Pro is 5,000.

Last updated:

What changed

The public API is four collection resources. You pass one or more tcg_card_id values and get a job back: history, today's mark, the sale tape, or live asks.

  • GET /prices — historical series. source=silph is the FMV ledger (thin slots may be empty). source=observed is grader-true sale days (sample_count may be 1). tcgplayer is the variant × condition tape from about 2024 on. source=all is silph+tcgplayer only. Keyed POST /prices with JSON {ids} is the same job (cap 1000). Sources stay in separate objects. There is no PriceCharting source.
  • GET /oracle (alias /quote) — the SilphCo Price (the oracle) for one locked grade/finish/edition grain: read rows[].price.value_usd. price.method (default median_3) and price.outliers pick the estimator, and there is no fallback across grade, finish, language, or edition: a row with price.status: none has a null value_usd. That median is the one price we publish; there is no liquidity midpoint. The old /oracle_fmv route is retired (410).
  • GET /sales — verified sales. agg=day rolls the tape up by day.
  • GET /listings — live asks.

Those handlers read sorted parquet sidecars. They do not open Iceberg on your request. If a sidecar is missing you get HTTP 503, not a slow table scan.

Tiers

Every key sees the same collections and the same history. Free is 1,000 requests per UTC day. Pro is 5,000. Elite is 10,000. Keyless calls may send 50 ids. A Bearer key may send 250 on GET (1000 on POST /prices). Each unique id costs one daily unit.

Get started

Create a key at the dashboard. Default example is TCGPlayer productId 42382 (Base Set Charizard).

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/oracle?q=42382&grade=PSA:10"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/price?tcg_card_id=base1-4&grade_key=PSA:10"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/prices?ids=42382&source=silph"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/prices?ids=42382&source=observed&pick=all"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids":["42382"]}' \
  "https://silphcoanalytics.xyz/api/v3/prices?source=observed&pick=all"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/sales?ids=42382&agg=day"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://silphcoanalytics.xyz/api/v3/listings?ids=42382"

Editor's note: the /oracle route above is deprecated — /price is the current price route.

Longer notes live in Getting started.