Discover/American Express API
live

American Express APIamericanexpress.com ↗

Fetch official rates, fees, APRs, rewards terms, and benefit terms for US American Express card offers via a single structured API endpoint.

Endpoint health
verified 9m ago
get_card_terms
1/1 passing latest checkself-healing
Endpoints
1
Updated
59m ago

What is the American Express API?

The American Express Card Terms API exposes 8 top-level response fields from the official rates, fees, and cost disclosure pages for US Amex consumer card offers, all through a single get_card_terms endpoint. A call returns the full interest-rate table, annual and transaction fee schedules, rewards earning rates with category definitions, benefit terms sections, and welcome offer eligibility text — structured as typed objects rather than raw HTML.

This call costs1 credit / call— charged only on success
Try it
Offer identifier segment of the terms URL, three dash-separated numbers. The default was accepted for both cards tested; an id the site reports as no longer available yields a stale_input error.
Card slug as it appears in the site's terms URL, lowercase letters, digits and hyphens (e.g. blue-cash-preferred-credit-card, blue-cash-everyday-credit-card).
→ api.parse.bot/scraper/f61a4e1f-7134-4769-9d8e-e6b1ac5a6f68/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/f61a4e1f-7134-4769-9d8e-e6b1ac5a6f68/get_card_terms?card_slug=blue-cash-preferred-credit-card' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace americanexpress-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: fetch and explore American Express card terms."""
from parse_apis.americanexpress_com_api import Amex, CardNotFound

client = Amex()

# Fetch the full terms disclosure for a card by its URL slug.
try:
    card = client.cards.get(card_slug="blue-cash-preferred-credit-card")
except CardNotFound:
    print("Card slug not recognised")
    raise

print(card.card_name, "|", card.offer_id)

# Interest-rate table: each row has a label, full text, and highlighted APRs.
for rate in card.interest_rates:
    print(rate.item, "->", ", ".join(rate.highlighted_values))

# Fee schedule: annual fee details, then transaction and penalty fee lists.
annual = card.fees.annual_fee
print("Annual fee:", annual.ongoing_fee, "(intro:", annual.introductory_fee or "none", ")")

for fee in card.fees.transaction_fees:
    print("Transaction fee:", fee.fee, "-", fee.text)

# Rewards earning rates (may be absent for non-cashback cards).
if card.rewards_terms is not None:
    for earn in card.rewards_terms.earn_rates:
        print(f"  {earn.rate_percent}% — {earn.description[:80]}")

# Offer-terms eligibility notice and sections.
if card.offer_terms is not None:
    for section in card.offer_terms.sections:
        print(section.title)

# Benefit terms are a flat list of titled paragraphs.
print(f"{len(card.benefit_terms)} benefit sections")
for bt in card.benefit_terms[:3]:
    print(" -", bt.title)

print("exercised: cards.get / InterestRate / FeeSchedule / RewardsTerms / OfferTerms / Section")
All endpoints · 1 totalmissing one? ·

Returns the official 'Important Information Regarding Rates, Fees, and Other Cost Information' disclosure for one US American Express card offer, as one object per call (single page fetch, no pagination). Includes the interest-rate table rows (purchase/balance-transfer/cash-advance/penalty APRs, paying interest, plan fee) with the site's highlighted values preserved, the fee table (introductory and ongoing annual fee, transaction fees, penalty fees), the Offer Terms section (eligibility notice, welcome-offer terms, annual-fee terms), the rewards earning terms (full text plus earn_rates and exclusions derived from that text, which is best-effort because the prose varies by card: on some cards two categories joined by a comma land in one description, so always treat text as authoritative), and every Benefit Terms section. The card is addressed by the slug used on the site's terms URL and an offer id such as 25330-10-0. A slug the site does not recognize or an offer id the site reports as no longer available returns a stale_input error with kind input_not_found. introductory_fee is null when the card has no introductory annual fee; rewards_terms is null if no benefit section contains percentage cash-back earn language; poid is the site's product offer id string.

Input
ParamTypeDescription
offer_idstringOffer identifier segment of the terms URL, three dash-separated numbers. The default was accepted for both cards tested; an id the site reports as no longer available yields a stale_input error.
card_slugrequiredstringCard slug as it appears in the site's terms URL, lowercase letters, digits and hyphens (e.g. blue-cash-preferred-credit-card, blue-cash-everyday-credit-card).
Response
{
  "type": "object",
  "fields": {
    "fees": "object: annual_fee {text, introductory_fee, ongoing_fee, highlighted_values}, transaction_fees[] and penalty_fees[] each {fee, text, highlighted_values}",
    "poid": "site product offer id string (e.g. KBFB:9991), null if absent",
    "offer_id": "echo of the offer id used",
    "card_name": "card display name from the page title",
    "card_slug": "echo of the requested slug",
    "offer_terms": "object: eligibility_notice (string or null) and sections[] of {title, text} for welcome offer / annual fee offer terms",
    "benefit_terms": "array of every Benefit Terms section as {title, text}",
    "rewards_terms": "object or null: title, text (full rewards earning terms incl. caps and category definitions), earn_rates[] of {rate_percent, description} derived from the text, exclusions (the paragraph listing purchases that do not earn)",
    "interest_rates": "array of rate-table rows: item (row label), text (full cell text, paragraphs separated by newline), highlighted_values (values the site bolds, e.g. APRs)"
  },
  "sample": {
    "data": {
      "fees": {
        "annual_fee": {
          "text": "$0 intro annual fee for the first year, then $95",
          "ongoing_fee": "$95",
          "introductory_fee": "$0",
          "highlighted_values": [
            "$0 intro annual fee",
            "$95"
          ]
        },
        "penalty_fees": [
          {
            "fee": "Late Payment",
            "text": "Up to $40.",
            "highlighted_values": [
              "$40."
            ]
          },
          {
            "fee": "Overlimit",
            "text": "None",
            "highlighted_values": [
              "None"
            ]
          }
        ],
        "transaction_fees": [
          {
            "fee": "Balance Transfer",
            "text": "Either $5 or 3% of the amount of each transfer, whichever is greater.",
            "highlighted_values": [
              "$5",
              "3%"
            ]
          },
          {
            "fee": "Foreign Transaction",
            "text": "2.7% of each transaction after conversion to US dollars.",
            "highlighted_values": [
              "2.7%"
            ]
          }
        ]
      },
      "poid": "KBFB:9991",
      "offer_id": "25330-10-0",
      "card_name": "Blue Cash Preferred® Card",
      "card_slug": "blue-cash-preferred-credit-card",
      "offer_terms": {
        "sections": [
          {
            "text": "After you submit your application and before you accept the Card (if you are approved), we will tell you if you are eligible for a welcome offer ...",
            "title": "As High As $300 Cash Back Welcome Offer"
          },
          {
            "text": "The introductory annual fee for the Blue Cash Preferred ® Card from American Express will be $0 for the first year of Card Membership. After that, the annual fee will be $95.",
            "title": "Annual Fee"
          }
        ],
        "eligibility_notice": "You may not be eligible to receive the welcome offer, intro APR offer, and intro plan fee offer if you have or have had this Card ..."
      },
      "benefit_terms": [
        {
          "text": "Enrollment through American Express is required to receive the benefit. ...",
          "title": "$120 Disney Streaming Credit"
        },
        {
          "text": "Account Managers must be at least 18 years old and have a U.S. Mailing Address and Social Security Number.",
          "title": "Account Manager"
        }
      ],
      "rewards_terms": {
        "text": "Basic Card Members will earn cash back only on eligible purchases ... 6% cash back on the first $6,000 of eligible purchases in a calendar year (then 1%) at supermarkets located in the U.S. ...",
        "title": "Blue Cash Reward Dollars on Eligible Purchases",
        "earn_rates": [
          {
            "description": "the first $6,000 of eligible purchases in a calendar year (then 1%) at supermarkets located in the U.S. (superstores, convenience stores, warehouse clubs, and meal-kit delivery services are not considered supermarkets)",
            "rate_percent": 6
          },
          {
            "description": "eligible purchases on transit, including trains, taxicabs, ride share services, ferries, tolls, parking, buses, and subways (airfare, car rental and cruises are not considered transit)",
            "rate_percent": 3
          },
          {
            "description": "all other eligible purchases",
            "rate_percent": 1
          }
        ],
        "exclusions": "Eligible purchases are purchases for goods and services minus returns and other credits. Eligible purchases do NOT include fees or interest charges, balance transfers, cash advances, ..."
      },
      "interest_rates": [
        {
          "item": "Annual Percentage Rate (APR) for Purchases",
          "text": "0% introductory APR for the first 12 months from the date of account opening.\nAfter that, your APR will be 19.74% to 28.74%, based on your creditworthiness and other factors as determined at the time of account opening. This APR will vary with the market based on the Prime Rate.",
          "highlighted_values": [
            "0%",
            "19.74% to 28.74%,"
          ]
        },
        {
          "item": "APR for Cash Advances",
          "text": "28.99%\nThis APR will vary with the market based on the Prime Rate.",
          "highlighted_values": [
            "28.99%"
          ]
        }
      ]
    },
    "status": "success"
  }
}

About the American Express API

What get_card_terms Returns

The get_card_terms endpoint accepts two inputs: a required card_slug (e.g. blue-cash-preferred-credit-card) that identifies the card product, and an optional offer_id (three dash-separated numbers) that targets a specific promotional offer. The response is a single object — no pagination. The interest_rates array contains one item per row of the regulatory rate table, with each item carrying the row label (item), full cell text with newline-separated paragraphs (text), and a highlighted_values array pulling out the numeric APR values for easy access.

Fees, Rewards, and Offer Terms

The fees object breaks down the annual fee into introductory_fee, ongoing_fee, and highlighted_values, while transaction_fees and penalty_fees arrays list every other fee line. The rewards_terms object includes a title, full text (covering earning caps and category definitions), and an earn_rates array of objects with rate_percent and a descriptor — useful for parsing tiered cashback or points structures without string-splitting prose. offer_terms carries welcome offer eligibility notices and sections covering annual fee offer terms.

Benefit Terms and Identification Fields

The benefit_terms array returns every named benefit section as a {title, text} pair, covering card perks described in the terms document. Identification fields card_name, card_slug, offer_id, and poid (the site's internal product-offer identifier string, e.g. KBFB:9991, when present) are echoed back on every response, making it straightforward to match results to the request or log which offer version was fetched.

Reliability & maintenanceVerified

The American Express API is a managed, monitored endpoint for americanexpress.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when americanexpress.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official americanexpress.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
9m ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Comparing purchase APR ranges across multiple Amex card slugs for a card comparison tool
  • Extracting earn_rates arrays to display tiered cashback or points structures in a rewards optimizer
  • Monitoring annual_fee introductory vs. ongoing values to detect promotional fee waivers
  • Pulling benefit_terms sections to populate a card benefits database or knowledge base
  • Surfacing eligibility_notice text from offer_terms to warn users about welcome offer restrictions
  • Archiving penalty_fees and transaction_fees schedules for regulatory compliance records
  • Tracking poid values to detect when American Express rotates to a new offer version for the same card
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does American Express have an official public developer API?+
American Express offers developer APIs aimed at merchant and payment processing integrations at developer.americanexpress.com, but those do not expose consumer card terms, APR tables, or rewards earning structures. This API covers that disclosure data.
What does the interest_rates array actually contain?+
Each element corresponds to one row in the regulatory rate disclosure table — for example, Purchase APR, Balance Transfer APR, or Cash Advance APR. Every item includes the row label (item), the full cell text with paragraph breaks preserved as newlines (text), and a highlighted_values array containing just the numeric rate values extracted from that cell.
Does the API cover multiple Amex card products, or only Blue Cash Preferred?+
The endpoint is parameterized by card_slug and offer_id, so it works for any US Amex consumer card terms page that follows the standard URL structure — not only Blue Cash Preferred. Pass a different card_slug value (e.g. gold-card) to retrieve terms for that product.
Does the API cover card terms pages for American Express business cards or non-US markets?+
The current endpoint is scoped to US consumer card terms pages. Business card terms pages and non-US market disclosures are not currently covered. You can fork the API on Parse and revise it to add endpoints targeting those URL patterns.
How fresh is the data, and will it reflect a new limited-time offer automatically?+
Each call fetches the current state of the terms page for the given card_slug and offer_id at request time. If American Express updates the page — for example, changing the welcome offer or rotating the poid — the next call will return the updated values. However, if a new offer_id is published under a different URL segment, you would need to pass that new offer_id explicitly; the API does not enumerate all active offer IDs.
Page content last updated . Spec covers 1 endpoint from americanexpress.com.
Related APIs in FinanceSee all →