Pokémon Card Price Analyzer avatar

Pokémon Card Price Analyzer

Pricing

from $0.85 / 1,000 cards

Go to Apify Store
Pokémon Card Price Analyzer

Pokémon Card Price Analyzer

Search current ungraded Pokémon card prices by name or set, with optional collector-number, variant, and asking-price filters.

Pricing

from $0.85 / 1,000 cards

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Categories

Share

Pokémon Ungraded Card Price Analyzer

Find current ungraded Pokémon card prices by card name, set, collector number, and printing variant. Add an optional asking or purchase price to see how far it sits above or below the latest available market benchmark.

This Actor is designed for collectors, resellers, inventory teams, and collection apps that need structured price data without building a card matching layer. It resolves the exact card inside the requested set, distinguishes important printings such as Unlimited, 1st Edition, Shadowless, Holo, and Reverse Holo, then returns one row per priced variant.

The Actor covers ungraded cards only. It does not estimate PSA, BGS, CGC, or other graded values, and it does not infer a card's physical condition from a photo or description.

Why use this Actor

Pokémon card names are not unique enough for reliable pricing. The same character can appear hundreds of times, the same collector number can exist in different sets, and vintage cards can have materially different variants. Searching only for a name such as “Charizard” can easily attach the wrong price to the wrong card.

This Actor uses the card name, set, and collector number together. It then applies the requested printing variant when supplied. That makes it useful when you want to:

  • Value a personal Pokémon card collection in a consistent format.
  • Enrich inventory records with a current ungraded market benchmark.
  • Compare a marketplace listing or dealer offer with the market price.
  • Monitor the same cards regularly through scheduled Apify runs.
  • Export price data to CSV, JSON, Excel, Google Sheets, or a database.
  • Build a lightweight card-value feature without maintaining a complete Pokémon catalog.

What it produces

Each dataset row represents one resolved card variant in one currency. The most useful fields are:

  • cardName, setName, and cardNumber: the resolved card identity.
  • variant: the resolved printing and finish, such as Unlimited Normal or 1st Edition Shadowless Holo.
  • marketPrice: the main current ungraded market benchmark.
  • lowPrice, midPrice, and highPrice: available market range observations. Individual high values can contain exceptional listings or outliers, so the market price should normally be the primary benchmark.
  • average1Day, average7Days, and average30Days: rolling European observations returned when EUR is selected and the values are available.
  • candidatePrice: the optional price supplied with the card.
  • differenceAmount and differencePercent: the candidate price minus the market benchmark.
  • dealStatus: a simple position label based on a fixed 15% band.
  • priceUpdatedAt: the timestamp associated with the market observation.
  • imageUrl: a high-resolution card image when available.

Input

Add up to 100 card objects per run. Every card needs a name, English set name, and collector number. Variant and candidate price are optional.

{
"cards": [
{
"name": "Pikachu",
"set": "Base Set",
"number": "58/102",
"variant": "Unlimited Normal",
"candidatePrice": 25
},
{
"name": "Charizard",
"set": "Base Set",
"number": "4/102",
"variant": "Unlimited Holo"
}
],
"currency": "USD",
"runId": "collection-2026-08"
}

Input fields

  • cards: array of cards to resolve. The maximum is 100 cards per run.
  • cards[].name: printed English card name, for example Pikachu.
  • cards[].set: English set name, for example Base Set or Pokémon 151.
  • cards[].number: collector number with or without the set total, for example 58 or 58/102. Leading zeroes are accepted.
  • cards[].variant: optional printing and finish. Examples include Unlimited Normal, Unlimited Holo, Reverse Holo, Shadowless Holo, and 1st Edition Shadowless Holo. Leave it blank to return every priced variant found in the chosen currency.
  • cards[].candidatePrice: optional listing, offer, or purchase price. It must use the currency selected for the run.
  • currency: USD for US market observations or EUR for European market observations.
  • datasetId: optional existing Apify dataset ID. Results are written to the run's default dataset and also appended to this dataset.
  • runId: optional external batch reference copied into each result row.

For the most reliable match, use the official English set name and collector number. If you do not know the variant, omit it. The Actor will return all variants with a price in the selected currency.

Output example

{
"queryName": "Pikachu",
"querySet": "Base Set",
"queryNumber": "58/102",
"queryVariant": "Unlimited Normal",
"cardName": "Pikachu",
"setName": "Base Set",
"cardNumber": "58",
"variant": "Unlimited Normal",
"imageUrl": "https://assets.tcgdex.net/en/base/base1/58/high.webp",
"currency": "USD",
"marketPrice": 16.5,
"lowPrice": 3.99,
"midPrice": 8.99,
"highPrice": 1000,
"candidatePrice": 25,
"differenceAmount": 8.5,
"differencePercent": 51.52,
"dealStatus": "above_market",
"priceUpdatedAt": "2026-08-27T15:00:45.974Z",
"runId": "collection-2026-08"
}

Prices in this example are illustrative snapshots and will change as the market data updates.

Candidate price comparison

When candidatePrice is present, the Actor compares it with marketPrice:

  • below_market: candidate is at least 15% below the market benchmark.
  • near_market: candidate is within 15% of the market benchmark.
  • above_market: candidate is at least 15% above the market benchmark.

For example, if the market price is 100 and the candidate price is 80, differenceAmount is -20, differencePercent is -20, and dealStatus is below_market.

This label is mechanical. It does not assess card condition, authenticity, seller reputation, shipping, taxes, language, print defects, or future price movement. Treat it as a screening aid, not financial advice.

Variant matching

Variant matching matters most for vintage cards. The Actor normalizes common wording such as first edition and 1st edition, then matches the requested variant.

Examples:

  • Unlimited Holo will not be matched to an Unlimited non-holo printing.
  • 1st Edition Shadowless Holo will not be matched to the ordinary Unlimited Holo printing.
  • Reverse Holo is kept separate from Holo and Normal when the catalog provides that distinction.
  • Special stamps and unusual sizes can appear in the returned variant label.

If a requested variant is not found, no misleading result row is generated. The missed card appears in RUN_SUMMARY with the reason. If the variant field is blank, the Actor returns only the variants that have usable prices in the requested currency.

USD and EUR coverage

USD and EUR represent different market observations, not a currency conversion of the same number.

For USD, marketPrice, lowPrice, midPrice, and highPrice are returned when available for the resolved finish. For EUR, the Actor uses the available European trend or rolling-average values for the market benchmark and can also return one-day, seven-day, and thirty-day averages.

Coverage can differ by variant. A vintage European variant may have EUR data but no usable USD observation, or the reverse. The Actor does not invent a price and does not convert between currencies when the requested market is missing.

Missing cards and run summary

The Actor uses soft failure for batch processing. One bad or unavailable card does not stop the rest of the run. Public result rows contain successful price records only.

At the end of every run, the RUN_SUMMARY record contains:

{
"requestedCards": 3,
"matchedCards": 2,
"resultRows": 2,
"selectedCurrency": "USD",
"misses": [
{
"index": 2,
"query": "Example card — Example set 999/100",
"reason": "Card name and collector number were not found together in the selected set"
}
],
"completedAt": "2026-08-28T15:19:02.160Z"
}

Common reasons for a miss are an incorrect set name, a collector number that belongs to another set, a variant wording that does not match the catalog, or no price in the selected currency.

Using the results

Results can be downloaded from the Apify dataset as JSON, CSV, Excel, XML, RSS, or HTML, or consumed through the Apify API, webhooks, schedules, and integrations. For a historical table, use cardName, setName, cardNumber, variant, currency, and priceUpdatedAt as the main dimensions. A user-supplied runId can identify the batch.

Data limitations

Pokémon card prices are volatile and may be delayed, sparse, or affected by outlier listings. The observed price does not guarantee that a card will sell at that value. An ungraded card's actual value depends heavily on its physical condition, authenticity, language, edition, finish, and buyer demand.

The Actor matches catalog identity and printing information; it does not inspect a physical card. Always verify the returned image, set, collector number, and variant before using the result in a high-value decision. For expensive vintage cards, manual authentication and condition review remain essential.

Market coverage comes from public card-catalog observations available at run time. Coverage and update frequency can change. When a market benchmark is unavailable, the Actor returns no price row.

Pokémon and related names are trademarks of their respective owners. This Actor is an independent data-processing tool and is not affiliated with, endorsed by, or sponsored by The Pokémon Company, Nintendo, Creatures, Game Freak, TCGplayer, or Cardmarket.

Support

If a card does not resolve, include the exact input object, currency, and RUN_SUMMARY reason when reporting the issue. Do not include private Apify tokens or credentials.