Developers
Two ways to build with CardPrice data: drop-in widgets (two lines of HTML, zero code) and an open read API (plain JSON, CORS enabled, no key). Prices update nightly from live market data across Pokémon, One Piece and Lorcana. Prefer point-and-click? The widget configurator writes the snippet for you.
Embeddable widgets
Each widget is an iframe served from https://cardprice.com/embed/<type>. The loader script injects it and auto-sizes its height; a plain iframe works too if you'd rather ship no JavaScript at all.
<script src="https://cardprice.com/widget.js" data-widget="movers" data-game="pokemon" data-theme="dark" async></script>
Plain-iframe alternative (set the height yourself):
<iframe src="https://cardprice.com/embed/movers?game=pokemon&theme=dark"
width="100%" height="560" style="border:0;border-radius:14px"
title="CardPrice movers widget" loading="lazy"></iframe>Widget types & parameters
| Type | What it shows | Parameters | Example |
|---|---|---|---|
| card | One card: art, name, set, live price and 7d/30d change. | card | /embed/card?card=pikachu-with-grey-felt-hat-scarlet-and-violet-black-star-promos-85 |
| history | A card’s interactive price chart with its current price. | card, days=90 | /embed/history?card=pikachu-with-grey-felt-hat-scarlet-and-violet-black-star-promos-85&days=90 |
| set-top | The most valuable cards of any set, as a compact table. | set, limit=10 | /embed/set-top?set=surging-sparks |
| movers | Top gainers and losers of the week, per game. | game=pokemon, limit=5 | /embed/movers?game=pokemon |
| top-cards | The most valuable cards in the game right now. | game=pokemon, limit=10 | /embed/top-cards?game=pokemon&limit=10 |
Every widget also accepts theme=dark|light and compact=1. With the loader script, each URL parameter becomes a data- attribute (card=x → data-card="x"). The embed page posts its rendered height to the parent frame via postMessage ({source:'cardprice-widget', id, height}), which is how the loader auto-sizes the iframe — plain-iframe users can listen for the same message or just fix a height. Widgets are served cached (15-minute revalidation) and link back to cardprice.com; please keep the “Powered by CardPrice” credit intact.
Read API (informal)
The JSON endpoints that power this site are open at https://api.cardprice.com — CORS *, no key needed today. They're offered as-is for hobby projects, research and tools: shapes may evolve, so code defensively. Fair use: responses are cached — please cache on your side too, stay well under the per-IP rate limits (600 req/min overall; search and set-list routes 120 req/min), and a visible link back to cardprice.com as your price source is appreciated. If you're building something bigger, get in touch before you scale.
GET /api/card/:idOrSlug
Everything about one card: latest price, printings with 7d/30d change, set info, graded prices, population.
curl "https://api.cardprice.com/api/card/charizard-base-set-4"
{
"card": { "id": "base1-4", "name": "Charizard", "number": "4", ... },
"set": { "id": "base1", "name": "Base Set", ... },
"latestPrice": 429.99,
"variants": [ { "label": "Holofoil", "market": 429.99,
"change7d": 1.8, "change30d": -3.2, ... } ],
"graded": { "psa10": 12500, "grade9": 2100, ... }
}GET /api/search?q=
Full-text card search. Optional &game=onepiece|lorcana (default Pokémon), &offset= for paging.
curl "https://api.cardprice.com/api/search?q=umbreon+vmax"
{
"results": [ { "id": "swsh7-215", "slug": "umbreon-vmax-evolving-skies-215",
"name": "Umbreon VMAX", "set_name": "Evolving Skies",
"number": "215", "price": 612.5, ... } ],
"total": 34
}GET /api/popular?sort=value&limit=12
The most valuable (sort=value) or most graded (sort=population) cards. &game= scopes per game.
curl "https://api.cardprice.com/api/popular?sort=value&limit=5"
{
"asOf": "2026-08-31",
"cards": [ { "id": "base1-4", "name": "Charizard",
"market": 429.99, "change7d": 1.8, ... } ]
}GET /api/movers?days=7&minPrice=25&limit=12
Biggest gainers and losers over the window. &game= scopes per game.
curl "https://api.cardprice.com/api/movers?days=7&limit=5"
{
"asOf": "2026-08-31",
"gainers": [ { "name": "Giratina V (Alt Art)", "card_id": "swsh11-186",
"current": 312.0, "previous": 264.5, "pct": 17.9, ... } ],
"losers": [ ... ]
}GET /api/sets/:idOrSlug/cards
Every card in a set with its current price and 7d change, plus the set’s sealed products.
curl "https://api.cardprice.com/api/sets/surging-sparks/cards"
{
"set": { "id": "sv8", "name": "Surging Sparks", ... },
"cards": [ { "id": "sv8-238", "name": "Pikachu ex", "number": "238",
"price": 187.3, "change7d": -2.1, ... } ],
"sealed": [ ... ]
}Also available: /api/history?cardId=&days= (price series), /api/sets (all sets per game), /api/releases, /api/pokemon/:slug (species hubs) and more — explore the network tab on any CardPrice page. Data is licensed for display with attribution, not for resale or bulk redistribution.