If you are building a price tracker or a price alert app, TickerMint gives you the daily TCGplayer market price of every Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh card and sealed product, with daily history back to February 8, 2024 (Riftbound since October 2025, Gundam since February 2025, Yu-Gi-Oh since September 2026), from one JSON call per card (GET https://api.tickermint.cards/products/{id}/prices, no key) or 50 cards per call with a paid key, so you can chart each card and alert when its price crosses your line.
Card price API for price trackers and price alert apps
ONE CARD, FULL HISTORY, NO KEY
Every printing of the card with its market price for each day. The id is the number in the card's TickerMint page URL, or product_id from search; it is the same as TCGplayer's product id.
import requests
API = "https://api.tickermint.cards"
# One card's daily market price per printing, back to February 2024. No key.
history = requests.get(f"{API}/products/632504/prices", timeout=10).json()
for printing, days in history.items():
priced = [d for d in days if d["market"] is not None]
print(printing, len(priced), "days, latest", priced[-1]["snapshot_date"], priced[-1]["market"])ALERTS FOR A WATCHLIST
Run this once a day after prices update. The bulk history call returns up to 50 products per request, so a watchlist of thousands of cards is a few dozen calls a day.
import os
import requests
API = "https://api.tickermint.cards"
# product_id: alert when the market price is at or below this many dollars
WATCH = {632504: 12000.00, 517045: 300.00}
# Daily history for up to 50 products per call (bulk endpoints: any paid key)
r = requests.get(
f"{API}/v1/bulk/history",
params={"ids": ",".join(map(str, WATCH)), "since": "2026-10-01"},
headers={"X-API-Key": os.environ["TICKERMINT_KEY"]},
timeout=30,
)
r.raise_for_status()
for pid, printings in r.json()["products"].items(): # columns: day, market, low
for printing, days in printings.items():
priced = [d for d in days if d[1] is not None]
if not priced:
continue
day, market, low = priced[-1]
if float(market) <= WATCH[int(pid)]:
print(f"ALERT {printing}: {market} on {day} https://tickermint.cards/card/{pid}")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
A tracker or alert app that shows these prices to its users is commercial use.
- 1,200 requests a minute
- Commercial license: show prices and history inside your app, site or tool
Developer · $19/mo
A personal or non-commercial tracker that needs more volume and the bulk endpoints.
- 600 requests a minute on your key
- Personal and non-commercial projects that need volume
Every plan side by side, terms and checkout on /developers.
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.
QUESTIONS
Can I show these prices to my users?
+×
Yes. In a personal or non-commercial project the free plan covers it. Inside a commercial app, site, bot or tool you need API Pro, $49 a month, 1,200 requests a minute, or API Business ($149 a month) for written retention and export rights. 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.
How often do the prices update?
+×
Once a day. TickerMint records the TCGplayer market price of every product and printing daily, so polling more than a few times a day returns the same numbers. Check once a day and alert on the change.
Which games are covered?
+×
Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh, cards and sealed product, with daily history back to February 8, 2024 (Riftbound since October 2025, Gundam since February 2025, Yu-Gi-Oh since September 2026). Add game=one-piece (or lorcana, riftbound, gundam, yugioh) to search to stay in one game.
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: Store repricing and buylists · Collection and portfolio apps · Discord price bots · Deck builders and deck cost tools · Google Sheets · Excel · API, MCP server and embeds