{
 "source": "Palworld Prices",
 "url": "https://palworldprices.com/api/v1/404.json",
 "license": "free with attribution",
 "attribution": "Data: Palworld Prices (palworldprices.com) — completed-sale prices with confidence tiers",
 "terms": "Free to use, including commercially, with attribution and a link. Please do not imply endorsement, and please send a descriptive User-Agent. Card images are NOT part of this API.",
 "asOf": "2026-08-03T07:47:13.800Z",
 "stale": false,
 "honesty": "Prices are medians of COMPLETED SALES, never asking prices. headline.kind is one of \"bare\" (HIGH/MEDIUM confidence — safe to show as a plain number), \"thin\" (LOW confidence, 1-3 sales — a medianUsd is present but MUST be displayed with the accompanying qualifier, never bare), or \"none\" (no verified sale — there is no medianUsd key at all; display \"no verified sales yet\", never 0 or null-as-price).",
 "error": "not_found",
 "message": "The requested card does not exist in this API.",
 "howToDetect": "This API is static files on a CDN — there is no application server to return a JSON error for an unknown path. An unknown cardId is answered with HTTP 404 and the site's HTML not-found page, served under this API's JSON content type (the header rule matches the requested path). The status is honest; the body is not JSON. Do not rely on the content type and do not assume a parseable error body. Parse the response and check that `cardId` equals the id you requested; treat anything else as not found. That guard is correct whatever the host returns, and it also catches a card retired between builds.",
 "example": "const card = await res.json().catch(() => null); if (!card || card.cardId !== requestedId) throw new Error(\"unknown cardId\");",
 "validIdsFrom": "https://palworldprices.com/api/v1/cards.json",
 "docs": "https://palworldprices.com/docs/api/"
}