{"data":{"protocol":{"package":"@cambridge-tcg/data-ingest","doctrine":"docs/methodology/source-protocol.md","catalog":"docs/connections/the-tributaries.md","audit_command":"pnpm audit:tributaries"},"counts":{"shipped":3,"partial":3,"planned":11,"blocked":0,"registered_total":7,"planned_slot_total":11},"ingest_runs_available":true,"sources":[{"id":"scryfall","name":"Scryfall","description":"Magic: The Gathering — every printing, every language, multi-resolution images. Exemplary public API + daily bulk dumps. CC-BY-NC 4.0.","upstream":"https://scryfall.com","catalog_section":"the-tributaries.md#31-scryfall-mtg","access":"public-api","license":"cc-by-nc","license_spdx":"CC-BY-NC-4.0","redistribute":false,"freshness":"catalog","canonical_effort":"low","status":"shipped","games":["mtg"],"tos_notes":"https://scryfall.com/docs/api — rate limit 10 req/s suggested; identify yourself in User-Agent. Bulk dumps refresh daily ~01:00 UTC.","user_agent_suffix":"(scryfall-ingest)","rate_limit":{"rps":5,"burst":10},"last_run":{"_unavailable":true,"reason":"never_run"}},{"id":"cardrush","name":"CardRush (JP)","description":"Japanese retail prices across the CardRush family of subdomains. Confirmed: One Piece, Pokémon, Dragon Ball Super CCG. Speculative subdomains registered for MTG, Yu-Gi-Oh!, Digimon, Vanguard, Weiß Schwarz, Flesh and Blood, Lorcana, Battle Spirits Saga, and DBF Fusion World — those subdomains may or may not exist at CardRush; the first scrape confirms or yields `subdomain_unconfirmed`. HTML scrape; A-condition first, fallback to base. On-demand only.","upstream":"https://www.cardrush-op.jp","catalog_section":"the-tributaries.md#23-cardrush-jp--already-partial","access":"scrape","license":"internal-only","redistribute":false,"freshness":"price_current","canonical_effort":"high","status":"partial","games":["op","pkm","dbs","dbf","mtg","ygo","dmw","vng","wei","fab","lgr","bsr"],"tos_notes":"Site ToS forbids commercial redistribution of compiled price data; internal-decision use is the safer position. Use browser User-Agent to avoid trivial bot blocks; back off on errors.","user_agent_suffix":"(cardrush-ingest)","rate_limit":{"rps":0.5,"burst":2},"last_run":{"triggered_at":"2026-05-14 02:00:23.076291+00","finished_at":null,"status":"running","spec_version":"1","triggered_by":"cron","rows_read":0,"rows_normalized":0,"rows_written":0,"rows_quarantined":0,"errors":0,"notes":null,"age_hours":9.9}},{"id":"pokemon-tcg-api","name":"Pokémon TCG API","description":"Pokémon TCG — every set, every English printing, images, TCGplayer + Cardmarket prices via partner sourcing. Paginated REST API at api.pokemontcg.io/v2.","upstream":"https://pokemontcg.io","catalog_section":"the-tributaries.md#32-pokémon-tcg-api-pokemontcgio","access":"app-token","license":"mit","license_spdx":"MIT","redistribute":true,"freshness":"catalog","canonical_effort":"low","status":"shipped","games":["pkm"],"tos_notes":"Free public API, optional X-Api-Key header for higher rate limits. https://docs.pokemontcg.io/getting-started/ — attribution requested for derived works.","user_agent_suffix":"(pokemon-tcg-api-ingest)","rate_limit":{"rps":1,"burst":5},"last_run":{"_unavailable":true,"reason":"never_run"}},{"id":"ygoprodeck","name":"YGOPRODeck","description":"Yu-Gi-Oh! — full card database including all printings, archetypes, prices via partner sourcing. Bulk endpoint cardinfo.php; no auth.","upstream":"https://db.ygoprodeck.com","catalog_section":"the-tributaries.md#33-ygoprodeck-yu-gi-oh","access":"public-api","license":"cc-by","redistribute":true,"freshness":"catalog","canonical_effort":"medium","status":"shipped","games":["ygo"],"tos_notes":"Open public API. Attribution requested; commercial use allowed with attribution. https://ygoprodeck.com/api-guide/","user_agent_suffix":"(ygoprodeck-ingest)","rate_limit":{"rps":1,"burst":3},"last_run":{"_unavailable":true,"reason":"never_run"}},{"id":"tcgplayer","name":"TCGplayer","description":"US market leader. Two read modes: catalog walk (seed-set, weekly bulk) and pricing refresh (5-min hot-watch during US trading + nightly full). OAuth2 client_credentials. Partner-tier license — display + internal computation OK, bulk re-export restricted.","upstream":"https://api.tcgplayer.com","catalog_section":"the-tributaries.md#21-tcgplayer-us-market-leader","access":"oauth2","license":"partner-redistributable","redistribute":false,"freshness":"price_current","canonical_effort":"medium","status":"partial","games":["mtg","pkm","ygo","op","dbs","dbf","lgr","fab","dmw","vng","wei","bsr"],"tos_notes":"Marketplace data is partner-tier-restricted; per-store buyer offers stay with the store. Apply for developer access at developer.tcgplayer.com; OAuth2 partner application required. https://docs.tcgplayer.com/","user_agent_suffix":"(tcgplayer-ingest)","rate_limit":{"rps":5,"burst":20},"last_run":{"_unavailable":true,"reason":"never_run"}},{"id":"cardmarket","name":"Cardmarket","description":"European market leader. Largest MTG catalog in EU; full Pokémon, Yu-Gi-Oh, One Piece, Lorcana, FaB, Digimon coverage. OAuth1 signed requests; partner-tier license.","upstream":"https://api.cardmarket.com","catalog_section":"the-tributaries.md#22-cardmarket-eu-market-leader","access":"oauth1","license":"partner-redistributable","redistribute":false,"freshness":"price_current","canonical_effort":"medium","status":"planned","games":["mtg","pkm","ygo","op","lgr","fab","dmw"],"tos_notes":"Free for personal-account reads with reasonable rate limits; paid tier for write. Commercial data downstream restrictions apply. Apply at api.cardmarket.com.","user_agent_suffix":"(cardmarket-ingest)","rate_limit":{"rps":2,"burst":5},"last_run":{"_unavailable":true,"reason":"never_run"}},{"id":"ebay","name":"eBay","description":"eBay marketplace ingest. v0 ships Browse API (current asks) on EBAY_GB; the same SourceModule branches to Marketplace Insights (90-day sold-comp history) once partner application is approved. Watch-list-driven: walks operator-curated SKU list per run, cross-checks parsed-title-SKU against expected SKU before write. Substrate-honest about sku-drift, low-confidence parses, and excluded conditions (damaged / counterfeit / proxy / sealed-bundle).","upstream":"https://api.ebay.com","catalog_section":"the-tributaries.md#25-ebay-full-marketplace-not-just-order-import","access":"oauth2","license":"partner-redistributable","redistribute":false,"freshness":"market_signal","canonical_effort":"very-high","status":"partial","games":[],"tos_notes":"eBay developer license: data licensed for partner-display use, not bulk redistribution. PWCC (eBay Vault) data carries additional restrictions. See https://developer.ebay.com/develop/apis/api-license-agreement. Marketplace Insights API is Limited Release — partner application + category whitelist required.","user_agent_suffix":"(ebay-comps-ingest)","rate_limit":{"rps":5,"burst":20},"last_run":{"_unavailable":true,"reason":"never_run"}}],"planned_slots":["cardmarket","cardtrader","limitless-tcg","edhrec","bandai-tcg","psa-registry","beckett-registry","shopify","stripe","ctcg-wholesale-rds","ctcg-storefront-rds"],"conventions":{"license_tiers":"cc0 / cc-by / cc-by-nc / cc-by-sa / mit / partner-redistributable / internal-only / proprietary. `redistribute: true` is only valid with cc0/cc-by/cc-by-sa/mit; the audit (pnpm audit:tributaries check 7) enforces this.","access_methods":"public-api / app-token / oauth2 / oauth1 / scrape / partner / paid-feed / blocked.","freshness_keys":"catalog (24h) / price_current (5min) / price_historical (immutable) / market_signal (1min) / status (30s) / methodology (24h) / identity (1h) / adopters (24h). See packages/data-spec/src/freshness.ts.","source_license_propagation":"When a response is composed from multiple sources, _meta.sources lists them in contribution order and _meta.source_license (optional, when declared) carries each one's redistribution tier. Absence is substrate-honest; presence is the platform's declaration."}},"_meta":{"spec_version":"1","endpoint":"/api/v1/sources","retrieved_at":"2026-05-14T11:55:09.424Z","as_of":"2026-05-14T11:55:09.424Z","sources":["ctcg-derived"],"freshness_seconds":30,"license":"CC0-1.0","request_id":"req_eedb98b3-843","deprecation":null,"next_link":null,"self_reference":{"this_endpoint":"/api/v1/sources","contains_self":true}}}