Overview
Weekly snapshots of all MTG sealed product data. Available as gzipped JSONL or Parquet.
Endpoints
| Method | Path | Description |
|---|
GET | /api/dump | Latest release manifest |
GET | /api/dump/{table} | JSONL stream (gzip) |
GET | /api/dump/{table}?format=parquet | Parquet download |
Tables: products, sets, sales, tcg_snapshots, manapool_snapshots
Usage
# JSONL (auto-decompressed)
curl https://mtgsold.com/api/dump/sales
# Save Parquet
curl -o tcg_snapshots.parquet "https://mtgsold.com/api/dump/tcg_snapshots?format=parquet"
Schema
sets
| Column | Type |
|---|
set_id | int |
name | text |
abbreviation | text |
published_on | date |
products
| Column | Type |
|---|
product_id | int |
set_id | int |
name | text |
image_url | text |
released_on | datetime |
last_scraped_at | datetime |
manapool_url | text |
sales
| Column | Type |
|---|
id | int |
product_id | int |
order_date | datetime |
purchase_price | real |
shipping_price | real |
quantity | int |
condition | text |
variant | text |
language | text |
marketplace | text |
sale_fingerprint | text |
tcg_snapshots
| Column | Type |
|---|
product_id | int |
scrape_date | date |
open_qty | int |
close_qty | int |
open_sellers | int |
close_sellers | int |
low_price | real |
market_price | real |
bins_json | json |
bins_json structure: [{priceMin, priceMax, priceLabel, totalQuantity, sellerCount}]
manapool_snapshots
| Column | Type |
|---|
id | int |
product_id | int |
scraped_at | datetime |
low_price | real |
market_price | real |
available_quantity | int |
Update Schedule
| Table | Frequency |
|---|
sales | Weekly (Mondays EST) |
tcg_snapshots | Daily |
manapool_snapshots | Daily |
sets / products | On new product discovery |
Manifest Response
{
"release_date": "2026-04-24",
"generated_at": "2026-04-24T03:00:00Z",
"tables": {
"sales": {
"jsonl_gz": "releases/2026-04-24/sales.jsonl.gz",
"parquet": "releases/2026-04-24/sales.parquet",
"endpoints": {
"jsonl": "/api/dump/sales",
"parquet": "/api/dump/sales?format=parquet"
}
}
}
}
Errors
| Status | Cause |
|---|
| 400 | Table name not in allowed list |
| 404 | Wrong table name or no release yet |
Responses are cacheable for 1 hour.