Service status
Catalogue counts, the age of each ingest job and whether the upstream contract still holds — the numbers this site quotes, straight from the service.
/v1/statusfree, no key neededfree planCache-Control: public, max-age=60
Objects returned
catalog is what the database holds right now; every count on this site is read from here at build time and names this endpoint. sources lists the three ingest jobs — catalogue sync, price refresh, index rebuild — with the timestamp of the last success and its age in hours, so the freshness of what you read is one request away instead of a claim on a marketing page.
upstream.contract_ok says whether the read contract against the source database still compiles. If it ever turns false the catalogue keeps serving from its last good state, and the error text says which source broke. For a bare liveness probe use GET /v1/health, which answers { "status": "ok", "db": true } and nothing else.
Example request
curl -s "https://api.pokemontcgapi.com/v1/status" \
-H "X-Api-Key: $PTCG_API_KEY"Example response
200 OK · Cache-Control: public, max-age=60
{
"status": "ok",
"catalog": {
"sets": 615,
"cards": 52337,
"sealed": 2088,
"artists": 399
},
"sources": [
{
"source": "refresh-catalog",
"last_success_at": "2026-09-02T22:21:28.703Z",
"age_hours": 0.9,
"state": "fresh"
},
{
"source": "refresh-index",
"last_success_at": "2026-09-02T23:09:52.114Z",
"age_hours": 0.1,
"state": "fresh"
},
{
"source": "refresh-prices",
"last_success_at": "2026-09-02T23:07:22.204Z",
"age_hours": 0.1,
"state": "fresh"
}
],
"upstream": {
"contract_ok": true,
"error": null
},
"version": "dev"
}