EUR/USD 1.15785 -0.1% GBP/USD 1.35012 -0.09% USD/JPY 160.212 +0.01% USD/CHF 0.81283 +0.12% AUD/USD 0.71389 -0.09% USD/CAD 1.39152 +0.14% NZD/USD 0.58399 -0.89% BTC/USD 77,523.80 +0.18% ETH/USD 2,412.66 -0.17% · EUR/USD 1.15785 -0.1% GBP/USD 1.35012 -0.09% USD/JPY 160.212 +0.01% USD/CHF 0.81283 +0.12% AUD/USD 0.71389 -0.09% USD/CAD 1.39152 +0.14% NZD/USD 0.58399 -0.89% BTC/USD 77,523.80 +0.18% ETH/USD 2,412.66 -0.17% ·
7 min read currency pairs api

Which Currency Pairs API? Audit Demand Before You Buy Breadth

Most products query 5-20 pairs, not 170 currencies. How to audit real demand, tell majors from crosses and exotics, and stop paying for coverage you never call.

Which Currency Pairs API? Audit Demand Before You Buy Breadth

Every forex API landing page leads with breadth: 170 currencies, 200 countries, thousands of derived cross pairs. It is an easy number to print and an easy number to rank providers by. It is also, for most teams, the wrong number to shop on. A payments dashboard, a travel checkout, a treasury revaluation job — each of these queries a handful of pairs, thousands of times a day, and never touches the rest of the matrix.

The question worth answering before signing anything is narrower than which currency pairs API has the most pairs. It is: which pairs does this product actually request, how fresh do those quotes need to be, and what is the budget paying for on the pairs that are never called?

Key takeaways

  • Most production integrations settle on 5-20 pairs; audit request logs before comparing coverage counts.
  • Seven majors carry the bulk of global turnover — EUR/USD alone was roughly 23% of it in the BIS 2022 Triennial Survey.
  • Crosses can usually be derived from two USD legs; genuine exotics cannot be, and that is where breadth has real value.
  • Update frequency, uptime and consistent depth on your pairs beat a long tail of pairs nobody queries.
  • Pick the tier that fits the audited pair set and the request volume, then revisit it once real traffic exists.

Start with an audit, not a feature list

Coverage is the easiest specification to compare and the least predictive of whether an integration will work. The useful starting point is the product's own demand curve — the distribution of which pairs users, jobs and reports actually request.

Pull the numbers from logs, not from intuition

If an existing system already serves rates, thirty days of access logs will answer the question in a minute:

# Top requested pairs from an nginx access log
awk '{print $7}' /var/log/nginx/access.log \
  | grep -oE 'pair=[A-Z]{6}' \
  | sort | uniq -c | sort -rn | head -20

# Typical shape of the result:
#  184203 pair=EURUSD
#   96518 pair=GBPUSD
#   71440 pair=USDJPY
#   22107 pair=AUDUSD
#    9312 pair=USDCAD
#     418 pair=USDZAR

The pattern repeats across products with striking consistency: a short head of three to five pairs absorbing most traffic, a shoulder of another five to fifteen, and a tail of one-off requests that often turn out to be bots, typos or a single enterprise customer. That tail is worth understanding before it is worth paying for.

For greenfield products, model the demand instead

Without logs, the proxy is the customer list. Enumerate the billing currencies, the settlement currency, and the countries in the go-to-market plan for the next twelve months. A B2B SaaS selling into the EU, UK and Canada from a USD entity needs three pairs to invoice correctly — not a matrix of 5,000.

Majors, crosses and exotics — what the labels actually buy

Majors

The seven majors — EUR/USD, USD/JPY, GBP/USD, USD/CHF, AUD/USD, USD/CAD and NZD/USD — all have the dollar on one side. The BIS Triennial Survey put the US dollar on one side of roughly 88% of all trades in April 2022, with EUR/USD near 23% of global turnover and USD/JPY the next largest single pair. Liquidity that concentrated means tight spreads, dense tick flow and quotes that rarely gap. Every serious provider covers these well; they are not a differentiator.

Crosses

Crosses such as EUR/GBP, GBP/JPY or EUR/CHF omit the dollar. Many providers do not source them directly either — they compute them from two USD legs, so GBP/JPY = (GBP/USD) × (USD/JPY). That matters for two reasons. First, a derived cross inherits the error and staleness of both legs, so its effective precision is lower than a directly quoted one. Second, if the pairs are derived anyway, an application can derive them too, and the subscription only needs to cover the underlying majors. Worth asking a vendor directly: which crosses are sourced and which are calculated?

Exotics

Exotics — USD/TRY, USD/ZAR, USD/THB, USD/MXN and similar — are where breadth stops being decorative. They cannot be synthesised from majors, they carry wider and more variable spreads, and coverage genuinely differs between providers. A product with real exposure to emerging markets should evaluate exactly these pairs, ignore the headline count, and check the update cadence and historical depth on each one individually.

Typical product types and the pair sets they need

Product type Typical pairs Representative set Refresh need
SaaS invoicing / billing 3-6 EUR/USD, GBP/USD, USD/CAD, AUD/USD Daily close
E-commerce price display 8-15 Majors plus local quote currencies Hourly
Travel and booking 10-25 Majors plus destination currencies (THB, MXN, AED) Hourly to minutes
Fintech wallet / remittance 15-30 Majors, key corridors, several exotics Seconds
Trading dashboard or charting 20-40 Majors plus sourced crosses Sub-second
Treasury / ERP revaluation 5-20 Functional currency against each subsidiary Period-end fixes

Only the trading and remittance rows have a defensible case for wide coverage. The other four are served by a tight set queried often — a profile that rewards request headroom and update frequency far more than breadth.

Why unused breadth is a real cost

Paying for 170 currencies to use eight is not merely inefficient; it distorts the comparison. Tiers built around coverage typically bundle the pair count with the request quota, so the breadth upsell drags along a price step that has nothing to do with actual usage. Meanwhile the metrics that determine whether the integration works — quotes per second, latency, uptime, and how far back the historical series goes — are the ones that get traded away to afford it.

There is an engineering cost too. Endpoints that return the full matrix by default ship payloads two orders of magnitude larger than the application parses, which shows up as bandwidth, JSON parsing time and cache churn. Scoping the request is a one-line change with a measurable effect:

{
  "timestamp": "2026-08-31T09:14:02Z",
  "rates": [
    { "pair": "EUR/USD", "bid": 1.0842, "ask": 1.0843 },
    { "pair": "GBP/USD", "bid": 1.2715, "ask": 1.2717 },
    { "pair": "USD/JPY", "bid": 151.28, "ask": 151.30 }
  ]
}

Values above are illustrative. The point is the shape: three pairs, one timestamp, a payload small enough to poll aggressively without thinking about it.

What to compare instead of pair count

Once the audited pair set is written down, the shortlist criteria become concrete. Update frequency on those specific pairs — per-second, per-minute or daily — and whether it degrades on the less liquid ones. Request limits and what happens at the ceiling: throttling, hard cut-off, or overage billing. Historical depth, if any reporting or backtesting is planned, since that is a separate axis from live coverage. Response format and whether pairs can be filtered server-side. Published uptime, and whether it is measured or aspirational.

A short proof-of-concept settles most of it. Poll the five pairs that matter for a week, log timestamps and gaps, and compare the record against the marketing page. Providers that are strong on the majors show it immediately; providers padding a count show that too.

FAQ

How many currency pairs does a typical product actually need?

Most production integrations settle between 5 and 20 pairs. Billing and invoicing products often need fewer than six, while remittance and trading tools are the main cases that justify 30 or more.

Can crosses be calculated from USD pairs rather than subscribed separately?

Usually yes — multiplying or dividing two USD legs reproduces most crosses, and many providers compute them the same way internally. Directly sourced crosses are more accurate for spread-sensitive use cases, so it is worth asking which are sourced and which are derived.

Are exotic pairs worth paying extra for?

Only if the product has genuine exposure to those currencies, because exotics cannot be synthesised from majors. If they are needed, evaluate each one individually for update frequency and history rather than trusting a headline coverage number.

What matters more than pair count when comparing forex APIs?

Update frequency on the specific pairs in use, request limits, latency, historical depth and measured uptime. These determine whether an integration works; coverage of unused pairs does not.

How often should rates be refreshed?

Match the cadence to the decision being made: daily closes suit invoicing and accounting, hourly suits price display, and sub-second updates are only necessary where a user or algorithm trades on the number.

Live-Rates publishes real-time quotes on the majors and a broad set of crosses and exotics, with per-pair pages such as the EUR/USD live rate, GBP/USD live rate and USD/JPY live rate available to inspect before committing to anything. Audit the pair set first, then compare it against the Live-Rates plans page and pick the tier that matches real demand rather than a coverage headline.

Real-time forex rates for your app

Live bid/ask for the pairs you need, updated every second, with a simple JSON & XML API. Try it free for 7 days.