Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Good Games API page →
E-commerce & Marketplaces

Good Games API & Scraper

The Good Games API returns goodgames.com.au, the Australian trading-card and board-game retailer, as clean JSON in Australian dollars.

6 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

Its singles list covers Magic: The Gathering (26,722 products on 2026-11-08), Flesh and Blood (3,899), Pokémon (2,658), Disney Lorcana (1,781), One Piece (1,178) and Riftbound (896), and each single is sold in five conditions, NM, LP, MP, HP and DMG, each with its own price and its own live stock count. Search by card name or printed number across one game or the whole 113,000-product store, filter by set, rarity, finish, condition, stock and AUD price, and sort by price, newest or best selling. product returns every condition of one card with its stock per fulfilment location, sets lists a game's sets and filters its rarities, finishes and card types with product counts. The same endpoint reads sealed boxes, booster packs, board games and accessories. No account, no browser: one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

One Charizard V, five conditions: the AUD price and the stock of each

Good Games sells every single in five conditions, each priced and stocked separately. Measured on Charizard V 018/159 (Crown Zenith, Holofoil), 2026-11-08:

what the shop listsfieldvalue
Near Mint: $12.80, 3 in stockvariants[0].price_aud / stock12.8 / 3
Lightly Played: $10.30, sold outvariants[1].price_aud / in_stock10.3 / false
Moderately Played: $7.70, sold outvariants[2].price_aud / in_stock7.7 / false
Damaged: $2.60, sold outvariants[4].price_aud / stock2.6 / 0
Cheapest condition you can actually buylowest_in_stock_price_aud12.8

The product-level price_aud is the lowest of the five conditions, here the $2.60 Damaged price, which is sold out; lowest_in_stock_price_aud is what you could buy today. Good Games publishes stock for its online range only: there is no count per walk-in shop, so stock_by_store is always null, and stock_by_location names the store's fulfilment locations.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/goodgames/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "game": "pokemon",
    "keyword": "charizard",
    "in_stock": true
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "goodgames",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1441.4,
    "record_count": 15,
    "bytes": 116810,
    "cache_hit": false,
    "game": "pokemon",
    "collection": null,
    "total": 15,
    "page": 1,
    "per_page": 24,
    "last_page": 1,
    "deepest_page": 2291,
    "has_more": false,
    "sort": "relevance",
    "filters_applied": {
      "keyword": "charizard",
      "in_stock": true
    },
    "upstream_requests": 1,
    "stock_by_store_note": "stock_by_store is null: Good Games publishes no stock per walk-in shop. stock_by_location holds the store's fulfilment and supplier locations as its catalogue reports them, which are not shops you can visit.",
    "charged_credits": 1,
    "version": "1.0.0",
    "request_id": "74396d726dd640b1",
    "queue_ms": 1.3,
    "fetched_at": "2026-11-08T13:04:23.191Z"
  },
  "data": {
    "rows": [
      {
        "id": 15462488932716,
        "handle": "charizard-v-018-159-swsh-crown-zenith-holofoil",
        "title": "Charizard V 018/159 (SWSH: Crown Zenith) - Holofoil",
        "name": "Charizard V",
        "game": "pokemon",
        "card_number": "018/159",
        "set": "SWSH: Crown Zenith",
        "rarity": "Ultra Rare",
        "finish": "Holofoil",
        "condition": null,
        "language": null,
        "is_single": true,
        "product_type": "Pokemon TCG",
        "product_kind": null,
        "brand": null,
        "is_preorder": false,
        "price_aud": 2.6,
        "price_max_aud": 12.8,
        "lowest_in_stock_price_aud": 12.8,
        "compare_at_price_aud": null,
        "on_sale": false,
        "in_stock": true,
        "stock": 3,
        "stock_by_store": null,
        "currency": "AUD",
        "url": "https://www.goodgames.com.au/products/charizard-v-018-159-swsh-crown-zenith-holofoil",
        "image": "https://cdn.shopify.com/s/files/1/0440/6493/1998/files/20260216_large_bc76b286-334c-4899-993c-2ed3dbd64d7d.jpg?v=1794035098",
        "attributes": {
          "card_type": "Fire",
          "hp": "220",
          "resistance": "None",
          "retreat_cost": "2",
          "stage": "Basic",
          "weakness": "Wx2"
        },
        "created_at": "2026-11-02T01:23:45Z",
        "updated_at": "2026-11-07T19:05:02Z",
        "variants": [
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          }
        ]
      },
      {
        "id": 15466199843180,
        "handle": "charizard-ex-[redacted-phone]-091-sv-paldean-fates-holofoil",
        "title": "Charizard ex [redacted-phone]/091 (SV: Paldean Fates) - Holofoil",
        "name": "Charizard ex 054 091",
        "game": "pokemon",
        "card_number": "054/091",
        "set": "SV: Paldean Fates",
        "rarity": "Double Rare",
        "finish": "Holofoil",
        "condition": null,
        "language": null,
        "is_single": true,
        "product_type": "Pokemon TCG",
        "product_kind": null,
        "brand": null,
        "is_preorder": false,
        "price_aud": 2,
        "price_max_aud": 9.8,
        "lowest_in_stock_price_aud": 9.8,
        "compare_at_price_aud": null,
        "on_sale": false,
        "in_stock": true,
        "stock": 1,
        "stock_by_store": null,
        "currency": "AUD",
        "url": "https://www.goodgames.com.au/products/charizard-ex-054-091-054-091-sv-paldean-fates-holofoil",
        "image": "https://cdn.shopify.com/s/files/1/0440/6493/1998/files/20260305_large_4db80aad-b6bd-4e39-8e06-9d6d80362beb.jpg?v=1794035636",
        "attributes": {
          "card_type": "Darkness",
          "hp": "330",
          "resistance": "None",
          "retreat_cost": "2",
          "stage": "Stage 2",
          "weakness": "Gx2"
        },
        "created_at": "2026-11-04T00:01:37Z",
        "updated_at": "2026-11-07T22:15:18Z",
        "variants": [
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          }
        ]
      },
      {
        "id": 15461240045932,
        "handle": "charizard-vmax-secret-74-73-champions-path-holofoil",
        "title": "Charizard VMAX Secret 74/73 (Champion's Path) - Holofoil",
        "name": "Charizard VMAX Secret",
        "game": "pokemon",
        "card_number": "74/73",
        "set": "Champion's Path",
        "rarity": "Secret Rare",
        "finish": "Holofoil",
        "condition": null,
        "language": null,
        "is_single": true,
        "product_type": "Pokemon TCG",
        "product_kind": null,
        "brand": null,
        "is_preorder": false,
        "price_aud": 71.6,
        "price_max_aud": 357.9,
        "lowest_in_stock_price_aud": 357.9,
        "compare_at_price_aud": null,
        "on_sale": false,
        "in_stock": true,
        "stock": 2,
        "stock_by_store": null,
        "currency": "AUD",
        "url": "https://www.goodgames.com.au/products/charizard-vmax-secret-74-73-champions-path-holofoil",
        "image": "https://cdn.shopify.com/s/files/1/0440/6493/1998/files/20260206_large_6714e16e-af6b-43b3-b773-0e802b1d2f5f.jpg?v=1794034697",
        "attributes": {
          "card_type": "Fire",
          "hp": "330",
          "resistance": "None",
          "retreat_cost": "3",
          "stage": "VMAX",
          "weakness": "Wx2"
        },
        "created_at": "2026-11-01T01:27:14Z",
        "updated_at": "2026-11-07T18:58:22Z",
        "variants": [
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          },
          {
            "variant_id": "[trimmed-depth]",
            "condition": "[trimmed-depth]",
            "variant_title": "[trimmed-depth]",
            "price_aud": "[trimmed-depth]",
            "compare_at_price_aud": "[trimmed-depth]",
            "on_sale": "[trimmed-depth]",
            "in_stock": "[trimmed-depth]",
            "stock": "[trimmed-depth]",
            "stock_by_location": "[trimmed-depth]",
            "sku": "[trimmed-depth]",
            "barcode": "[trimmed-depth]"
          }
        ]
      }
    ]
  }
}
Actions

What the Good Games API does

ActionDescriptionConcrete use caseKey params
searchSearch Good Games by name or card number across the store, one game's singles or sealed product, or any collection; filter by set, rarity, finish, tag, condition, stock and AUD price, sort by price, newest or best selling. One row per product, with a variant per condition carrying its own AUD price and stock.Pricing teams call search to search Good Games by name or card number across the store, one game's singles or sealed produ….game, scope, collection, keyword, exact_match, ...
productOne Good Games product in full, by id, handle or URL: every condition with its AUD price and stock, stock per fulfilment location, description, images, tags and the collections it sits in.Marketplace operators call product to get one Good Games product in full, by id, handle or URL.product
setsThe card sets Good Games carries singles from for one game, newest stock first, with how many products of each were read. Set names are what `search` takes as `set`.Catalog enrichment teams call sets to get the card sets Good Games carries singles from for one game, newest stock first, with how many….game, max_pages
filtersThe filter values Good Games offers for one game's singles or sealed product or for a collection, with product counts: rarity, finish, card type, stage, HP, weakness, ink, colour and more.Retail analysts call filters to get the filter values Good Games offers for one game's singles or sealed product or for a collect….game, scope, collection
collectionsGood Games' collections with their product counts: games, singles, sets, brands, categories.Pricing teams call collections to get good Games' collections with their product counts.keyword
suggestAs-you-type suggestions from the shop's search box: search terms, products and collections.Marketplace operators call suggest to get as-you-type suggestions from the shop's search box.keyword
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/goodgames/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"game":"pokemon","keyword":"charizard","in_stock":true}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.goodgames.search with {"game":"pokemon","keyword":"charizard","in_stock":true}.
Use cases

Who uses this API and why

  • Australian price tracking per condition across 37,000 singles
  • Arbitrage: Good Games' AUD NM price against TCGplayer, Cardmarket or eBay for the same card number
  • Restock and low-stock watches on specific conditions
  • Sealed booster-box and pack prices in AUD
  • Set completion lists: every card of one set with its price and stock in each condition
FAQ

Questions developers ask before integrating

Which games have singles at Good Games?

Magic: The Gathering, Flesh and Blood, Pokémon, Disney Lorcana, One Piece and Riftbound, 37,134 products in all on 2026-11-08. Yu-Gi-Oh!, Digimon and Star Wars: Unlimited are sealed product only at Good Games; use scope sealed for those.

Does it give the price per condition?

Yes. Each single carries five variants, NM, LP, MP, HP and DMG, each with price_aud, in_stock and a live stock count. The condition parameter returns one condition only, for example every in-stock NM Pokémon single on a page.

Are these real stock numbers, or just in stock and sold out?

Real counts per condition, the same numbers the product page prints as 'Only 3 in stock'. On 2026-11-08 we re-read 69 products on the shop's own pages and 1 of 1,328 values differed: a stock of 13 against 14.

Can I see stock at a particular Good Games shop?

No. Good Games does not publish stock for individual walk-in shops, so stock_by_store is null. stock_by_location names the store's fulfilment locations as its catalogue reports them, which are not shops you can visit.

Can I look up a card by its number?

Yes, keyword takes a printed number such as 018/159 or OP08-047, and every row carries card_number. Magic and Flesh and Blood singles print the number in the title, not as a separate value at the shop; the API reads it from there.

How do I get every set?

sets returns the sets a game has singles from, newest stock first. Pokémon, Lorcana, One Piece, Flesh and Blood and Riftbound come back complete; Magic is too large to read in one call, so it returns the sets on the newest 4,200 products and says complete false. search with a set name reaches every set.

Is it Australian pricing?

Yes. Every price is in AUD as Good Games lists it for Australian customers.

What is the Good Games API?

Good Games API is a ReefAPI endpoint group for good games australia as json: aud prices and live stock per card and condition for pokémon, magic, lorcana, one piece, flesh and blood and riftbound. It returns live JSON through POST requests under /goodgames/v1.

Is the Good Games API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Good Games calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Good Games login or account?

No login to Good Games is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Good Games data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Good Games API use?

Good Games actions currently cost 1-5 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Good Games from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call goodgames actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Good Games API a Good Games scraper?

It is the managed alternative to a DIY Good Games scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same good games australia as json: aud prices and live stock per card and condition for pokémon, magic, lorcana, one piece, flesh and blood and riftbound back as clean JSON.

docs / goodgames

Good Games

Good Games Australia as JSON: AUD prices and live stock per card and condition for Pokémon, Magic, Lorcana, One Piece, Flesh and Blood and Riftbound.

base /goodgames/v16 endpoints
post/goodgames/v1/product1 credit

One Good Games product in full, by id, handle or URL: every condition with its AUD price and stock, stock per fulfilment location, description, images, tags and the collections it sits in.

ParameterAllowed / rangeDescription
productrequired—A row's id or handle, or a goodgames.com.au product URL.
Try in playground →
post/goodgames/v1/sets5 credits

The card sets Good Games carries singles from for one game, newest stock first, with how many products of each were read. Set names are what `search` takes as `set`.

ParameterAllowed / rangeDescription
gamerequiredpokemon · mtg · lorcana · one-piece · flesh-and-blood · riftbound · yu-gi-oh · digimon · star-wars-unlimitedWhich game.
max_pages = 60optional1–60How many pages of 70 products to read. A game whose list needs more returns `complete: false` with the sets found on the newest products.
Try in playground →
post/goodgames/v1/filters1 credit

The filter values Good Games offers for one game's singles or sealed product or for a collection, with product counts: rarity, finish, card type, stage, HP, weakness, ink, colour and more.

ParameterAllowed / rangeDescription
gameoptionalpokemon · mtg · lorcana · one-piece · flesh-and-blood · riftbound · yu-gi-oh · digimon · star-wars-unlimitedLimit to one game. Singles exist for pokemon, mtg, lorcana, one-piece, flesh-and-blood and riftbound; yu-gi-oh, digimon and star-wars-unlimited are sealed product only. Omit it to search the whole store.
scope = singlesoptionalsingles · sealedWith game: individual cards (default) or the game's sealed product.
collectionoptional—A collection handle or numeric id, instead of game (the `collections` action lists all 760+).
Try in playground →
post/goodgames/v1/collections1 credit

Good Games' collections with their product counts: games, singles, sets, brands, categories.

ParameterAllowed / rangeDescription
keywordoptional—Only collections whose title or handle contains this.
Try in playground →
post/goodgames/v1/suggest1 credit

As-you-type suggestions from the shop's search box: search terms, products and collections.

ParameterAllowed / rangeDescription
keywordrequired—Part of a name.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.