status
API status
Read live from GET /v1/status, which is the same endpoint our own probe watches. There is no switch on this page to leave set to “operational” by mistake.
Serving, every source fresh
https://api.pokemontcgapi.com/v1/status
catalogue
What is in the database right now.
Counted at read time, not written down here. These are the same numbers the coverage page and the OpenAPI examples are generated from.
- Sets
- 651
- Cards
- 58,340
- Sealed products
- 2,091
freshness
Every source, and how old it is.
An ingest that stops running is invisible until somebody looks. Publishing it here — to customers, not just to us — is what makes it impossible to leave broken quietly.
| Source | Last success | Age | State |
|---|---|---|---|
| enrich-game-text | Sep 10, 2026 | 38 d ago | never run |
| refresh-catalog | Oct 18, 2026 | 18 min ago | never run |
| refresh-index | Oct 18, 2026 | 3 h ago | never run |
| refresh-prices | Oct 18, 2026 | 3 h ago | never run |
The thresholds count missed cycles, not hours. Prices and the index run once a day, so “stale” means two days without a successful run and “critical” four. The catalogue runs every hour, and is held to its own cadence: three hours and six. Neither state takes the API down: a source that stops updating leaves the data it already delivered in place, and the catalogue keeps answering. What it does mean is that prices from that source stop moving, which is why the freshness of each one is on the methodology page as well as here.
incidents
Where an outage gets written down.
There is no third-party status board, and pretending otherwise would be worse than saying so. What exists is this page, the changelog, and an address that a person reads.
Availability
This page, read from the API itself. It is generated at most every two minutes, so it lags a real incident by that much and never by more.
Changes
Anything that changes the contract — a field, a limit, a route — lands on the changelog, which also publishes an Atom feed.
Something wrong?
Write to info (at) pokemontcgapi.com with the request_id from the response header. It is on every answer, including the failures.