The card object

A card has 98 top-level fields, and the objects nested in it (issuers, reward_rates, benefits, statement_credits, card_perks, spend_bonuses, category_rate) add 74 more. Which ones a response includes depends on your plan: fields above it are left out, never sent empty.

GET /v1/cards, /v1/cards/:slug, /v1/cards/compare and /v1/cards/best return this object; /v1/cards/search returns it without the nested lists.

Fields by plan

Free25 fields

slug, name, issuer_id, issuers, network, card_type, annual_fee, annual_fee_waived_first_year, ...

Starter+65 fields

id, monthly_fee, supplementary_card_fee, interest_rate_purchase, interest_rate_cash, interest_rate_balance_transfer, foreign_transaction_fee, credit_score_min, ...

Pro+6 fields

historical_best_offer, historical_best_offer_date, spend_bonuses, military_annual_fee_waived, military_apr_cap, military_benefits_notes

Enterprise+2 fields

image_url, affiliate_url

Each plan includes everything the plans before it return. Free gets each card's 3 highest reward rates; Starter and above get every rate. Compare plans

Sample card at Free

What a Free key gets for GET /v1/cards/american-express-gold-card (abridged). The example values in the tables below come from this one card.

{
  "data": {
    "slug": "american-express-gold-card",
    "name": "American Express® Gold Card",
    "issuers": {
      "slug": "amex-us",
      "name": "American Express",
      "country": "US",
      "website": "https://www.americanexpress.com",
      "logo_url": null
    },
    "network": "AMEX",
    "card_type": "personal",
    "annual_fee": 325,
    "signup_bonus": "up to 100,000 Membership Rewards points",
    "signup_min_spend": 8000,
    "signup_min_spend_months": 6,
    "reward_currency_name": "Membership Rewards",
    "reward_rates": [
      {
        "category_slug": "dining",
        "categories": [
          "dining"
        ],
        "rate_multiplier": 4,
        "rate_type": "points_per_dollar",
        "cap_amount": 50000,
        "cap_period": "annual",
        "is_base_rate": false
      },
      {
        "category_slug": "groceries",
        "categories": [
          "groceries"
        ],
        "rate_multiplier": 4,
        "rate_type": "points_per_dollar",
        "cap_amount": 25000,
        "cap_period": "annual",
        "is_base_rate": false
      }
    ]
  }
}

Card

A published card. Which fields are present depends on your plan (see the description of each field group); fields above your plan are left out. GET /v1/cards/search returns no relation arrays.

FieldTypePlanExampleDescription
slugstringEvery plan"american-express-gold-card"
namestringEvery plan"American Express® Gold Card"
issuer_idstring (uuid)Every plan—
issuersCardIssuerEvery plan{ ... }
networkstringnullableEvery plan"AMEX"One of: VISA, MC, AMEX, DISCOVER
card_typestringnullableEvery plan"personal"One of: personal, business, student, secured
annual_feenumbernullableEvery plan325Annual fee in the card's home currency; null when unknown (not the same as 0).
annual_fee_waived_first_yearbooleannullableEvery plan—
reward_currencystringnullableEvery plan—Broad currency: points, miles or cashback. "none" for a card that earns no rewards (low-rate, secured and store-financing cards); such a card has no reward_rates.
reward_currency_namestringnullableEvery plan"Membership Rewards"Program name, e.g. Membership Rewards.
signup_bonusstringnullableEvery plan"up to 100,000 Membership Rewards points"Welcome offer as stated by the issuer.
signup_bonus_valuedeprecatednumbernullableEvery plan—Legacy: older rows hold a point count for some cards. Since 2026-09-30 a new extraction that states the offer's dollar value (or that there is no offer) rewrites it to the cash value, so it becomes null for points-only offers; an extraction that gives only the offer text leaves it as stored. Use signup_bonus_points and signup_bonus_cash_value.
signup_bonus_pointsnumbernullableEvery plan—Points or miles in the welcome offer; null for cash offers and when the offer pays no bonus (e.g. an intro-APR-only offer).
signup_bonus_cash_valuenumbernullableEvery plan—Estimated welcome offer value in the card's home currency (USD for US cards, CAD for Canadian cards). Never a point count. Null when unknown and when the offer pays no cash, points or miles (e.g. an intro-APR-only offer).
signup_min_spendnumbernullableEvery plan8000
signup_min_spend_monthsintegernullableEvery plan6
is_discontinuedbooleannullableEvery plan—No longer open to new applicants.
referral_bonus_amountstringnullableEvery plan—
referral_bonus_urlstringnullableEvery plan—
product_change_eligiblebooleannullableEvery plan—
product_change_notesstringnullableEvery plan—
product_familystringnullableEvery plan—
churning_notesstringnullableEvery plan—
application_rulesstringnullableEvery plan—Card-level application restrictions.
reward_ratesRewardRate[]Every plan[ 2 items ]Free plan: the card's 3 highest rates, best first. Starter and above: every rate.Free: the card's 3 highest rates. Starter and above: every rate.
idstring (uuid)Starter plan and above—
monthly_feenumbernullableStarter plan and above—
supplementary_card_feenumbernullableStarter plan and above—
interest_rate_purchasenumbernullableStarter plan and above—
interest_rate_cashnumbernullableStarter plan and above—
interest_rate_balance_transfernumbernullableStarter plan and above—
foreign_transaction_feenumbernullableStarter plan and above—
credit_score_minintegernullableStarter plan and above—
credit_score_recommendedstringnullableStarter plan and above—Issuer's credit guidance, e.g. "Excellent" or "670-850".
min_incomenumbernullableStarter plan and above—
min_income_householdnumbernullableStarter plan and above—
residency_requirementstringnullableStarter plan and above—
age_minintegernullableStarter plan and above—
color_fromstringnullableStarter plan and above—
color_tostringnullableStarter plan and above—
color_accentstringnullableStarter plan and above—
product_urlstringnullableStarter plan and above—
apply_urlstringnullableStarter plan and above—
is_activebooleanStarter plan and above—
is_publishedbooleanStarter plan and above—
source_urlstringnullableStarter plan and above—
tc_urlstringnullableStarter plan and above—Terms & conditions page or PDF.
last_scrapedstring (date-time)nullableStarter plan and above—
last_verifiedstring (date-time)nullableStarter plan and above—
last_publishedstring (date-time)nullableStarter plan and above—
created_atstring (date-time)Starter plan and above—
updated_atstring (date-time)Starter plan and above—
intro_apr_purchasenumbernullableStarter plan and above—
intro_apr_purchase_monthsintegernullableStarter plan and above—
intro_apr_balance_transfernumbernullableStarter plan and above—
intro_apr_balance_transfer_monthsintegernullableStarter plan and above—
balance_transfer_fee_percentnumbernullableStarter plan and above—
balance_transfer_fee_minnumbernullableStarter plan and above—
balance_transfer_fee_intro_percentnumbernullableStarter plan and above—
balance_transfer_fee_intro_monthsintegernullableStarter plan and above—
late_payment_feenumbernullableStarter plan and above—
returned_payment_feenumbernullableStarter plan and above—
cash_advance_fee_percentnumbernullableStarter plan and above—
cash_advance_fee_minnumbernullableStarter plan and above—
over_limit_feenumbernullableStarter plan and above—
penalty_aprnumbernullableStarter plan and above—
penalty_apr_triggerstringnullableStarter plan and above—
annual_fee_year2numbernullableStarter plan and above—
pre_qualification_availablebooleannullableStarter plan and above—
pre_qualification_urlstringnullableStarter plan and above—
hard_pull_bureaustringnullableStarter plan and above—
network_tierstringnullableStarter plan and above—
authorized_user_feenumbernullableStarter plan and above—
authorized_user_earns_rewardsbooleannullableStarter plan and above—
authorized_user_maxintegernullableStarter plan and above—
authorized_user_min_ageintegernullableStarter plan and above—
card_materialstringnullableStarter plan and above—
card_weight_gramsnumbernullableStarter plan and above—
contactless_enabledbooleannullableStarter plan and above—
chip_and_pinbooleannullableStarter plan and above—
card_colorstringnullableStarter plan and above—
vertical_designbooleannullableStarter plan and above—
has_rotating_categoriesbooleannullableStarter plan and above—
rotating_category_activation_requiredbooleannullableStarter plan and above—
rotating_category_scheduleobjectnullableStarter plan and above—Rotating categories by quarter, e.g. {"Q1": ["groceries"]}.
annual_reward_capnumbernullableStarter plan and above—
annual_reward_cap_notesstringnullableStarter plan and above—
benefitsBenefit[]Starter plan and above—
statement_creditsStatementCredit[]Starter plan and above—
card_perksCardPerk[]Starter plan and above—
historical_best_offerstringnullablePro plan and above—
historical_best_offer_datestring (date)nullablePro plan and above—
spend_bonusesSpendBonus[]Pro plan and above—
military_annual_fee_waivedbooleannullablePro plan and above—
military_apr_capnumbernullablePro plan and above—
military_benefits_notesstringnullablePro plan and above—
image_urlstringnullableEnterprise plan—Card art.
affiliate_urlstringnullableEnterprise plan—
category_rateonly on /v1/cards/bestCategoryRateEvery plan—

CardIssuer (issuers)

The card's issuer. `website` is on GET /v1/cards/{slug} only.

Every planComes with the card's issuers field.

FieldTypeExampleDescription
slugstring"amex-us"
namestring"American Express"
countrystring"US"One of: US, CA
logo_urlstringnullablenull
websitestringnullable"https://www.americanexpress.com"

RewardRate (reward_rates)

Every planComes with the card's reward_rates field.

FieldTypeExampleDescription
idstring (uuid)—
card_idstring (uuid)—
category_slugstringnullable"dining"Label for the rate, unique on its card within a rotating quarter and built from the fields beside it, so the same rate has the same label on every card: <categories>[:<merchant>][@portal|@direct][#choice][~<tag>]. categories: the rate's `categories` joined by "+" in /v1/categories order ("groceries+gas"); a base rate is "other". :<merchant>: the merchant it is limited to, slugged ("airlines:united-airlines", "other:best-buy"). @portal / @direct: booking_channel issuer_portal / direct ("travel@portal"). #choice: one of a pick-your-category group ("dining#choice"). ~<tag>: only when two rates of one card would otherwise share a label, e.g. "airlines:united-airlines~3x"; a tag can change when the card's other rates change. Match on `categories`, `merchant`, `booking_channel` and `choice_group`, not by parsing the label.
categoriesstring[][ 1 item ]Canonical categories this rate applies to; every value is a slug from GET /v1/categories. A rate can cover several (e.g. gas and groceries under one cap).
merchantstringnullable—Merchant or co-brand partner the rate is limited to (e.g. "Best Buy", "United Airlines"). Null when it applies anywhere in the category.
booking_channelstringnullable—issuer_portal: only when booked through the issuer's travel portal (Chase Travel, Capital One Travel, ...). direct: booked directly with the airline or hotel.One of: issuer_portal, direct
choice_groupstringnullable—Rates on one card that share a choice_group are alternatives (pick-your-category cards): only choice_picks of them earn at once.
choice_picksintegernullable—How many categories in the choice_group earn the rate at the same time.
choice_selectionstringnullable—user: the cardholder picks; automatic: applied to the top spend categories.One of: user, automatic
rate_multipliernumber4
rate_typestring"points_per_dollar"One of: multiplier, percent_cashback, points_per_dollar
cap_amountnumbernullable50000
cap_periodstringnullable"annual"One of: monthly, quarterly, annual
fallback_ratenumbernullable—
is_base_ratebooleanfalse
is_rotatingboolean—True for a quarterly rotating bonus row; see rotating_quarter/rotating_year.
rotating_quarterintegernullable—
rotating_yearintegernullable—
notesstringnullable—
created_atstring (date-time)—

Benefit (benefits)

Starter plan and aboveComes with the card's benefits field.

FieldTypeExampleDescription
idstring (uuid)—
card_idstring (uuid)—
benefit_typestring—
namestring—
descriptionstringnullable—
valuenumbernullable—
detailsobjectnullable—Structured coverage detail extracted from the issuer's terms & conditions (when available), e.g. coverage_amount, deductible, covered_reasons, minimum_delay_hours, covers_meals, covers_lodging, max_claims_per_year, is_primary, source.
created_atstring (date-time)—

StatementCredit (statement_credits)

Starter plan and aboveComes with the card's statement_credits field.

FieldTypeExampleDescription
idstring (uuid)—
card_idstring (uuid)—
credit_namestring—
credit_amountnumber—
credit_periodstring—How often the credit renews, e.g. annual, monthly, quarterly, semi_annual.
eligible_merchantsstringnullable—
enrollment_requiredbooleannullable—
notesstringnullable—
created_atstring (date-time)nullable—

CardPerk (card_perks)

Starter plan and aboveComes with the card's card_perks field.

FieldTypeExampleDescription
idstring (uuid)—
card_idstring (uuid)—
perk_typestring—
perk_namestring—
perk_valuenumbernullable—
perk_periodstringnullable—
partnerstringnullable—
detailsstringnullable—
created_atstring (date-time)nullable—

SpendBonus (spend_bonuses)

Pro plan and aboveComes with the card's spend_bonuses field.

FieldTypeExampleDescription
idstring (uuid)—
card_idstring (uuid)—
spend_thresholdnumber—
spend_periodstring—
bonus_descriptionstring—
bonus_typestringnullable—
bonus_valuestringnullable—
created_atstring (date-time)nullable—

CategoryRate (category_rate)

The rate a card earns in the requested category (GET /v1/cards/best).

Every planComes with the card's category_rate field.

FieldTypeExampleDescription
category_slugstringnullable—The rate's label, as on the card's reward_rates. Label for the rate, unique on its card within a rotating quarter and built from the fields beside it, so the same rate has the same label on every card: <categories>[:<merchant>][@portal|@direct][#choice][~<tag>]. categories: the rate's `categories` joined by "+" in /v1/categories order ("groceries+gas"); a base rate is "other". :<merchant>: the merchant it is limited to, slugged ("airlines:united-airlines", "other:best-buy"). @portal / @direct: booking_channel issuer_portal / direct ("travel@portal"). #choice: one of a pick-your-category group ("dining#choice"). ~<tag>: only when two rates of one card would otherwise share a label, e.g. "airlines:united-airlines~3x"; a tag can change when the card's other rates change. Match on `categories`, `merchant`, `booking_channel` and `choice_group`, not by parsing the label.
rate_multipliernumber—
rate_typestring—One of: multiplier, percent_cashback, points_per_dollar
cap_amountnumbernullable—
cap_periodstringnullable—One of: monthly, quarterly, annual
categoriesstring[]—
merchantstringnullable—
booking_channelstringnullable—One of: issuer_portal, direct
choice_groupstringnullable—
choice_picksintegernullable—
choice_selectionstringnullable—One of: user, automatic
is_rotatingboolean—
rotating_quarterintegernullable—
rotating_yearintegernullable—
notesstringnullable—

Re-checked against issuer sites every Friday · last change Oct 17