TICKERMINT

If you reprice inventory or set buylist prices for a card shop, a Shopify store or an eBay store, TickerMint gives you the daily TCGplayer market price of every Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh card and sealed product, keyed by TCGplayer product id, with history back to February 8, 2024 (Riftbound since October 2025, Gundam since February 2025, Yu-Gi-Oh since September 2026): a whole set as CSV with no key (GET https://api.tickermint.cards/sets/{id}.csv), or every price for a game in a few bulk calls with a paid key.

FOR DEVELOPERS · STORE REPRICING AND BUYLISTS · 120 REQUESTS A MINUTE FREE

Card price API for store repricing and buylists

A WHOLE SET, NO KEY

One row per card and sealed product with the latest market price. The set id is the number in its TickerMint page URL (tickermint.cards/set/23237).

import csv
import io
import requests

API = "https://api.tickermint.cards"

# A whole set, one row per card and sealed product. No key.
rows = csv.DictReader(io.StringIO(requests.get(f"{API}/sets/23237.csv", timeout=30).text))
market = {int(r["product_id"]): float(r["market_price_usd"]) for r in rows if r["market_price_usd"]}
print(len(market), "priced products in the set")

EVERY PRICE FOR A GAME, ONCE A DAY

The bulk day call returns every priced printing of one game, 5,000 rows a page. Match on product_id and printing, then apply your own rules for sell and buylist prices.

import os
import requests

API = "https://api.tickermint.cards"
session = requests.Session()
session.headers["X-API-Key"] = os.environ["TICKERMINT_KEY"]

# Every priced printing of one game for the latest day, 5,000 rows a page
market = {}
params = {"game": "pokemon"}
while True:
    page = session.get(f"{API}/v1/bulk/day", params=params, timeout=60).json()
    for row in page["rows"]:
        if row["market"] is not None:
            market[(row["product_id"], row["variant"])] = float(row["market"])
    if not page["next"]:
        break
    last = page["rows"][-1]
    params = {"day": page["day"], "game": "pokemon",
              "after": last["product_id"], "after_variant": last["variant"]}

# Your stock: TCGplayer product id, printing, quantity. Your own pricing rules go here.
for pid, printing, qty in [(517045, "Holofoil", 2), (502554, "Holofoil", 12)]:
    price = market.get((pid, printing))
    if price:
        print(pid, printing, qty, "sell at", round(price, 2), "buylist at", round(price * 0.6, 2))

Free with no key for personal and non-commercial projects, with a link back. Inside a commercial app, site or tool, use API Pro ($49 a month). Plans →

THE PLAN THAT FITS

API Pro · $49/mo

Pricing stock for a business is commercial use, and the bulk endpoints are included.

  • 1,200 requests a minute
  • Commercial license: show prices and history inside your app, site or tool

API Business · $149/mo

Adds written rights to keep the data you fetched after you cancel.

  • 3,000 requests a minute
  • Commercial license plus written retention and export rights

Every plan side by side, terms and checkout on /developers.

Next step: get a free key. Log in with your email, create a key, then pick a plan from the same panel when you need 600 or more requests a minute and the bulk endpoints.
GET A FREE KEY →
USING THIS FOR A BUSINESS?

Tell us what you are building and your budget. We reply within a day with the plan that fits, and can set up a 14-day trial key.

GamesGAMES
Budget per monthBUDGET PER MONTH

QUESTIONS

Can I use these prices to price my store?

+

Yes, on a commercial plan: API Pro, $49 a month, 1,200 requests a minute, or API Business ($149 a month). Every plan asks for a visible link to the TickerMint page the price came from (tickermint.cards/card/{product_id}, also the url column of every CSV row). No plan allows reselling the raw prices as a dataset or feed, or building a competing price API on them.

Do the ids match TCGplayer?

+

Yes. product_id is TCGplayer's product id, and printing is TCGplayer's printing name (Normal, Holofoil, Reverse Holofoil, Foil and so on), so an inventory export with TCGplayer ids matches directly.

Are condition prices included?

+

No. The API returns the TCGplayer market and low price per printing for each day (the bulk day call adds mid and high). Prices by condition and recent sales appear on TickerMint card pages only.

What are the rate limits?

+

120 requests a minute per IP with no key, lower on search. A key on a free account keeps the same 120 a minute; Developer keys get 600, API Pro 1,200 and API Business 3,000, and every paid plan opens the bulk endpoints. Prices change once a day and answers are cached for up to an hour, so cache on your side too.

Built for: Price trackers and alert apps · Collection and portfolio apps · Discord price bots · Deck builders and deck cost tools · Google Sheets · Excel · API, MCP server and embeds