Trial
A free Pokémon TCG API key
800 trial credits after email verification, no credit card. Every catalogue endpoint and current prices, up to 1,000 distinct cards for the whole trial (Developer reads 30,000 a month, Growth has no limit). Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth. One form, one key, about a second, and an account you can sign back into. The credits are granted once and do not renew, which is the whole difference between this and a free tier.
Who answers when something breaks
The person who built the API. In September a customer reported that set totals were wrong on several Japanese sets, where reverse holos were counted separately and a complete card list looked incomplete; the fix shipped the same day, and it is in the changelog. Write to riccardo (at) rarebit.app and you reach him, not a queue.
Three steps, no waiting
The form above is the whole process. It calls POST /v1/accounts/register, which mints the key and sets the password in one transaction. A script that wants a key and no dashboard can call POST /v1/accounts/free instead: same key, same limits, no password and no way to sign in later, which is why the form on this page is not that one.
- 01
Email and password
The password is not for the API. Your key authenticates that on its own, with no confirmation link to wait for. It is what signs you back in here, to see what you have spent and manage your keys.
- 02
Copy the key
Copy the key before you close the tab; we store only a hash of the key, while the signup response is kept for 24 hours for API replay. If you lose the secret, sign in and rotate the key.
- 03
Send the header
X-Api-Key on every request. One header, no OAuth round trip, no token to refresh, no SDK required.
what 800 credits buy
- 800card or set lookups
- 800pages of 250 cards without prices
- 160price histories
Or any mix of them. Reference lists and reading your own quota cost nothing.
curl -s "https://api.pokemontcgapi.com/v1/cards?q=name:charizard&limit=5&include=prices" \
-H "X-Api-Key: $PTCG_API_KEY"What the key opens
The same catalogue the paid plans read: 651 sets, 58,340 cards and 2,091 sealed products across three print lines, international, Japanese and Simplified Chinese, with card names in 8 languages and daily price observations that carry their source, basis, condition, sample size and date. Every figure on the coverage page is read live from the API, with the endpoint that produced it, so you can check this paragraph instead of believing it.
The trial lets you evaluate every catalogue endpoint and current prices, up to 1,000 distinct cards. Trial prices cover ungraded quotes in English. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth.
- sets
- 651
- GET /v1/status, catalog.sets. By region on 2026-09-18: 176 WEST, 380 JP, 96 CN.
- cards
- 58,340
- GET /v1/status, catalog.cards. Every one of them answers on a trial key.
- card languages
- 8
- en · fr · de · ja · it · es · pt · zh. Card names per locale, on ?include=translations.
- illustrators
- 405
- GET /v1/status, catalog.artists. Each one carries its own card count on /v1/artists.
Read from https://api.pokemontcgapi.com/v1/status when this page was last generated, at most an hour ago.
Three print regions
Western, Japanese and Chinese releases sit in the same catalogue with the same shape, tagged by print_region, so a Japanese-only set is a filter rather than a second integration.
Images and illustrators
One front image per card on ?include=images, on a signed URL that stays valid for at least a week, and every card carries its illustrator, so an artist page is one query rather than a scrape.
Prices that say where they came from
Each row carries source, variant, basis, currency, capture date and a provenance string you can print next to the number, and every card also carries a single composite figure in index_eur.
Cards also carry set, series, release date, number, rarity and both marketplace ids, and every distinct rarity is enumerated on /v1/reference. How each price is sourced, delayed and attributed is on the price methodology page.
What the trial includes
The last five rows are not included in the trial. Plan limits and feature availability were checked against the API code and plan table on 2026-09-18.
| What | Trial |
|---|---|
| Credits | 800, granted once |
| Trial length | 30 days from signup |
| Daily cap | 400 |
| Requests a second | 5 |
| API keys | 1 |
| Credit card | Not required, not asked for |
| Cards, sets, artists, rarities, types and supertypes | All of them |
| Search grammar | Fielded terms, AND/OR, negation, wildcards, ranges |
| Page size | Up to 250 per request |
| Cursor pagination | links.next on every page |
| Batch id lookup | Up to 100 ids per request, requested and found next to data |
| Field projection with select= | Card queries and batch lookups |
| Current prices with source, basis and provenance | Ungraded quotes in English on ?include=prices |
| Card image | One front image per card |
| Card names in eight locales | On ?include=translations |
| ETag and If-None-Match | An unchanged card answers 304 |
| Commercial use | Permitted |
| Card recognition from a photo | From Growth |
| Credits that renew | No. The trial is granted once |
| Graded quotes and the movers feed | From Growth |
| Price history beyond 7 days | Paid plans only |
| Support with a response time | Community only |
How the allowance is shaped
The unit is a credit, and most calls cost one of them. A card lookup, a set lookup, a search page of up to 50 rows: one credit each; a page of 250 rows costs five. Price history costs five credits a call. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth. Reference lists and reading your own quota cost nothing.
After email verification, the trial has 800 credits in total, not per month, and it ends 30 days after signup whether or not they are spent. The daily cap of 400 is a brake on top of it rather than a second budget: it exists so that one runaway loop costs you an afternoon instead of the whole trial. Spend the cap every day and the credits last 2 days. Importing all cards through /v1/cards?limit=250&orderBy=id, following links.next without priced includes, takes about 234 credits. The flat list uses fewer requests than a card loop for every set. Use a set endpoint for a selected set. See the dated comparison.
5 requests a second is the rate. It is enough to evaluate the API interactively and deliberately not enough to walk the catalogue quickly. A page of 250 cards without prices costs the same single credit as one card, so paging properly is the difference between a trial that answers your question and one that runs out before it does.
Every response carries a strong ETag. Send it back as If-None-Match and an unchanged card answers 304 Not Modified with no body at all. Card data changes when a set releases, not when you poll, so a client that caches properly serves far more user-visible lookups than it spends requests.
Mistakes come back as data, not as a stack trace. Every 4xx carries the same envelope: error.code, error.message, error.details and the request_id that is also on the response header, so a client can branch on the code and quote the id at us without screen-scraping a sentence. A malformed query names the field and the position it failed at, rather than answering an empty page.
{
"error": {
"code": "INVALID_QUERY",
"message": "Empty value for field \"name\" at position 0.",
"details": { "position": 0, "field": "name" },
"request_id": "1cdf1923-ad2c-4ca4-8f76-ba0754cf136d"
}
}When the credits run out, or the trial ends
Nothing breaks and nothing is deleted. Requests answer 429 with a message that says the trial is spent, or 403 TRIAL_EXPIRED with the date once the 30 days are up; your key stays valid, and subscribing to one of the paid plans lifts the ceiling on the same key: no rotation, no code change, no second integration.Questions
- Is the free Pokemon TCG API key really free?
- Yes, and it is a trial rather than a tier. The distinction is worth being blunt about. After email verification you get 800 credits, once, with no credit card, valid for 30 days from signup: they do not renew, and when the 30 days are up the key answers 403 on every credited route until you subscribe. It is sized to answer whether this API has what you need, not to run a project on. Commercial use is allowed on it all the same.
- How do I get one?
- You fill in the form on this page with an email address and a password. The key comes back on the same page in about a second, on the Trial plan, with reduced limits until you verify your email. The confirmation screen shows your current quota and what verification unlocks. There is no approval step and no waiting. The password is only for signing back into this site. The key authenticates the API on its own. If the form fails for any reason, the support contact above reaches a person.
- What can I actually do with 800 credits?
- Most calls cost one credit, so 800 calls. Import all cards through GET /v1/cards?limit=250&orderBy=id and follow links.next. A page without priced includes costs one credit, so that flat-list import takes about 234 credits. It uses fewer requests than a card loop for every set; use a set endpoint when you only need that set. The quickstart gives dated measurements. Price history costs five credits a call. The full catalogue and current prices are available on every plan. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth. It is sized to answer "does this API have what I need", not to run a product on.
- Does the trial include incremental sync?
- Yes. GET /v1/changes is available on the trial and costs 1 credit per call; fetching the records it points at costs their normal credits. The trial is 800 credits after the email address is confirmed, 80 before, and it ends 30 days after signup. Trial price quotes cover ungraded cards in English. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth.
- What are the limits on a trial key?
- 800 credits in total after email verification, valid for 30 days from signup, at most 400 in any one day, at most 5 a second, on 1 key. Graded quotes, the movers feed and price history beyond 7 days are on the paid plans. The full catalogue and current prices are available on every plan. Trial prices cover ungraded quotes in English. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth.
- What happens when the credits run out, or the trial ends?
- Out of credits, requests answer 429 with the code QUOTA_EXCEEDED and a message that says the trial is spent rather than pointing at a reset date that will never arrive. After the 30 days, credited routes answer 403 with the code TRIAL_EXPIRED and the date it ended; the date is also in the X-Trial-Expires-At header on every response from day one, and in trial_expires_at on GET /v1/me. In both cases your key stays valid and your account stays open. /v1/me and the billing routes keep answering. Subscribing to a plan lifts the ceiling on the same key, with no rotation and no code change.
- How do I send the key?
- In an X-Api-Key header on every request. There is no OAuth exchange, no bearer token to refresh and no SDK to install. Curl and your language of choice are the whole integration. Keep it server-side: a key in a browser bundle is a key anyone can read and spend.
- What does a trial key actually reach?
- Every catalogue endpoint, up to 1,000 distinct cards over the trial. 651 sets across three print regions, 58,340 cards, card names in en · fr · de · ja · it · es · pt · zh, one front image per card, 405 illustrators and every printed rarity. Verified Free accounts get 5 trial recognitions; ongoing recognition starts on Growth. Current prices are available on every plan; the trial covers ungraded quotes in English. Prices come back on request and every price row carries its own source, basis, capture date and provenance string, so you can print the attribution next to the number.
- Can I use the trial commercially?
- Yes. There is no non-commercial clause on any plan. The one restriction that applies everywhere is that you may not redistribute the price data as a dataset or run a competing price API on top of it, which is a limit we inherit from our own sources and publish in full on the price methodology page.
- Why not a free tier that renews?
- Because a free tier that renews forever is a product given away, and it makes the paid plans worse rather than better: every credit it hands out has to be paid for by someone, and the someone is the customers who did subscribe. A trial that is generous once and then stops is the honest version of the same offer.
Take the key
One address, one key, 800 credits on it. If the trial answers your question, the paid plans are a change of ceiling rather than a rewrite; if it does not, you have spent nothing.