Liga Pokemon Card Prices Scraper
Pricing
from $1.44 / 1,000 card prices
Liga Pokemon Card Prices Scraper
Pokemon TCG card prices from Brazil's Liga Pokemon marketplace: a card's low, average and high price in reais with set and collector number, or one seller's shelf with condition, language, stock and price. Wrong cards aren't billed. $1.50 per 1,000 rows; a one-printing search adds $3.00 per 1,000.
Pricing
from $1.44 / 1,000 card prices
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Get Pokemon TCG card prices in reais from Brazil's Liga Pokemon: give it card names, with a collector number to pin one printing, and each card comes back with the marketplace's low, average and high price in BRL and today's move. Give it a seller's shop id and you get the listings on that shelf with condition, language, stock and price.
There is no sold-price history, only today's asking prices. And many cards are listed under their Portuguese names, so an English name plus a number can miss.
| Input | Card names, optionally with a collector number, card or shop links, or shop ids |
| Output | One row per card with its price band, or one row per listing on a shop's shelf |
| Ceiling | 5,000 rows, 400 card lookups and 50 shops per run |
| Account needed | None |
| Price | $1.50 per 1,000 rows on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 3,300. A search for one printing adds a $3.00 per 1,000 card lookup |
🔍 What Liga Pokemon Card Prices Scraper does
Two kinds of row come back. A card row is the price band a card trades at across the whole marketplace: the cheapest copy for sale, the dearest, the marketplace's own average and how much that average moved today. Those are Liga's numbers, passed through untouched. A listing row is one copy on one seller's shelf, with its condition, language, stock and price.
Liga's search sometimes answers with the wrong card, and nothing about the answer looks wrong.
Ask for Chien-Pao ex (061/195) and it returns Hypno 061/195 from another set, same number, real
price. So when you pin a collector number, the name and the number that came back are checked
against what you asked for. A mismatch becomes a free note naming the card Liga offered instead,
not a charged price for somebody else's card. That is what strictMatch does, and it is on unless
you turn it off.
The name has to match as well as the number. Capitals, accents and punctuation are ignored, but a
name with a word more or less is another card: ask for Mewtwo ex (150/165) and Liga's Mewtwo at
that number comes back as a free note, not as your card.
Portuguese names are the other thing to know. Rare Candy is listed as Doce Raro, Boss's Orders as
Ordem da Chefia. If an English name plus a number finds nothing, search the name on its own. The one
spelling handled for you is VSTAR, which Liga writes as V-ASTRO. Promo printings keep their odd
numbers, like TG01/TG30 or 065C/151; they are not errors.
Twelve pinned card lookups took 18 seconds on a test run, and a 200-listing shop shelf took 12.
📋 What data you get from each Liga Pokemon card or listing
| What you get | Field |
|---|---|
| Row kind | rowType |
| Which card and printing | cardId, cardName, cardNamePt, collectorNumber, setSize, collectorCode, editionId, editionName, setName, setNamePt, setCode, rarity, rarityCode |
| Card rows: the low, average and high price, and today's move | priceMinBrl, priceAvgBrl, priceMaxBrl, priceChangeTodayBrl |
| Card rows: how well the answer matched what you asked | identityMatch, searchTerm |
| Listing rows: condition and language | conditionId, conditionCode, condition, languageId, languageCode, language |
| Listing rows: variant code and grading | extrasCode, isGraded, grading |
| Listing rows: stock, price and discount | listingId, stock, priceBrl, discountPct |
| Listing rows: the shop | sellerStoreId, sellerName, sellerRating, sellerRatingCountAtLeast, sellerVerified, sellerCity |
| Image, link and currency | imageUrl, url, currency |
▶️ How to scrape Liga Pokemon card prices
- Open Liga Pokemon Card Prices Scraper and click Try for free.
- Put card names in Cards to look up, one per line, or a shop id in Seller shop ids.
- Set Maximum rows.
- Leave Only return the exact printing asked for ticked.
- Click Start, then download the dataset as JSON, CSV or Excel.
With no card names, links or shops at all, the run returns one free sample row.
💰 How much does it cost to scrape Liga Pokemon prices?
$1.50 per 1,000 rows on the Free plan. Paid plans pay a little less: $1.48 on Starter, $1.46 on Scale and $1.44 on Business. A card row and a listing row cost the same. On the free plan, the $5 Apify gives you each month covers about 3,300 rows.
A search for one printing, a card name with its collector number like Charizard ex (006/165), also
costs a card lookup: $3.00 per 1,000 searches on the Free plan ($2.96 on Starter, $2.92 on Scale and
$2.88 on Business), charged once when the search returns its card, on top of that card's row. A
search by name alone has no lookup charge, and neither has a one-printing search that finds nothing
or only a different card.
Not charged: the sample row, every note listed further down, wrong-card answers caught by
strictMatch, rows without a readable identity, duplicates, and anything a run did not reach. If
you set a maximum cost for the run, it stops there and says so in its status.
📥 What you give it
{"searchTerms": ["Charizard ex (006/165)", "Pikachu ex (057/191)", "Mew ex (151/165)"],"sellerStores": ["97457"],"maxItems": 100}
| Field | Default | What it is |
|---|---|---|
searchTerms | none | One card per line. Charizard ex (006/165) pins one printing; Charizard on its own returns every printing listed under that name. The form opens with that Charizard filled in as an example. |
startUrls | none | Card pages or shop links copied from the site. A shop link is the one carrying &store=. |
sellerStores | none | A shop id, or the shop link it came from. Returns that seller's whole Pokemon shelf. The id is the number after store= in the shop's address. |
includeSellerDetails | true | Adds the shop's name, star rating and verified badge to every listing row. One extra request per shop. Turn it off if you only want prices. |
maxItems | 100 | 1 to 5,000 rows, across every search and shop in the run. |
strictMatch | true | Leave it on. With it off, a pinned search returns whatever Liga answered, each row tagged with how well it matched. |
proxyConfiguration | none | Only for your own servers, which are used as given. Leave it alone otherwise. |
📤 What you get back
A real card row from a run on 20 September 2026:
{"rowType": "card","cardId": "6509","editionId": "639","cardName": "Pikachu ex","collectorNumber": "057","setSize": "191","collectorCode": "057/191","editionName": "Surging Sparks","priceMinBrl": 28.5,"priceAvgBrl": 47.25,"priceMaxBrl": 99.9,"priceChangeTodayBrl": -0.2,"imageUrl": "https://repositorio.sbrauble.com/arquivos/in/pokemon_bkp/cd/639/67350d1d1652a-bxc8f-1jrpq-82ffda375fa28fa9a70a0bb6b0e2b3d6.jpg","url": "https://www.ligapokemon.com.br/?view=cards/card&card=Pikachu+ex%20(057/191)&num=057","currency": "BRL","identityMatch": "exact","searchTerm": "Pikachu ex (057/191)","scrapedAt": "2026-09-20T01:39:02.714Z"}
And a real listing row from a shop's shelf, read the same day:
{"rowType": "listing","listingId": "30468606","cardId": "7492","cardName": "Billy & O'Nare","cardNamePt": "Abílio e Onara","collectorNumber": "142","setSize": "159","editionId": "654","setName": "Journey Together","setNamePt": "Amigos de Jornada","setCode": "JTG","rarity": "Comum","rarityCode": "C","conditionId": 3,"conditionCode": "SP","condition": "Slightly Played","languageId": 2,"languageCode": "EN","language": "English","extrasCode": "3","grading": null,"isGraded": false,"stock": 7,"priceBrl": 0.49,"discountPct": 0,"currency": "BRL","sellerStoreId": "97457","sellerName": "SHOP NAME","sellerRating": 5,"sellerRatingCountAtLeast": 250,"sellerVerified": true,"sellerCity": null,"imageUrl": "https://repositorio.sbrauble.com/arquivos/in/pokemon_bkp/cd/654/67e5a9a0a383a-ur8ax-h2p7r-040edb458cc4e3c466bcacfea9a6defb.jpg","url": "https://www.ligapokemon.com.br/?view=cards/card&card=Billy%20%26%20O'Nare%20(142%2F159)&num=142","scrapedAt": "2026-09-20T01:39:19.647Z"}
| Field | How to read it |
|---|---|
priceMinBrl, priceAvgBrl, priceMaxBrl | The cheapest copy for sale, the marketplace's average and the dearest copy, in reais. |
priceChangeTodayBrl | How far the average moved today. Null when Liga shows no figure for the day. |
identityMatch | exact when the name and number you pinned came back. With strictMatch off you may also see number-only, name-only or none, and a name-only search gives search-result. |
conditionCode, condition | M, NM, SP, MP, HP or D, with the English label beside it. |
extrasCode | Liga's raw variant code for foils, promos and the like. Liga publishes no table for it, so no label is invented. |
sellerName, sellerRating | The shop, when includeSellerDetails is on. sellerCity is usually null. |
🧾 Reading the output
Real rows have no charged field. The free ones carry charged: false, so dropping those leaves
only cards and listings.
| Row | How to spot it | Billed |
|---|---|---|
| A card price | rowType: "card" and no charged field | yes |
| A shop listing | rowType: "listing" | yes |
| The sample | _sample: true and charged: false | no |
| A note | _diagnostic: true, charged: false, with an errorCode, an error and usually a hint | no |
The sample row also carries rowType: "card", so filter on _sample or charged, not on
rowType alone.
errorCode | What it means |
|---|---|
NO_EXACT_MATCH | Liga answered a pinned search with a different card. returnedInstead names it. Search the name alone, or turn strictMatch off. |
NO_RESULTS | Nothing found. Try the name on its own, or its Portuguese name. |
STORE_NOT_FOUND | No shop with that id. |
UNRECOGNISED_URL | Not a Liga Pokemon card or shop link. |
INCOMPLETE_IDENTITY | A card or listing came back without a readable name, set or id, so it was left out. |
INPUT_TRUNCATED | More than 400 cards or 50 shops. The rest were not looked up; split them into another run. |
TIME_LIMIT | The run reached its 45-minute working limit. What was returned before it stays. |
NO_ROUTE, RATE_LIMITED, UPSTREAM_ERROR, NETWORK_ERROR | The marketplace stopped answering this run, at the start or part way. Rows already returned are kept. Try the run again later. |
NOT_SERVED | This request was not served this run. Re-run it later. Until 12 October 2026 this code was called CHALLENGED or ADDRESS_REFUSED. |
NO_PROXY | A connection the run needs could not be opened. Your input did not cause it. Run it again later, and open an issue if it keeps happening. |
💡 What people use it for
- Pricing a binder in reais against the marketplace's low, average and high for each card.
- Watching a few chase cards every day.
priceChangeTodayBrlgives the day's move, and a schedule builds the history you keep. - Reading one shop's shelf card by card: what it stocks, in which condition and language, at what price.
- Checking your own shop's prices against the market band before you reprice.
🚧 What it does not do
- No sold prices. Liga shows past sales to signed-in members only, so you get today's asking prices and today's move.
- No list of every seller offering one card. You get the price band for any card, and every listing from a shop you name.
extrasCodeis a raw code, not a label.- No sealed product or accessories. Singles only.
- Prices are in BRL only. No conversion.
- It is not an official Liga Pokemon tool. Dami's Studio is independent and is not affiliated with or endorsed by Liga Pokemon or The Pokemon Company, or by any other company named on this page.
🧭 Which trading card or collectibles scraper do you need?
| If you want | Use |
|---|---|
| Pokemon card prices and shop shelves on Liga Pokemon | This one |
| Listings, live shows and sellers on Whatnot | Whatnot Scraper |
| Brazilian classified ads from OLX | OLX Brazil Scraper |
❓ Questions people ask
Do I need a Liga account, cookies or an API key?
No. It reads current asking prices, which Liga shows to anyone.
How do I find a seller's shop id?
Open the shop on Liga and take the number after store= in the address bar, or paste the whole link
into Seller shop ids.
What do NM, SP and MP mean?
Card condition, from mint down to damaged: M mint, NM near mint, SP slightly played, MP
moderately played, HP heavily played, D damaged.
Why did my Liga Pokemon search return nothing?
Usually the Portuguese name. Drop the collector number and search the name on its own first.
Can I track a card's price over time?
Run it on a schedule and keep the rows. Each carries scrapedAt and priceChangeTodayBrl, so a daily
run builds the history.
Can I call it from code or connect it to an AI assistant?
The API tab has code for Python,
JavaScript and the CLI. MCP clients like Claude and ChatGPT use
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/ligapokemon-card-prices-scraper; coding assistants can
load our skill file.
All three bill your Apify account at the same price.
Is scraping Liga Pokemon legal?
It reads public prices and public shop listings. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page and send the input you used and the run ID; the note rows in the dataset usually name the reason already.