{"openapi":"3.1.0","info":{"title":"PokéQuant API","version":"1.0.0","description":"Read-only market data for the covered Pokémon card universe. Every payload carries `asOf` (when it was computed) and `dataMode` (`DEMO` fixture-derived vs. `LIVE` provider data). Money is always integer cents plus an ISO currency code. `null` is a genuine coverage gap, never an interpolated value."},"paths":{"/api/wall":{"get":{"summary":"Market wall grid","description":"The filterable market wall grid of card/product tiles.","parameters":[{"name":"filter","in":"query","schema":{"type":"string"},"description":"Named quick filter, e.g. 'movers'."},{"name":"era","in":"query","schema":{"type":"string"}},{"name":"set","in":"query","schema":{"type":"string"}},{"name":"ptype","in":"query","schema":{"type":"string"},"description":"Comma-joined product types, e.g. 'CARDS,SEALED'."},{"name":"ctype","in":"query","schema":{"type":"string"},"description":"Comma-joined card types, e.g. 'POKEMON,TRAINER'."},{"name":"rarity","in":"query","schema":{"type":"string"},"description":"Comma-joined provider rarity strings."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Free-text search."},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"tiles":{"type":"array","items":{"type":"object","description":"One card/product tile on the market wall.","properties":{"instrument":{"type":"string"},"variantId":{"type":"string"},"cardName":{"type":"string"},"setId":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"rarity":{"type":["string","null"]},"era":{"type":["string","null"]},"marketType":{"type":"string","enum":["AUCTION","FIXED_PRICE"]},"imageUrl":{"type":["string","null"],"description":"Extension-less source URL for the card art. Append `/low.webp` (245px) or `/high.webp` (600px) to render it. This site serves the same artwork from its own mirror; this field stays the canonical upstream address."},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"regime":{"type":["string","null"]},"quantScore":{"type":["number","null"],"description":"0-100 composite score."},"confidence":{"type":["number","null"],"description":"0..1"},"unusualActivity":{"type":["number","null"],"description":"0..1 pulse intensity"},"sparkline":{"type":"array","items":{"type":"number"}},"reasons":{"type":"array","items":{"type":"string"}},"cardType":{"type":["string","null"]},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}},"asOf":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when this payload was computed."},"totalMatching":{"type":"integer"},"cursor":{"type":["string","null"]},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}}}}}},"/api/terminal/{instrument}":{"get":{"summary":"Card terminal snapshot","description":"Full terminal snapshot for one instrument (price, indicators, depth, fair value, recommendation, population, provenance).","parameters":[{"name":"instrument","in":"path","required":true,"schema":{"type":"string"},"description":"URL-encoded instrument id (contains `~` and `:`)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Full card terminal snapshot: identity, price/inventory/population series, indicators, order-book depth, fair value, recommendation and provenance. See `packages/contracts/src/api.ts` (`CardTerminalSnapshot`) and QUANT_METHODOLOGY.md for the full field-by-field contract — the nested quant objects (indicators/depth/impact/absorption/scores/recommendation) are intentionally left as free-form objects here rather than fully enumerated.","properties":{"instrument":{"type":"string"},"card":{"type":"object","properties":{"printingId":{"type":"string"},"conceptId":{"type":"string"},"name":{"type":"string"},"setId":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"cardCountOfficial":{"type":["integer","null"]},"rarity":{"type":["string","null"]},"illustrator":{"type":["string","null"]},"releaseDate":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"era":{"type":["string","null"]},"subjects":{"type":"array","items":{"type":"string"}}}},"variants":{"type":"array","items":{"type":"object"}},"headline":{"type":"object","properties":{"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"priceStat":{"type":"string"},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"change30dPct":{"type":["number","null"]},"regime":{"type":["object","null"]}}},"series":{"type":"array","items":{"type":"object"},"description":"Switchable price/inventory/population/attention series."},"indicators":{"type":"array","items":{"type":"object"}},"depth":{"type":["object","null"]},"impact":{"type":["object","null"]},"absorption":{"type":["object","null"]},"scores":{"type":["object","null"]},"recommendation":{"type":["object","null"]},"gradingEv":{"type":["array","null"],"items":{"type":"object"}},"population":{"type":["array","null"],"items":{"type":"object"}},"provenance":{"type":"array","items":{"type":"object"}},"eventMarkers":{"type":"array","items":{"type":"object"}},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}}},"404":{"description":"Unknown instrument","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. 'BAD_REQUEST'."},"message":{"type":"string"},"details":{}}}}}}}}}}},"/api/screener":{"get":{"summary":"Cross-sectional screener","description":"Screener rows for one preset.","parameters":[{"name":"preset","in":"query","schema":{"type":"string","enum":["UNDERVALUED","ACCUMULATION","TIGHT_SUPPLY","HIGH_LIQUIDITY"]},"description":"Defaults to the source-defined default preset."},{"name":"limit","in":"query","schema":{"type":"integer"},"description":"Defaults to 25, capped at 100."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"preset":{"type":"string","enum":["UNDERVALUED","ACCUMULATION","TIGHT_SUPPLY","HIGH_LIQUIDITY"]},"rows":{"type":"array","items":{"type":"object","properties":{"instrument":{"type":"string"},"cardName":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"cardCountOfficial":{"type":["integer","null"]},"rarity":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"fairValueCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"fairValueGapCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"deviationPct":{"type":["number","null"]},"liquidityScore":{"type":["number","null"],"description":"0-100"},"popGrowth30dPct":{"type":["number","null"]},"salesVelocityPerDay":{"type":["number","null"]},"daysOfInventory":{"type":["number","null"]},"rawSupplyUnits":{"type":["number","null"]},"depthCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"crossMarketBasisPct":{"type":["number","null"]},"quantScore":{"type":["number","null"]},"sparkline":{"type":"array","items":{"type":"number"}},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}},"totalMatching":{"type":"integer"},"asOf":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when this payload was computed."},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}}},"400":{"description":"Unknown preset","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. 'BAD_REQUEST'."},"message":{"type":"string"},"details":{}}}}}}}}}}},"/api/indices":{"get":{"summary":"Hosted indices","description":"The POKE150 / POKE250 hosted index snapshots.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"indices":{"type":"array","items":{"type":"object","description":"One hosted index (POKE150 / POKE250) snapshot.","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"level":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"change30dPct":{"type":["number","null"]},"ytdPct":{"type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"t":{"type":"string"},"v":{"type":"number"}}}},"constituentCount":{"type":"integer"},"topConstituents":{"type":"array","items":{"type":"object"}},"breadthAdvancing":{"type":["integer","null"]},"breadthDeclining":{"type":["integer","null"]},"regime":{"type":["string","null"]},"methodologyNote":{"type":"string"}}}}}}}}}}}},"/api/quotes":{"get":{"summary":"Watchlist quotes","description":"Compact quote rows for a set of instruments, plus the hosted indices.","parameters":[{"name":"instruments","in":"query","schema":{"type":"string"},"description":"Comma-separated instrument ids. Max 200."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"quotes":{"type":"array","items":{"type":"object","description":"Compact watchlist row for one instrument.","properties":{"instrument":{"type":"string"},"cardName":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"imageUrl":{"type":["string","null"]},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"sparkline":{"type":"array","items":{"type":"number"}},"signal":{"type":"string","enum":["BULLISH","BEARISH","NEUTRAL","UNKNOWN"]}}}},"indices":{"type":"array","items":{"type":"object","description":"One hosted index (POKE150 / POKE250) snapshot.","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"level":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"change30dPct":{"type":["number","null"]},"ytdPct":{"type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"t":{"type":"string"},"v":{"type":"number"}}}},"constituentCount":{"type":"integer"},"topConstituents":{"type":"array","items":{"type":"object"}},"breadthAdvancing":{"type":["integer","null"]},"breadthDeclining":{"type":["integer","null"]},"regime":{"type":["string","null"]},"methodologyNote":{"type":"string"}}}},"asOf":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when this payload was computed."},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}}},"400":{"description":"Too many instruments requested","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. 'BAD_REQUEST'."},"message":{"type":"string"},"details":{}}}}}}}}}}},"/api/search":{"get":{"summary":"Omni-search","description":"Card/set/era matches for the omni-search palette. An empty `q` returns standing \"top movers\" suggestions instead of a facet search.","parameters":[{"name":"q","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string"},"cards":{"type":"array","items":{"type":"object"}},"sets":{"type":"array","items":{"type":"object"}},"eras":{"type":"array","items":{"type":"object"}},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}}}}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. 'BAD_REQUEST'."},"message":{"type":"string"},"details":{}}}}},"DataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."},"MarketWallTile":{"type":"object","description":"One card/product tile on the market wall.","properties":{"instrument":{"type":"string"},"variantId":{"type":"string"},"cardName":{"type":"string"},"setId":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"rarity":{"type":["string","null"]},"era":{"type":["string","null"]},"marketType":{"type":"string","enum":["AUCTION","FIXED_PRICE"]},"imageUrl":{"type":["string","null"],"description":"Extension-less source URL for the card art. Append `/low.webp` (245px) or `/high.webp` (600px) to render it. This site serves the same artwork from its own mirror; this field stays the canonical upstream address."},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"regime":{"type":["string","null"]},"quantScore":{"type":["number","null"],"description":"0-100 composite score."},"confidence":{"type":["number","null"],"description":"0..1"},"unusualActivity":{"type":["number","null"],"description":"0..1 pulse intensity"},"sparkline":{"type":"array","items":{"type":"number"}},"reasons":{"type":"array","items":{"type":"string"}},"cardType":{"type":["string","null"]},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}},"ScreenerRow":{"type":"object","properties":{"instrument":{"type":"string"},"cardName":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"cardCountOfficial":{"type":["integer","null"]},"rarity":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"fairValueCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"fairValueGapCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"deviationPct":{"type":["number","null"]},"liquidityScore":{"type":["number","null"],"description":"0-100"},"popGrowth30dPct":{"type":["number","null"]},"salesVelocityPerDay":{"type":["number","null"]},"daysOfInventory":{"type":["number","null"]},"rawSupplyUnits":{"type":["number","null"]},"depthCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"crossMarketBasisPct":{"type":["number","null"]},"quantScore":{"type":["number","null"]},"sparkline":{"type":"array","items":{"type":"number"}},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}},"IndexSnapshot":{"type":"object","description":"One hosted index (POKE150 / POKE250) snapshot.","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"level":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"change30dPct":{"type":["number","null"]},"ytdPct":{"type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"t":{"type":"string"},"v":{"type":"number"}}}},"constituentCount":{"type":"integer"},"topConstituents":{"type":"array","items":{"type":"object"}},"breadthAdvancing":{"type":["integer","null"]},"breadthDeclining":{"type":["integer","null"]},"regime":{"type":["string","null"]},"methodologyNote":{"type":"string"}}},"WatchQuote":{"type":"object","description":"Compact watchlist row for one instrument.","properties":{"instrument":{"type":"string"},"cardName":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"imageUrl":{"type":["string","null"]},"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"sparkline":{"type":"array","items":{"type":"number"}},"signal":{"type":"string","enum":["BULLISH","BEARISH","NEUTRAL","UNKNOWN"]}}},"CardTerminalSnapshot":{"type":"object","description":"Full card terminal snapshot: identity, price/inventory/population series, indicators, order-book depth, fair value, recommendation and provenance. See `packages/contracts/src/api.ts` (`CardTerminalSnapshot`) and QUANT_METHODOLOGY.md for the full field-by-field contract — the nested quant objects (indicators/depth/impact/absorption/scores/recommendation) are intentionally left as free-form objects here rather than fully enumerated.","properties":{"instrument":{"type":"string"},"card":{"type":"object","properties":{"printingId":{"type":"string"},"conceptId":{"type":"string"},"name":{"type":"string"},"setId":{"type":"string"},"setName":{"type":"string"},"localId":{"type":"string"},"cardCountOfficial":{"type":["integer","null"]},"rarity":{"type":["string","null"]},"illustrator":{"type":["string","null"]},"releaseDate":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"era":{"type":["string","null"]},"subjects":{"type":"array","items":{"type":"string"}}}},"variants":{"type":"array","items":{"type":"object"}},"headline":{"type":"object","properties":{"priceCents":{"type":["integer","null"],"description":"Integer minor-unit amount (cents). Paired with a `currency` field. `null` is a genuine coverage gap, never zero."},"priceStat":{"type":"string"},"currency":{"type":"string"},"change24hPct":{"type":["number","null"]},"change7dPct":{"type":["number","null"]},"change30dPct":{"type":["number","null"]},"regime":{"type":["object","null"]}}},"series":{"type":"array","items":{"type":"object"},"description":"Switchable price/inventory/population/attention series."},"indicators":{"type":"array","items":{"type":"object"}},"depth":{"type":["object","null"]},"impact":{"type":["object","null"]},"absorption":{"type":["object","null"]},"scores":{"type":["object","null"]},"recommendation":{"type":["object","null"]},"gradingEv":{"type":["array","null"],"items":{"type":"object"}},"population":{"type":["array","null"],"items":{"type":"object"}},"provenance":{"type":"array","items":{"type":"object"}},"eventMarkers":{"type":"array","items":{"type":"object"}},"dataMode":{"type":"string","enum":["DEMO","LIVE"],"description":"'DEMO' — deterministic fixture-derived data, never a real market price. 'LIVE' — real provider data."}}}}},"servers":[{"url":"https://cardboardalpha.com"}]}