



API Reference
Documentation
One API for TCGPlayer and eBay prices. Query raw + graded tiers and history data from one schema built for apps, dashboards, alerts, and AI workflows.
Cards
Search cards with prices from TCGPlayer and eBay. Filter by set, rarity, condition, and more.
GET /v1/cardsSets
Browse all Pokemon card sets with card counts and metadata.
GET /v1/setsSealed
Sealed product pricing for booster boxes, ETBs, bundles, and more.
GET /v1/sealedPrices
Historical price data with daily averages, highs, lows, and sale counts.
GET /v1/cards/:id/prices/historyListings
Recent eBay sold listings with grading data and sale prices.
GET /v1/cards/:id/listingsQuick Start
Get up and running with the API in under 5 minutes. Access real-time pricing data for over 54,000 Pokemon cards including PSA, BGS, and CGC graded values.
Get API Key
Sign up and create a key in the dashboard.
Add Header
Include your API key in requests.
Query Data
Access cards, sets, and pricing.
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/cards?name=charizard&per_page=5Authentication
All API requests require your API key in the X-API-Key header. Get your free API key at the dashboard.
X-API-Key: YOUR_API_KEYLLM Integration
Drop this into your LLM's system prompt so it knows how to query card prices, filter by set or condition, and parse responses correctly.
LLM_INTEGRATION_PROMPTCards
/v1/cards1 credit per item returnedSearch and filter Pokemon cards across all sets and languages. Supports full-text name search, price range filtering, and sorting. Free tier cannot access Japanese cards.
Parameters
namestringFilter by card name (partial match supported).numberstringFilter by card number within the set.total_set_numberstringFilter by total set number (e.g. "102" for Base Set).set_idstringFilter by set ID.tcg_player_idintegerFilter by TCGPlayer product ID.languagestringCard language (e.g. "English", "Japanese"). Free tier: English only.raritystringCard rarity (e.g. "Rare Holo", "Common").conditionstringCard condition (e.g. "Near Mint", "Lightly Played", "Moderately Played").variantstringCard variant (e.g. "Normal", "Reverse Holo", "1st Edition").gradestringPSA/BGS/CGC grade value.min_pricenumberMinimum market price filter (USD).max_pricenumberMaximum market price filter (USD).sortstringSort order. One of "price_asc", "price_desc", "name_asc", "name_desc".pagenumberPage number for pagination. Default: 1per_pagenumberResults per page. Maximum 100. Default: 50Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/cards{
"data": [
{
"id": 4521,
"tcg_player_id": 89356,
"name": "Charizard",
"image_url": "https://images.pkmnprices.com/cards/4521.jpg",
"number": "4",
"total_set_number": "102",
"rarity": "Rare Holo",
"artist": "Mitsuhiro Arita",
"hp": 120,
"set": {
"id": 1,
"name": "Base Set"
},
"prices": [
{
"source": "tcgplayer",
"condition": "Near Mint",
"variant": "Holofoil",
"market_price": 285,
"created_at": "2026-04-15T00:00:00Z"
}
]
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 1,
"total_pages": 1
}
}/v1/cards/:id1 creditRetrieve a single Pokemon card by its unique ID, including all price data.
Parameters
idintegerrequiredThe unique card ID.Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/cards/{id}{
"id": 4521,
"tcg_player_id": 89356,
"name": "Charizard",
"image_url": "https://images.pkmnprices.com/cards/4521.jpg",
"number": "4",
"total_set_number": "102",
"rarity": "Rare Holo",
"artist": "Mitsuhiro Arita",
"hp": 120,
"set": {
"id": 1,
"name": "Base Set"
},
"prices": [
{
"source": "tcgplayer",
"condition": "Near Mint",
"variant": "Holofoil",
"market_price": 285,
"created_at": "2026-04-15T00:00:00Z"
}
]
}Sets
/v1/sets1 credit per item returnedRetrieve a paginated list of all Pokemon card sets. Supports name search and language filtering.
Parameters
namestringFilter by set name (partial match supported).languagestringFilter by language (e.g. "English", "Japanese").pagenumberPage number for pagination. Default: 1per_pagenumberResults per page. Maximum 100. Default: 50Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/sets{
"data": [
{
"id": 1,
"tcg_player_id": 2477,
"name": "Base Set",
"language": "English",
"card_count": 102
},
{
"id": 284,
"tcg_player_id": 23456,
"name": "Crown Zenith",
"language": "English",
"card_count": 230
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 650,
"total_pages": 13
}
}Sealed Products
/v1/sealed1 credit per item returnedSearch and filter sealed Pokemon products such as booster boxes, ETBs, and tins. Pro and Business tiers only.
Parameters
namestringFilter by product name (partial match supported).set_idstringFilter by set ID.languagestringProduct language (e.g. "en", "jp").min_pricenumberMinimum market price filter (USD).max_pricenumberMaximum market price filter (USD).sortstringSort order. One of "price_asc", "price_desc", "name_asc", "name_desc".pagenumberPage number for pagination. Default: 1per_pagenumberResults per page. Maximum 100. Default: 50Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/sealed{
"data": [
{
"id": 5678,
"tcg_player_id": 45123,
"name": "Crown Zenith Booster Box",
"image_url": "https://images.pkmnprices.com/sealed/5678.jpg",
"set": {
"id": 284,
"name": "Crown Zenith"
},
"prices": [
{
"source": "tcgplayer",
"condition": null,
"variant": null,
"market_price": 189.99,
"created_at": "2026-04-15T00:00:00Z"
}
]
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 412,
"total_pages": 9
}
}/v1/sealed/:id1 creditRetrieve a single sealed Pokemon product by its unique ID. Pro and Business tiers only.
Parameters
idintegerrequiredThe unique sealed product ID.Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/sealed/{id}{
"id": 5678,
"tcg_player_id": 45123,
"name": "Crown Zenith Booster Box",
"image_url": "https://images.pkmnprices.com/sealed/5678.jpg",
"set": {
"id": 284,
"name": "Crown Zenith"
},
"prices": [
{
"source": "tcgplayer",
"condition": null,
"variant": null,
"market_price": 189.99,
"created_at": "2026-04-15T00:00:00Z"
}
]
}Price History
/v1/cards/:id/prices/history1 credit per item returnedRetrieve historical pricing data for a card over a specified time period. Useful for charting price trends.
Parameters
idstringrequiredThe unique card ID.periodstringTime period for history. One of "7d", "30d", "90d", "365d". Default: 90dlimitnumberMaximum number of data points to return. Default: 365Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/cards/{id}/prices/history{
"data": [
{
"date": "2026-04-08",
"avg": 8100,
"low": 7800,
"high": 8450,
"sale_count": 3,
"source": "ebay",
"condition": "Near Mint",
"variant": "1st Edition"
},
{
"date": "2026-04-09",
"avg": 8200,
"low": 7950,
"high": 8500,
"sale_count": 5,
"source": "ebay",
"condition": "Near Mint",
"variant": "1st Edition"
},
{
"date": "2026-04-15",
"avg": 8250,
"low": 8100,
"high": 8400,
"sale_count": 4,
"source": "ebay",
"condition": "Near Mint",
"variant": "1st Edition"
}
],
"pagination": {
"page": 1,
"per_page": 365,
"total": 90,
"total_pages": 1
}
}eBay Listings
/v1/cards/:id/listings1 credit per item returnedRetrieve recent eBay sold listings for a specific card. Supports cursor-based pagination for large result sets.
Parameters
idstringrequiredThe unique card ID.graderstringGrading company filter (e.g. "PSA", "BGS", "CGC").gradestringGrade value filter (e.g. "10", "9.5", "9").sortstringSort order. One of "date_desc", "date_asc", "price_desc", "price_asc". Default: date_desclimitnumberNumber of listings to return per page. Default: 20cursorstringPagination cursor returned from a previous response.Try It
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.pkmnprices.com/v1/cards/{id}/listings{
"data": [
{
"title": "Pokemon 1999 Base Set 1st Edition Charizard PSA 10 GEM MINT",
"price": 12000,
"grader": "PSA",
"grade": "10",
"sold_at": "2026-04-14T18:32:00Z",
"url": "https://www.ebay.com/itm/123456789012"
},
{
"title": "Pokemon Base Set 1st Edition Charizard PSA 9 MINT",
"price": 4750,
"grader": "PSA",
"grade": "9",
"sold_at": "2026-04-13T10:15:00Z",
"url": "https://www.ebay.com/itm/123456789013"
}
],
"next_cursor": "eyJwYWdlIjoyfQ=="
}Errors
The API uses standard HTTP status codes. All error responses include a JSON body with error.code and error.message fields.
| Status | Code | Description |
|---|---|---|
400 | bad_request | Invalid request parameters |
401 | unauthorized | Missing or invalid API key |
403 | forbidden | API key lacks permission for this resource |
404 | not_found | Resource not found |
429 | rate_limited | Too many requests — slow down |
500 | internal_error | Something went wrong on our end |
{
"error": {
"code": "unauthorized",
"message": "Missing or invalid API key. Pass a valid key in the X-API-Key header."
}
}Rate Limiting
Credits are charged based on the number of items returned in each response. Single-item lookups cost 1 credit. List endpoints cost 1 credit per item in the response. Credits reset daily at midnight UTC. Rate limits are per account, not per API key.
| Plan | Daily Credits | Rate Limit | API Keys |
|---|---|---|---|
| Free | 100 | 60 req/min | 1 |
| Pro | 20,000 | 60 req/min | 5 |
| Business | 200,000 | 200 req/min | Unlimited |
When rate limited, you'll receive a 429 status code. Wait and retry with exponential backoff.