TickAtlas
Price & rates Available Forex Gold Crypto

FX Rate Board

Live Forex Rates Widget

A compact, always-current rate line for one FX pair — a live mid-market quote for a remittance, travel, or pricing page. It is a reference rate, not a customer fill. Choose the pair with symbol=; it renders inside a sandboxed Shadow DOM and refreshes every 15 seconds against cached quotes.

Live preview SIMULATED

The real embed in preview mode — synthetic data, no API key, zero network calls. Live data starts once you add your key.

From
$9.99 /mo
Included
1 domain slot
Shows
Live mid-market quote · one pair · reference rate only.
per month $9.99
Get it →

Base covers one domain; each extra slot adds half the base. Manage domains and your key from your dashboard.

What it shows

A compact, always-current rate line for one FX pair — a live mid-market quote for a remittance, travel, or pricing page. It is a reference rate, not a customer fill. Choose the pair with symbol=; it renders inside a sandboxed Shadow DOM and refreshes every 15 seconds against cached quotes.

Who it's for

  • Cross-border payments pricing page next to the transfer-fee breakdown.
  • Travel or remittance landing page showing the live rate for the marketed corridor.
  • Broker or fintech docs page demonstrating a live-rate embed.
  • Market-data sidebar on a finance blog post.

The data contract

This widget reads only public market data through our hosted gateway — no account data, no order book, no personal data.

quote · one symbol

The gallery and this preview run in SIMULATED mode — synthetic shapes, no key, no network. Live data flows only after checkout, on your authorized domains.

Embed it

  1. Subscribe from your dashboard and add the domains you'll embed on.
  2. Copy your public wk_ key from the widget panel.
  3. Drop the snippet below into your page, swapping in your key and symbol.
Theme
embed snippet
<script src="https://tickatlas.com/widgets/embed.js?w=fx-rate-board&k=wk_YOUR_KEY&symbol=EURUSD"></script>

Default is light — the snippet stays clean. Pick Dark or Auto (Auto follows each visitor’s system theme) to append &theme= and preview it live.

Embed parameters

The querystring on the embed.js script tag above.

Parameter Type Required Description
w string Yes Widget slug — fixed to “fx-rate-board” for this widget.
k string No Your public wk_ key. With it the widget goes live on your authorized domains; omit it for the SIMULATED preview (synthetic data, zero network). Default: preview mode.
symbol symbol No The symbol to display, uppercased. Must be within the widget’s allowed set. Allowed: BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD. Default: BTCUSD.
mode enum No Force preview even with a key, e.g. for a staging page. Allowed: live, preview. Default: live when k is present, else preview.
theme enum No Colour theme. light (default) is today’s look; dark uses a WCAG-AA dark palette; auto follows each visitor’s system (prefers-color-scheme). Omit for light. Allowed: light, dark, auto. Default: light.

The wk_ key is public by design — it only works on the domains you authorize, and you can revoke it any time from your dashboard.

Data endpoint

The embed calls this hosted endpoint for you on each refresh, using a short-lived token minted from your wk_ key — it never carries your key to the browser. These are its parameters and the values this widget uses.

GET /widgets/api/fx-rate-board/quote

Endpoint parameters

Parameter Type Required Description
symbol symbol No One symbol; must be within the widget’s allowed set (server-enforced). Allowed: BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD. Default: BTCUSD.

Set symbol on the embed to any one of this widget’s allowed symbols (BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD); it defaults to BTCUSD if omitted. A symbol outside this set is rejected by the gateway before any data is fetched, and the widget shows its “unavailable” state.

Response

Every response is a JSON envelope { success, widget, cached, data }. The data object for this widget:

{ symbol, bid, ask, spread }

Good to know

Theming & isolation
The widget renders inside a sandboxed Shadow DOM with all:initial, so your page's CSS and scripts can't reach in and its styles can't leak out. It fits the width of its container — never wider — and brings its own light palette.
Refresh, caching & limits
It refreshes about every 15 seconds against cached data, so many visitors collapse to one computation on our side. Requests are rate-limited per key and per domain; over the limit the gateway returns 429 and the widget simply keeps its last frame until the next tick.
When data is unavailable
If a symbol has no current data, the widget shows an explicit “unavailable” / “no data” state — never a fabricated or zeroed value. A revoked key or an unauthorized domain leaves the widget in that same state; it never throws on your page.
Pricing & domain slots
Billed monthly per domain slot. The base ($9.99/mo) covers one domain; each extra slot adds half the base. Slots are fixed at purchase — cancel any time and the embed stays live to the end of the paid month, then stops.

Frequently asked

Which pairs can this widget show?

One symbol per embed, chosen via symbol= from ten covered instruments (majors, gold, BTCUSD, ETHUSD). Despite the 'board' name it renders a single quote, not a multi-pair table.

How often does the rate refresh?

~15-second cached refresh; if the upstream feed stalls, the widget holds the last verified quote instead of showing a fabricated number.

Do I need a key to try it?

No, preview mode uses synthetic sample data with no key. A live embed on your domain requires a paid TickAtlas widget subscription.

Is this a dealable rate?

No, it's a reference bid/ask, not a fill price or a rate you can execute against.

Related resources

Prefer to pull this data through the API instead of an embed? These endpoints and guides cover the same market data.

Embed it in minutes

Preview it with synthetic data and no key, then add your key to go live on your domains — from $9.99/mo per domain.