TICKERMINT

If you run a Discord price bot, TickerMint gives you the latest TCGplayer market price of every Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh card from two keyless calls: search for the card (GET https://api.tickermint.cards/products/search), then read its price as one CSV row that includes the card page link your bot posts back, with daily history back to February 8, 2024 (Riftbound since October 2025, Gundam since February 2025, Yu-Gi-Oh since September 2026) when you want charts.

FOR DEVELOPERS · DISCORD PRICE BOTS · 120 REQUESTS A MINUTE FREE

Card price API for Discord price bots

A !price COMMAND

discord.py with aiohttp. Type !price charizard ex 199/165 in a channel; the bot answers with the market price and the TickerMint card page link.

import os

import aiohttp
import discord

API = "https://api.tickermint.cards"
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)


@client.event
async def on_message(message):
    if message.author.bot or not message.content.startswith("!price "):
        return
    q = message.content.removeprefix("!price ").strip()
    async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=10)) as http:
        async with http.get(f"{API}/products/search", params={"q": q}) as r:
            hits = await r.json()
        if not hits:
            await message.channel.send(f"No card found for {q}")
            return
        pid = hits[0]["product_id"]
        # one CSV row: date, product_id, name, set, number, printing, market_price_usd, url
        async with http.get(f"{API}/products/{pid}.csv") as r:
            row = (await r.text()).strip().split("\n")[1].rsplit(",", 2)
    head, price, url = row
    shown = f"${price} TCGplayer market" if price else "no recent price"
    await message.channel.send(f"{hits[0]['name']} ({hits[0]['set_name']}): {shown}\n{url}")


client.run(os.environ["DISCORD_TOKEN"])

A WEEKLY MOVERS POST

The biggest risers and fallers of the week in one game, ready to post on a schedule.

import requests

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

# This week's biggest movers in one game, for a weekly post in your server
movers = requests.get(f"{API}/desk/movers", params={"game": "one-piece", "days": 7, "limit": 5}, timeout=10).json()
for m in movers:
    print(m["name"], m["market"], f"{m['pct_change']:+.0%}", f"https://tickermint.cards/card/{m['product_id']}")

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

Free · $0

A community or hobby bot that posts the link back: no key, no account.

  • 120 requests a minute per IP, no key
  • Personal projects, research, hobby and non-commercial bots

API Pro · $49/mo

A bot you sell, or one that is part of a paid server or service, is commercial use.

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

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

Is it free for a Discord bot?

+

Yes for hobby and non-commercial bots, with no key, as long as each answer links to the TickerMint page the price came from (the url column in the CSV row). A bot you sell or run as part of a paid service needs API Pro, $49 a month, 1,200 requests a minute. No plan allows reselling the raw prices as a dataset or feed, or building a competing price API on them.

How many requests can my bot make?

+

120 a minute per IP with no key, lower on search. Every answer is cached for up to an hour and prices change once a day, so caching search results and prices in the bot keeps a busy server well under the limit.

Which games can the bot price?

+

Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh. Add game=one-piece (or lorcana, riftbound, gundam, yugioh) to the search call to keep a game's server to its own cards.

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