The open database of credit cards.

Community-maintained metadata for cards issued in the United States, Canada, and China. One schema-validated JSON file per card, reviewed in public, served from a free CDN. No keys, no quotas, no signup.

Cards
189
Countries
US  CA  CN
Formats
JSON · CSV · YAML
Licenses
MIT + CC BY 4.0

Get the data

The catalog is committed to the repository and mirrored on jsDelivr. Pinned release URLs are immutable and globally cached, so production use costs nothing and needs no account.

CDN, pinned

Recommended for production. Tag URLs never change and have no rate limits.

https://cdn.jsdelivr.net/gh/thedavidweng/opencard-db@v0.2.0/exports/cards-all.json

CDN, latest

Tracks the newest merged data. Cached for about 12 hours, good for prototyping.

https://cdn.jsdelivr.net/gh/thedavidweng/opencard-db@main/exports/cards-all.json

Releases

Every tagged release ships the same exports as downloadable assets.

curl -LO https://github.com/thedavidweng/opencard-db/releases/latest/download/cards.csv

One file per card, one contract for all of them

Every card lives in data/{us,ca,cn}/ as a single JSON document validated against schema.json in CI. Records cover the numbers people actually compare.

Fees
Annual fee, first-year terms, FX fee percentage
APR
Purchase ranges with variable or fixed type
Rewards
Earning currency, base rate, category multipliers and caps
Provenance
Cited sources per card, archived against link rot
Card art
Graded faces with SHA lineage, from issuer art to lossless Apple Pay exports
{
  "id": "us-chase-sapphire-preferred",
  "name": "Chase Sapphire Preferred® Card",
  "issuer": "Chase",
  "network": "visa",
  "annual_fee": { "amount": 95, "currency": "USD" },
  "fx_fee": { "percent": 0 },
  "rewards": {
    "currency_label": "Ultimate Rewards points",
    "base_rate": { "points_per_dollar": 1 },
    "categories": [
      { "label": "Travel via Chase Travel",
        "points_per_dollar": 5 }
    ]
  }
}

A REST API you can own

A read-only /v1 Worker with filtering, search, and per-card lookup. Deploy your own instance on the Cloudflare free plan in minutes, or prototype against the official best-effort endpoint.

The official instance asks for a real User-Agent and is rate limited. Production traffic should self-host.

GET /v1/health
GET /v1/meta
GET /v1/cards?country=us
GET /v1/cards/us-chase-sapphire-preferred
GET /v1/search?q=sapphire

Built by people who read the fine print

Adding a card is a pull request. CI validates the schema, checks your sources, and labels the PR for review.

  1. Copy the template

    templates/card.template.json into data/{country}/

  2. Fill in the fields

    Cite the issuer page for every number you enter

  3. Validate locally

    npm run validate runs the same checks as CI

  4. Open a PR

    A reviewer checks your sources and merges

Card art from your own wallet

On a Mac with your cards in Apple Pay, the export CLI scans your Wallet, diffs it against the live database, and helps you open an art PR. Everything runs locally. Nothing is uploaded.

npx opencard-export