Card Price Oracle API: The Only 13-API Aggregator for TCG Prices
Access real-time TCG pricing from 13 data sources through a single REST API. Card Price Oracle's public API provides search, card details, sold comps, trending data, and set browsing across 8 card games.
Card Price Oracle API: The Only 13-API Aggregator for TCG Prices
Building a TCG app, bot, or tool? Card Price Oracle's public REST API gives you access to real-time pricing from 13 data sources across 8 card games through a single endpoint. No need to manage multiple API keys, handle rate limits across providers, or normalize different data formats.
Why Use Card Price Oracle's API?
The Problem
Building a TCG pricing tool from scratch requires integrating with:
- Scryfall API (MTG)
- TCGdex API (Pokemon)
- YGOProDeck API (Yu-Gi-Oh!)
- Lorcast API (Lorcana)
- FaB API (Flesh and Blood)
- eBay Browse API (sold comps)
- TCGPlayer API (marketplace)
- Cardmarket API (EU pricing)
- And more...
Each API has different authentication, rate limits, data formats, and reliability characteristics. Maintaining all of these is a full-time job.
The Solution
Card Price Oracle's API aggregates all 13 sources behind a single REST interface:
GET https://cardpriceoracle.com/api/v1/search?q=charizard&game=pokemon
GET https://cardpriceoracle.com/api/v1/search?q=charizard&game=pokemon
One request. All sources. Normalized data. Real-time pricing.
API Endpoints
Search Cards
GET /api/v1/search?q={query}&game={game}&limit={limit}
GET /api/v1/search?q={query}&game={game}&limit={limit}
Search across all 8 supported games with optional game filter. Returns card data with pricing from all available sources.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Card name or search query |
| game | string | No | Filter by game: pokemon, mtg, yugioh, lorcana, fab, onepiece, dbs, sports |
| limit | number | No | Max results (default: 25, max: 100) |
Get Card Details
GET /api/v1/card/{game}/{cardId}
GET /api/v1/card/{game}/{cardId}
Get full details for a specific card including all pricing sources, set information, and purchase links.
Sold Comps
GET /api/v1/comps/{game}/{cardId}?days={days}
GET /api/v1/comps/{game}/{cardId}?days={days}
Get eBay sold comps with statistical analysis — clustering, outlier removal, and four-price model (low, median, mean, high).
Trending Cards
GET /api/v1/trending?game={game}&timeframe={timeframe}
GET /api/v1/trending?game={game}&timeframe={timeframe}
Get currently trending cards based on search volume and price movement.
Browse Sets
GET /api/v1/sets?game={game}
GET /api/v1/sets?game={game}
List all sets for a game with metadata (release date, total cards, set code).
Supported Games
| Game | Pricing Sources | Data Quality |
|---|---|---|
| Pokemon | TCGdex, TCGPlayer, Cardmarket, eBay | Full pricing |
| Magic: The Gathering | Scryfall, TCGPlayer, Cardmarket, eBay | Full pricing |
| Yu-Gi-Oh! | YGOProDeck, TCGPlayer, eBay | Full pricing |
| Disney Lorcana | Lorcast, TCGPlayer, eBay | Full pricing |
| Flesh and Blood | FaB API, TCGPlayer, eBay | Full pricing |
| One Piece | TCGPlayer, eBay, Cardmarket | Marketplace links |
| Dragon Ball Super | TCGPlayer, eBay | Marketplace links |
| Sports Cards | eBay, COMC, PSA, Beckett | Sold comps + links |
Rate Limits & Pricing
| Tier | Requests/Hour | Price |
|---|---|---|
| Free | 100 | $0 |
| Pro | 1,000 | Included with Pro subscription |
API keys are generated in your account settings [blocked]. Free tier includes 100 requests per hour — enough for personal projects and small bots.
Example: Discord Bot Integration
// Simple Discord bot that looks up card prices
const response = await fetch(
'https://cardpriceoracle.com/api/v1/search?q=black+lotus&game=mtg',
{ headers: { 'X-API-Key': 'your-api-key' } }
);
const data = await response.json();
const card = data.results[0];
message.reply(
\`**\${card.name}** (\${card.set})\n\` +
\`TCGPlayer: $\${card.prices.tcgplayer}\n\` +
\`eBay Median: $\${card.prices.ebay_median}\n\` +
\`Cardmarket: €\${card.prices.cardmarket}\`
);
// Simple Discord bot that looks up card prices
const response = await fetch(
'https://cardpriceoracle.com/api/v1/search?q=black+lotus&game=mtg',
{ headers: { 'X-API-Key': 'your-api-key' } }
);
const data = await response.json();
const card = data.results[0];
message.reply(
\`**\${card.name}** (\${card.set})\n\` +
\`TCGPlayer: $\${card.prices.tcgplayer}\n\` +
\`eBay Median: $\${card.prices.ebay_median}\n\` +
\`Cardmarket: €\${card.prices.cardmarket}\`
);
Embed Widget
Don't want to build a full integration? Use our embed widget — a drop-in JavaScript snippet that adds a card price search box to any website:
<iframe src="https://cardpriceoracle.com/embed?theme=dark"
width="400" height="500" frameborder="0"></iframe>
<iframe src="https://cardpriceoracle.com/embed?theme=dark"
width="400" height="500" frameborder="0"></iframe>
The widget handles all the UI and API calls. Just paste the code and you have a card price lookup on your site. Get your embed code at /embed/code [blocked].
Get Started
- Create an account [blocked] (free)
- Generate an API key in your account settings
- Start making requests — 100/hour free, upgrade for more
The API returns JSON with consistent formatting across all games. No need to normalize data from different sources — we've already done that.
View full API documentation → [blocked] | Get your API key → [blocked]
Want to check the current price of any card mentioned in this article?
Search Card Prices