Pokémon card data for AI agents
Connect Claude, ChatGPT, Cursor, or your own code to PokeFocus. Look up Pokémon card and sealed product market prices, recent eBay sales by grade, sets, and the daily Market Pulse, and search active eBay listings with every filter on the listings page. Each answer matches what PokeFocus shows, with links back to it.
- Free and read-only. No account, key, or sign-in.
- An MCP server for assistants and a JSON API for code, with the same data.
- Every result carries its capture time and links to the matching page.
https://pokefocus.com/api/mcpConnect your assistant
Claude (web, desktop, and mobile)
- Open Customize, then Connectors, and choose Add custom connector.
- Name it PokeFocus, paste the server URL, and leave authentication off.
- In a chat, turn the connector on from the + menu and ask about Pokémon card prices, sales, or listings.
https://pokefocus.com/api/mcpClaude Code
- Run this once in a terminal.
claude mcp add --transport http pokefocus https://pokefocus.com/api/mcpChatGPT
- In Settings, open Apps & Connectors and turn on Developer mode under Advanced settings (paid plans).
- Choose Create, name it PokeFocus, paste the server URL, and choose no authentication.
https://pokefocus.com/api/mcpCursor
- Install with one click, or add the server to ~/.cursor/mcp.json.
{
"mcpServers": {
"pokefocus": {
"url": "https://pokefocus.com/api/mcp"
}
}
}VS Code
- Install with one click, or run the command below.
code --add-mcp '{"name":"pokefocus","type":"http","url":"https://pokefocus.com/api/mcp"}'Other MCP clients
- Connect over Streamable HTTP with no authentication. The server is stateless and answers JSON-RPC with JSON responses.
https://pokefocus.com/api/mcpTry asking
- “What has a PSA 10 Charizard ex 199/165 sold for recently?”
- “Find well-centered raw Umbreon VMAX listings under $500.”
- “What are the most valuable cards in Surging Sparks, and what does a booster box cost?”
- “Summarize today’s Pokémon card Market Pulse.”
- “Are there raw cards listed under market on eBay right now?”
MCP tools
search_listings
Active eBay listings for Pokémon cards with every pokefocus.com/listings filter: card search, cards or set, grade, era, rarity, centering, price, free shipping, listing checks (tags), seller feedback, seller location, and under-market auctions. Each listing has price, shipping, grade or seller condition, the TCGplayer market comparison, a "deal" label where PokeFocus confirmed the exact card and the Buy It Now total is under market, the card page, and an affiliate buyUrl. Sort by market_gap_percent for listings furthest under market first. Results match pokefocus.com/listings for the same filters.
- q
- Card name, optionally with the number before the slash.string
- grade
- Raw (ungraded), any graded slab, PSA 9, or PSA 10.raw, graded, psa9, psa10
- listingType
- FixedPriceRecent is Buy It Now.FixedPriceRecent, Auction, All · default FixedPriceRecent
- sort
- newest by default for Buy It Now and ending_soon for auctions. market_gap_percent, market_gap_dollars, best_deal, and fixed_opportunity rank by how far under market a listing is and include only listings with a confirmed market comparison.default, newest, price_asc, price_desc, market_gap_percent, market_gap_dollars, fixed_opportunity, best_deal, ending_soon, title_asc, title_desc, timing_asc, timing_desc, recently_synced
- cards
- Only these cards, by PokeFocus card id (card.id in results or search_cards).array
- setId
- Only cards from this set, by PokeFocus set id (card.setId in results or search_sets).string
- era
- Only sets from one era.mega-evolution, scarlet-violet, sword-shield, sun-moon, xy, black-white, heartgold-soulsilver, diamond-pearl, ex, wizards
- rarities
- Only these card rarities, such as Special Illustration Rare.array
- centered
- Only listings whose front photo measured centeringThreshold or better on every side. Measured from the photo; not a grade.boolean
- centeringThreshold
- Minimum share for every side: 45 means 45/55 or better.40, 45, 47.5, 50 · default 45
- minPrice
- Minimum item price in US dollars.number
- maxPrice
- Maximum item price in US dollars.number
- freeShipping
- Only listings with free shipping.boolean
- tags
- Listing checks: hide_over_market (Avoid listings more than 15% above captured market); hide_quantity_based (Hide quantity listings); hide_no_returns (Hide listings with no returns); only_authenticity_guarantee (Only eBay Authenticity Guarantee); hide_seller_description_caution (Hide seller description cautions); hide_missing_back (Require a back photo); hide_missing_corners (Require corner detection); hide_holder_present (Exclude holder or stand photos); only_near_mint_or_better (Raw: Near Mint or better); only_card_condition_excellent (Raw: Lightly Played (Excellent)); only_card_condition_very_good (Raw: Moderately Played (Very Good)); only_card_condition_poor (Raw: Heavily Played (Poor)). The raw condition checks apply with grade=raw.array
- minSellerFeedbackScore
- Minimum seller feedback score.integer
- minSellerFeedbackPercent
- Minimum positive seller feedback percentage.number
- locationScope
- Seller location.us, outside_us, both · default us
- auctionFilter
- underMarket shows auctions whose next bid is under market by the three settings below; it sets listingType=Auction.all, underMarket · default all
- minDiscountPercent
- Under-market auctions: minimum discount from market, in percent.number · default 15
- minProfit
- Under-market auctions: minimum dollars under market.number · default 8
- maxHoursRemaining
- Under-market auctions: ending within this many hours.number · default 48
- page
- Page of results.integer · default 1
- limit
- Results per page.integer · default 24
search_cards
Finds Pokémon cards the way the pokefocus.com search box does, best match first. Each card has its TCGplayer market price, 30-day raw and PSA 10 eBay sold medians and sale counts, image, card page, and a link to its active listings. Pass a card id to get_card for recent sales, or as `cards` to search_listings.
- q
- Card name, number ("173/165", "GG35"), set name or code, rarity, or a mix, as in the pokefocus.com search box.string · required
- limit
- Results to return.integer · default 10
get_card
One Pokémon card as its pokefocus.com page shows it: TCGplayer market price with 7- and 30-day change, eBay sold medians and sale counts for raw, PSA 9, and PSA 10, active listing count, and the verified recent eBay sales for one grade, newest first, with the median the card page shows.
- card
- The card as a PokeFocus id, the slug from its pokefocus.com URL, or the full pokefocus.com URL.string · required
- grade
- Grade for the recent sales list.raw, psa9, psa10 · default raw
- range
- Window for recent sales. Individual sales are kept for 90 days.7d, 30d, 90d · default 30d
- sales
- How many recent sales to list.integer · default 10
search_sets
Pokémon TCG sets by name or code, or every set newest first. Each set has its code, release date, logo, and its card list and sealed product pages on pokefocus.com. Pass a set id to get_set, or as `setId` to search_listings.
- q
- Set name or code. Leave empty to list sets, newest release first.string
- limit
- Results per page.integer · default 20
- page
- Page of results.integer · default 1
get_set
One Pokémon TCG set as pokefocus.com shows it: its cards with TCGplayer market prices (most valuable first by default) and its sealed products with market price, lowest listing, pack count, and price per pack.
- set
- The set as a PokeFocus id, the slug from its pokefocus.com URL, or the full pokefocus.com URL.string · required
- cardSort
- Most valuable cards first, or set order.price_desc, number · default price_desc
- cardLimit
- How many cards to list.integer · default 25
search_sealed
Pokémon sealed products (booster boxes, elite trainer boxes, bundles, collections) with TCGplayer market price, set, image, and product page. Pass a product id to get_sealed_product for price history and per-pack value.
- q
- Product name, type (booster box, elite trainer box), set name, or set code.string · required
- limit
- Results per page.integer · default 10
- page
- Page of results.integer · default 1
get_sealed_product
One Pokémon sealed product as its pokefocus.com page shows it: TCGplayer market price with 7- and 30-day change, lowest listing and listing count, pack count and price per pack, and 30 days of daily market price.
- product
- The sealed product as a PokeFocus id, the slug from its pokefocus.com URL, or the full pokefocus.com URL.string · required
get_market_pulse
PokeFocus Market Pulse, the daily Pokémon card market report: headline, sentiment, cards up and down, and each section's summary with the cards or sealed products it highlights (price, 7-day change, sales) and its ranked set and sealed tables. Also lists recent reports.
- date
- Report date (YYYY-MM-DD). Leave empty for the latest report.string
Every tool is read-only and returns structured content that matches its output schema, plus the same JSON as text.
REST API
The same data over HTTPS GET, documented in the OpenAPI 3.1 spec. Each route takes its tool’s parameters as query parameters, with the card, set, or product in the path. Responses allow any origin.
- GET /api/v1/listings
- Search active Pokémon card eBay listings, as search_listings returns it.
- GET /api/v1/cards
- Search the Pokémon card catalog, as search_cards returns it.
- GET /api/v1/cards/{card}
- Get a card market price and recent eBay sales, as get_card returns it.
- GET /api/v1/sets
- Search or list Pokémon TCG sets, as search_sets returns it.
- GET /api/v1/sets/{set}
- Get a set with card and sealed product prices, as get_set returns it.
- GET /api/v1/sealed
- Search Pokémon sealed products, as search_sealed returns it.
- GET /api/v1/sealed/{product}
- Get a sealed product market price and history, as get_sealed_product returns it.
- GET /api/v1/market-pulse
- Get the daily Market Pulse report, as get_market_pulse returns it.
curl "https://pokefocus.com/api/v1/listings?q=umbreon%20vmax&grade=raw¢ered=true&limit=5"{
"capturedAt": "2026-10-04T18:06:38.280Z",
"filters": ["Buy It Now", "Raw (ungraded)", "Search \"umbreon vmax\"",
"Front centering 45/55 or better", "US sellers", "Sorted by Newest Listed"],
"viewUrl": "https://pokefocus.com/listings?q=umbreon+vmax&grade=raw¢ered=true",
"page": 1,
"hasMore": true,
"listings": [
{
"title": "Umbreon VMAX 214/203 Evolving Skies Secret Rare Full Art Holo English",
"itemId": "v1|267801263529|0",
"listingType": "buy_it_now",
"price": 85,
"shipping": "calculated shipping",
"grade": "Raw",
"market": null,
"deal": null,
"card": {
"name": "Umbreon VMAX (Secret) (214/203)",
"set": "SWSH07 Evolving Skies",
"url": "https://pokefocus.com/cards/umbreon-vmax-secret-214-203-swsh07-evolving-skies-holofoil"
},
"listedAt": "2026-10-02T03:14:00.000Z",
"lastCheckedAt": "2026-10-02T03:20:00.000Z",
"buyUrl": "https://www.ebay.com/itm/267801263529?…&customid=agentapi"
}
],
"affiliateDisclosure": "buyUrl, tcgplayerUrl, and ebayUrl links are affiliate links (eBay Partner Network and TCGplayer via Impact). …"
}Data and rules
- Market price
- The TCGplayer market price for a card or sealed product, refreshed daily. PSA 9 and PSA 10 comparisons use the median of confirmed eBay sales for that grade.
- Deal
- A Buy It Now listing whose price plus known shipping is at least 7% and $0.50 under the TCGplayer price for the seller’s declared condition, where PokeFocus confirmed the exact card and printing. Without that confirmation, a listing carries no deal label.
- Recent sales
- eBay sales PokeFocus verified as the exact card and grade, newest first, with the same outlier filter and median as the card page. Individual sales are kept for 90 days.
- Lowest listing (sealed)
- The lowest active TCGplayer listing, before shipping, from the same daily capture as the market price.
- Centering
- Measured from the listing’s front photo, as each border’s share of its pair: 45/55 or better means every side is at least 45%. It is a photo measurement, not a grade.
- Freshness
- Each response has capturedAt, and each listing has listedAt or endsAt and lastCheckedAt. Prices and availability change quickly; open the listing to confirm before buying.
Limits, caching, and errors
- Each endpoint allows 30 requests a minute per client. A 429 response carries Retry-After.
- Responses are cached for 5 minutes. Identical requests in that window return the same capture.
- A 400 response explains an invalid parameter and a 404 response an unknown card, set, or product. A 503 response means the data was briefly unavailable; retry after the Retry-After header.
- In MCP, an invalid parameter, a missing item, or unavailable data comes back as a tool result with isError set, not a protocol error.
- Each request is recorded as an anonymous usage event (tool, arguments, outcome, timing, and client software), without the IP address. The Privacy Policy, section 7, has the details.
Buy links and attribution
- buyUrl, tcgplayerUrl, and ebayUrl links are affiliate links (eBay Partner Network and TCGplayer via Impact). PokeFocus may earn a commission at no extra cost to the buyer. Keep the links and the affiliateDisclosure intact when you show them.
- Credit PokeFocus as the source and link to the card or product page where practical. Don’t bulk-download, mirror, or resell responses.
- PokeFocus does not sell, buy, or bid, and nothing here is purchase advice.
The Terms (section 8) and Privacy Policy (section 7) cover the API and MCP server.
Support
Questions, bugs, or higher limits: support@pokefocus.com. Machine-readable summaries are in llms.txt and the OpenAPI spec.
API version 1.2.0 · Updated October 4, 2026