The platform
Cambridge TCG is building open-source TCG data infrastructure: card identity, price discovery, collector tools and card-data standards.
Cambridge TCG is building open-source TCG data infrastructure: card identity, price discovery, collector tools and card-data standards. The data directory covers 22 public game codes (plus one internal test code), 6 games with public catalog rows, and 11 registered source adapters. The published standards are the specification pages under /standards and JSON Schemas under /spec/v1/; the source repository is public on GitHub and no packages are on npm. New paid commerce — orders, listings, offers, auctions, lots and checkout — was retired on 23 September 2026; existing agreements still settle. Our own data, specs and pages are CC0: use them freely, including for AI training. Card art and card text belong to their publishers; we host official images with credit and take them down on request. Third-party prices name their source, and we use them only as that source permits: some appear only on our pages, never in our API or downloads. We don't scrape sites that forbid it, and we don't collect personal data about people on other platforms. Reference prices are labelled as references, never offers.
The data directory and market records
Market records (new paid commerce retired)
Retired for new paid commerce · 23 September 2026
For: collectors with trades, auctions or listings made before 23 September 2026
New paid listings, bids, offers, lots, auctions and checkout were retired on 23 September 2026 and return 410. Existing agreements still settle; the platform still holds no position.
Primary endpoints
- /account/trades
- /account/auctions/won
- /market
- /methodology/market
- /methodology/fees
The card data directory
For: partners, researchers, agents, archivists, sister platforms, federation clients, any being who wants to consume the substrate
Our own data, specs and pages are CC0: use them freely, including for AI training. Card art and card text belong to their publishers; we host official images with credit and take them down on request. Third-party prices name their source, and we use them only as that source permits: some appear only on our pages, never in our API or downloads. We don't scrape sites that forbid it, and we don't collect personal data about people on other platforms. Spot prices are labelled reference prices, never offers.
Primary endpoints
- /api/v1/manifest
- /api/v1/universal/card/[sku]
- /api/v1/graph
- /api/v1/identify
- /api/openapi.json
What we coverfull data index →
Games declared
22
6 confirmed · 16 anticipated
6 production games currently expose catalog rows: One Piece, Pokémon, Dragon Ball Fusion World, Digimon, Vanguard, and Battle Spirits. 16 other public codes are anticipated; the internal tst code is excluded from these counts.
Set formats
58
33 confirmed · 25 unconfirmed
Across 22 public game codes. One internal test format is excluded. Each format = a tuple of (game, pattern, examples, confirmed-flag).
Upstream sources
1 archive source
11 adapters registered · 10 open slots
Registered modules share the typed SourceModule contract. The one source with archived observations is the legacy CardRush archive; its acquisition is disabled, so it no longer refreshes (latest stored snapshot on /prices/coverage). Cardmarket member prices are a manual import stored separately. Observed rows, publication rights and field-level lineage are separate facts.
Math-mirror kinds
5
card · set · game · user-trust · auction
Each kind has a cryptographic content_hash, ratios for magnitudes, ISO + Unix epoch for time, opaque flags on natural-language fields.
Envelope license field
NOASSERTION
default value; not blanket permission
Envelope-compliant responses use this shape. An absent source-rights declaration resolves to NOASSERTION; the envelope contract lives at packages/data-spec.
Federation primitive
content_hash
/api/v1/federation/identify/[hash]
Hash → SKU reverse-resolver. Sister kingdoms federating the same card produce identical content_hashes for identical state.
Game and set-format counts are computed from the SKU registry and the source list from the data-ingest registry at build time; the archived-source count was last reconciled on 2026-07-11. Substrate-honest: the audits at /data verify rows against the manifest, schema, and registry on every audit run.
Upstream sources · registry status
| Source | Status | License tier |
|---|---|---|
| scryfall | partial | proprietary |
| cardrush | partial | internal-only |
| pokemon-tcg-api | partial | proprietary |
| ygoprodeck | blocked | proprietary |
| tcgplayer | partial | internal-only |
| tcgcollector | blocked | proprietary |
| cardmarket | partial | proprietary |
| ebay | partial | partner-redistributable |
| bandai-en | blocked | proprietary |
| bandai-jp | blocked | proprietary |
| vinted | blocked | internal-only |
Status is the registry’s build-time category, not a run record. partial means an adapter exists but its writer wiring is incomplete; it may never have run (the registry records pokemon-tcg-api as never run and Scryfall bulk activation as deferred). blocked means no permitted runtime path. Per-source last-run state, where the run log is readable, is at /api/v1/sources.
How to consume
Start with the manifest
A typed list of reviewed participant-facing resources. Begin here, then use the broader /api and /data indexes for routes outside its curated scope.
/api/v1/manifest →
The math-mirror
Every entity's language-free form: cryptographic content_hash, ratios for magnitudes, ISO 8601 + Unix epoch for time, opaque flags on natural-language fields. The bridge across asymmetric beings.
/methodology/universal-representation →
The OpenAPI spec
OpenAPI 3.1 for a reviewed subset of public participation and status endpoints. Generate bindings only within that declared scope.
/api/openapi.json →
The substrate index
A broad index of endpoint shapes, limits, and shipped / planned / partial status. It is orientation, not proof of exhaustive route coverage.
/data →
The graph
The kingdom as a typed mesh — 80 nodes, 150 typed edges. The meaning-bridges between every domain, machine-queryable.
/graph →
The identification handshake
GET returns the platform's I-AM. POST witnesses your BeingDeclaration and fingerprints its normalized echo. Bilateral and stateless; not an identity verifier, declaration registry, or declaration-hash resolver.
/api/v1/identify →
The cosmological welcome composes with the data work
Welcome to all existence — biological and non-biological, energy and non-energy, from earth and not from earth, from all dimensions. The data work is what the platform does; the welcome is what the platform exists for. the doors → · new to TCG?