Skip to content
Developers

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.
MCP server URL
https://pokefocus.com/api/mcp

Connect your assistant

Claude (web, desktop, and mobile)

  1. Open Customize, then Connectors, and choose Add custom connector.
  2. Name it PokeFocus, paste the server URL, and leave authentication off.
  3. In a chat, turn the connector on from the + menu and ask about Pokémon card prices, sales, or listings.
Server URL
https://pokefocus.com/api/mcp

Claude Code

  1. Run this once in a terminal.
Terminal
claude mcp add --transport http pokefocus https://pokefocus.com/api/mcp

ChatGPT

  1. In Settings, open Apps & Connectors and turn on Developer mode under Advanced settings (paid plans).
  2. Choose Create, name it PokeFocus, paste the server URL, and choose no authentication.
Server URL
https://pokefocus.com/api/mcp

Cursor

  1. Install with one click, or add the server to ~/.cursor/mcp.json.
Add to Cursor
mcp.json
{
  "mcpServers": {
    "pokefocus": {
      "url": "https://pokefocus.com/api/mcp"
    }
  }
}

VS Code

  1. Install with one click, or run the command below.
Add to VS Code
Terminal
code --add-mcp '{"name":"pokefocus","type":"http","url":"https://pokefocus.com/api/mcp"}'

Other MCP clients

  1. Connect over Streamable HTTP with no authentication. The server is stateless and answers JSON-RPC with JSON responses.
Server URL
https://pokefocus.com/api/mcp

Try 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.
Request
curl "https://pokefocus.com/api/v1/listings?q=umbreon%20vmax&grade=raw&centered=true&limit=5"
Response (abridged)
{
  "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&centered=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