TickAtlas
Spread & execution cost Available Forex Gold Crypto

Spread Spectrum

Forex Spread Comparison Widget

Several pairs laid on a low-to-high execution-cost spectrum with current and average markers. Comparative described statistics, not a customer’s fill cost or a recommendation.

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
Current + average spread across several pairs.
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

Several pairs laid on a low-to-high execution-cost spectrum with current and average markers. Comparative described statistics, not a customer’s fill cost or a recommendation.

Who it's for

  • Broker comparison/pricing page across several instruments.
  • Trading-education page on execution cost.
  • Docs example for the spread kind with N symbols.
  • Market-dashboard cost-transparency module.

The data contract

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

spread kind: compare · N symbols · 24h

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 symbols.
Theme
embed snippet
<script src="https://tickatlas.com/widgets/embed.js?w=spread-spectrum&k=wk_YOUR_KEY&symbols=XAUUSD,EURUSD,GBPUSD,USDJPY,AUDUSD"></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 “spread-spectrum” 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.
symbols symbols No Comma-separated symbols to display (max 5; extras are dropped), each within the widget’s allowed set. Omit for the widget’s curated default set. Allowed: BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD. Default: XAUUSD,EURUSD,GBPUSD,USDJPY,AUDUSD.
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/spread-spectrum/spread

Endpoint parameters

Parameter Type Required Description
symbols symbols No Comparison widgets: comma-separated symbols. Its presence selects the multi (assets[]) response. Allowed: BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD. Default: XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD. This widget pins it to its full configured set.
period enum No Window for the average / min / max / stddev spread statistics. Allowed: 1h, 24h, 7d, 30d. Default: 24h. This widget pins it to 24h.

This widget renders the symbol set configured for it, so its embed takes no symbol — it always requests its full allowed set: BTCUSD, XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCHF, USDCAD, NZDUSD, ETHUSD.

Response

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

{ period, assets:[{ symbol, current_pips, avg_pips, min_pips, max_pips, has_data }] }

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 symbols show by default?

XAUUSD, EURUSD, GBPUSD, USDJPY, AUDUSD. BTCUSD is not in the default set.

Can I choose different symbols?

Yes, symbols= as a comma list, max 5, from the ten covered instruments.

What's plotted?

Each pair's current and average spread on a low-to-high spectrum — comparative statistics, not a customer's fill cost or a recommendation.

How often does it refresh?

~15-second cached poll; the last verified reads are held on a gap.

Is it free to preview?

Yes, synthetic and keyless; the live widget is a paid subscription.

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.