Discover/TCGFish API
live

TCGFish APItcgfish.net

Access Pokemon TCG market indices, momentum metrics, 12-month historical data, and card price search via the TCGFish.net API. 3 endpoints, no auth setup required.

This API takes change requests — .
Endpoint health
verified 3d ago
list_indices
get_index_detail
search_cards
3/3 passing latest checkself-healing
Endpoints
3
Updated
1mo ago

What is the TCGFish API?

The TCGFish.net API provides 3 endpoints for querying Pokemon TCG market data: index-level performance metrics for the Graded (PSA 10), Sealed, Top 100, and Top 250 indices; up to 12 months of daily historical data points per index via get_index_detail; and paginated card price search across the full TCGFish catalog. Each card result includes rarity, edition, foil type, set name, artist, and current market prices.

Try it

No input parameters required.

api.parse.bot/scraper/a731060a-9db8-4865-8df8-f74fef91d989/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a731060a-9db8-4865-8df8-f74fef91d989/list_indices' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace tcgfish-net-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: TCGFish SDK — Pokemon TCG market indices and card search."""
from parse_apis.tcgfish_pokemon_card_market_indices_api import (
    TCGFish, IndexSlug, IndexNotFound
)

client = TCGFish()

# List all market indices to see overall market health.
for idx in client.indexsummaries.list(limit=4):
    print(idx.name, idx.level, idx.change_7d)

# Drill into the graded index for detailed momentum and historical data.
graded = client.indexsummary(slug="graded").detail()
print(graded.title, graded.level, graded.as_of_date)
for period, change in graded.momentum.items():
    print(f"  {period}: {change}")

# Access historical data points on the detailed index.
if graded.historical_points:
    point = graded.historical_points[0]
    print(point.date, point.value)

# Fetch a different index by enum to compare performance.
sealed = client.indexes.get(slug=IndexSlug.SEALED)
print(sealed.title, sealed.level)

# Search for cards by keyword, bounded iteration.
for card in client.cards.search(query="pikachu", limit=3):
    print(card.name, card.set_name, card.prices.ungraded)

# Typed error handling: catch IndexNotFound on an invalid slug lookup.
try:
    client.indexes.get(slug=IndexSlug.GRADED)
except IndexNotFound as exc:
    print(f"Index not found: {exc.slug}")

print("exercised: indexsummaries.list / indexsummary.detail / indexes.get / cards.search")
All endpoints · 3 totalmissing one? ·

List all Pokemon TCG market indices with their current level, 7-day and 30-day performance changes. Returns data for the Graded Index (PSA 10), Sealed Index, Top 100 Most Valuable, and Top 250 Index. Always returns all four indices in a single response with no pagination.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "indices": "array of IndexSummary objects with name, slug, level, change_7d, change_30d, description"
  },
  "sample": {
    "data": {
      "indices": [
        {
          "name": "Graded Index (PSA 10)",
          "slug": "graded",
          "level": 140.64,
          "change_7d": "+1.96%",
          "change_30d": "+4.99%",
          "description": "Fixed, equal-weighted basket of the Top 250 English Pokémon cards (PSA 10). Rebalanced monthly and updated daily."
        },
        {
          "name": "Sealed Index",
          "slug": "sealed",
          "level": 118.66,
          "change_7d": "-0.01%",
          "change_30d": "+2.52%",
          "description": "Fixed, equal-weighted basket of the Top 100 Pokémon sealed products. Rebalanced monthly and updated daily."
        },
        {
          "name": "Top 100 Most Valuable",
          "slug": "top-100",
          "level": 116.2,
          "change_7d": "+1.85%",
          "change_30d": "+3.68%",
          "description": "Fixed, equal-weighted basket of the Top 100 English Pokémon cards. Rebalanced monthly and updated daily."
        },
        {
          "name": "Top 250 Index",
          "slug": "top-250",
          "level": 116.83,
          "change_7d": "+1.80%",
          "change_30d": "+3.95%",
          "description": "Fixed, equal-weighted basket of the Top 250 English Pokémon cards. Rebalanced monthly and updated daily."
        }
      ]
    },
    "status": "success"
  }
}

About the TCGFish API

Market Indices

The list_indices endpoint returns all four TCGFish market indices in a single call — Graded Index (PSA 10), Sealed Index, Top 100 Most Valuable, and Top 250 Index. Each index object includes its current level, change_7d, change_30d, a human-readable description, and a slug that can be passed directly to get_index_detail. No parameters are required.

Index Detail and Historical Data

get_index_detail accepts one of four slug values (graded, sealed, top-100, top-250) and returns extended data for that index: the momentum object breaks down percentage-change performance across 7d, 30d, and 90d periods, and historical_points provides an ordered array of {date, value} objects covering approximately the last 12 months. The as_of_date field indicates when the index level was last updated.

Card Price Search

search_cards accepts a required query string (card name or keyword such as charizard or base set) and an optional page integer for pagination. Each page returns up to 20 results sorted by value. Card objects include name, number, rarity, artist, edition, foil_type, set_name, set_slug, image_url, and a prices object with current market pricing. The total field in the response indicates how many matching cards exist across all pages.

Reliability & maintenanceVerified

The TCGFish API is a managed, monitored endpoint for tcgfish.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tcgfish.net changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official tcgfish.net API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Chart Pokemon TCG market trends by plotting historical_points from get_index_detail over the past 12 months.
  • Build a portfolio tracker that flags index movements using change_7d and change_30d from list_indices.
  • Compare sealed vs. graded market momentum using the 90d field from both index detail responses.
  • Look up current market prices for a specific card by querying search_cards with the card name and reading the prices field.
  • Filter search results by rarity, edition, or foil_type after retrieving paginated search_cards responses.
  • Monitor the Top 100 Most Valuable index level daily using the graded and top-100 slugs on a scheduled basis.
  • Identify which sets contain a keyword by aggregating set_name values across paginated search_cards results.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does TCGFish have an official developer API?+
TCGFish does not publish an official public developer API or documented API program as of mid-2025.
What does the `momentum` object in `get_index_detail` actually contain?+
It contains three keys — 7d, 30d, and 90d — each holding a percentage string representing how much the index level has changed over that period. It does not include raw point values for those periods, only the percentage change.
How far back does the historical data in `get_index_detail` go?+
The historical_points array covers approximately the last 12 months of daily index values. Data older than 12 months is not returned by this endpoint.
Does the API return individual card sale history or transaction records?+
Not currently. The API covers current market prices per card via search_cards and index-level historical data via get_index_detail, but not per-card transaction history or sale logs. You can fork this API on Parse and revise it to add an endpoint targeting individual card price history if that data becomes accessible.
Can I filter `search_cards` results by set, rarity, or edition before results are returned?+
The search_cards endpoint accepts only a query string and a page number as inputs. Filtering by rarity, set_name, or edition is not available as a server-side parameter. You can fork this API on Parse and revise it to add those filter parameters as a separate endpoint.
Page content last updated . Spec covers 3 endpoints from tcgfish.net.
Related APIs in FinanceSee all →
fred.stlouisfed.org API
Access data from fred.stlouisfed.org.
cmegroup.com API
Get CME Group market data including FedWatch interest-rate probabilities, futures quotes and settlements, volume/open interest history, and options expirations and near-the-money option chains.
rba.gov.au API
Access Reserve Bank of Australia data including CPI inflation (current and historical), housing and business lending rates, AUD exchange rates, monetary policy/cash rate changes, and the RBA balance sheet.
polygon.io API
Access real-time and historical market data for stocks, cryptocurrencies, forex, and commodities—including price aggregates, ticker details, and financial statements—all from a single platform. Get the latest market news, check trading status across exchanges, and retrieve comprehensive ticker information to power your investment analysis and trading decisions.
data.ecb.europa.eu API
Access official European Central Bank statistical series and observations to retrieve economic data like exchange rates, interest rates, and monetary aggregates. Browse available dataflows and retrieve specific time series data to analyze ECB's published economic indicators.
banks.data.fdic.gov API
Search FDIC-insured banks by location or institution, and access detailed information about their financial performance, merger history, deposit demographics, and regulatory changes. Get comprehensive data on bank failures, acquisitions, and historical financial trends to research institutions and analyze the banking landscape.
alphavantage.co API
Track stock prices, forex rates, and cryptocurrency values with real-time and historical market data, while accessing company financials, earnings reports, and technical indicators. Search tickers, monitor economic indicators, analyze news sentiment, and get global quotes all in one place.
polymarket.com API
Browse top Polymarket events and markets by volume/liquidity and view the Polymarket trader leaderboard (profit or volume) over common timeframes.