For publishers

Add live prop firm data to your website.

Embed live spread comparisons, trading cost calculators, provider comparisons and PropSpread Scores with a few lines of code. No account, no API key, no build step.

  • Six widget types. Comparisons, calculators, snapshots and badges.
  • 1.1 kB loader. Plus one small module per widget type on the page.
  • No API key. Currently available without an account or a token.
  • Responsive. Layout follows the widget's own width, not the viewport.
  • Labelled data. Live, delayed, stale, closed and unavailable are stated in words.

Live widget, not a mockup

This is the real embed running against the same data your readers would see.

Why embed

Give readers something useful.

Comparison articles age badly. A widget that reads live data does not.

Interactive content, not another screenshot

A reader can change position size in the calculator and see the cost move. That is something a static comparison table in a review article cannot do.

Comparison articles that stay current

Spread and cost figures come from the same feed the PropSpread board reads, so a widget in a two year old article shows today's numbers without you editing the post.

Transparent cost information for readers

Every figure carries its own state. Where a number is stale, the market is closed, or a comparison is not valid, the widget says so instead of showing a confident number.

Contextual links to provider profiles

Firm names link to their PropSpread profile, so a reader who wants the full picture has somewhere to go without leaving your article for a marketing page.

One published methodology

Costs, scores and rankings inside a widget are computed by the same engine and the same published methodology as propspread.com. Your readers can check the working.

Nothing to maintain

There is no key to rotate, no bundle to update and no version to pin. A v1 embed keeps receiving v1 responses.

The catalogue

Six widgets, live below.

Every preview here is the real runtime rendering the real widget. Scroll and they load as you reach them.

How it works

Three steps, no build step.

1

Choose a widget

Six types cover comparison, cost and score placements. Pick the one that answers the question your article is already asking.

2

Configure it

Choose the firms, the instrument, the theme and which sections to show. The builder previews the real widget at desktop and mobile widths while you work.

3

Copy and paste

Copy the generated snippet into your page. There is no key to add and no build step to run.

JavaScript embed

Put the container where the widget should appear. The script goes anywhere on the page, once.

<div
  data-propspread-widget="live-spread-comparison"
  data-providers="if,ftmo"
  data-instrument="EURUSD"
></div>

<script async src="https://www.propspread.com/widgets/embed.js"></script>
Installation

Pick your platform.

The same snippet everywhere. What changes is where it goes and what your platform allows.

Any hand-written page, static site generator or template.

  1. Paste the container div into your page where the widget should appear.
  2. Paste the script tag once anywhere on the same page. The end of the body is a good place.
  3. Publish. The loader finds every container on the page and mounts it.

JavaScript embed

Put the container where the widget should appear. The script goes anywhere on the page, once.

<div
  data-propspread-widget="live-spread-comparison"
  data-providers="if,ftmo"
  data-instrument="EURUSD"
></div>

<script async src="https://www.propspread.com/widgets/embed.js"></script>
Two ways in

Script or iframe.

Both render the same widget from the same data. Choose on what your page allows.

JavaScript embed

Best for

  • Automatic sizing to the container it sits in
  • Article layouts where the widget should flow with the text
  • Several widgets on one page, sharing their data requests
  • Interactive widgets such as the cost calculator

Trade-off: Needs a script tag on the page. Some CMS plans and security plugins strip those from post content.

Iframe embed

Best for

  • Environments that block third-party scripts
  • CMS platforms with limited script support
  • Maximum isolation from the rest of your page

Trade-off: Uses a fixed height unless you add the optional auto-height snippet, and each iframe fetches its own data rather than sharing a batch.

Iframe embed

For pages that block third-party scripts. Responsive in width, fixed height by default.

<iframe
  src="https://www.propspread.com/widgets/live-spread-comparison?providers=if%2Cftmo&amp;instrument=EURUSD"
  loading="lazy"
  title="Live spread comparison for EURUSD by PropSpread"
  style="width:100%;border:0;overflow:hidden"
  height="286"
></iframe>

Optional: auto-height for the iframe

Adds height messaging. The origin check is not optional — without it any frame on your page can resize your layout.

<script>
window.addEventListener('message', function (event) {
  if (event.origin !== "https://www.propspread.com") return;
  var data = event.data;
  if (!data || data.type !== 'propspread:widget:height') return;
  var frames = document.querySelectorAll('iframe[src^="https://www.propspread.com/widgets"]');
  for (var i = 0; i < frames.length; i++) {
    if (frames[i].contentWindow === event.source) frames[i].height = String(Math.ceil(data.height));
  }
});
</script>
The data

Every figure carries its state.

Widgets show what PropSpread has measured, label what it has not, and refuse comparisons that would not be honest.

Data states

Live
Sampled within one refresh cycle.
Delayed
Older than one cycle, still comparable.
Stale
Past the staleness threshold. Shown, but excluded from comparisons.
Unavailable
No usable value. Rendered as a dash, never as zero.
Market closed
The underlying market or the firm's symbol is not trading.
Composite average
A computed benchmark across sampled feeds, never a comparison winner.
Demo data
The deployment is running on simulated data. Always disclosed in the widget.

How the numbers are made, and what they exclude

  • Spreads are sampled from connected prop firm account feeds on a short interval, not read off marketing pages.
  • Costs combine the sampled spread with each firm's published round turn commission for one standardized scenario, so two firms are compared on equal terms.
  • Cost figures are estimates. Actual fills vary by account type, server, liquidity and time of day.
  • Account currency is USD only. The cost engine resolves pip values in USD and any other currency is rejected rather than relabelled.
  • Swap and overnight financing costs are excluded. PropSpread does not model them.
  • Slippage is excluded from widget cost figures, and every cost widget states that in its assumptions.
  • Firm rules, pricing and terms change. Widgets show what PropSpread has verified, and label what it has not.
  • Provider trading hours are indicative until verified contract specifications are available.

The full method is published at propspread.com/methodology, and every widget links back to it.

When something is missing

  • If the widget API is unavailable, the widget renders a short card linking to PropSpread. Your page is unaffected.
  • If a firm has no published PropSpread Score yet, the badge says the score is pending rather than showing a placeholder number.
  • If a provider logo is missing, the widget renders the firm name instead of a broken image.
  • If the reader has JavaScript disabled, the script embed renders nothing at all rather than an empty box. Use the iframe embed if that matters for your audience.
  • In a narrow container the layout stacks. Long firm names wrap rather than overflowing.
Styling

Fits your page, not your CSS.

A closed set of approved options, because an embed renders on a page PropSpread has never seen.

Configuration options supported by every PropSpread widget
OptionValuesNotes
Themelight, dark, autoAuto follows the reader's own system preference, not your page's CSS.
Layoutcompact, standard, expandedNot every type uses all three. The builder shows what changes as you switch.
Corner radiusnone, small, medium, largeA closed set of approved radii, not a free CSS length.
Sectionsper widget typeHide optional sections you do not want. Unknown keys are ignored rather than rendered.
Badge shapehorizontal, squareScore badge only. A square badge is a different silhouette, not a denser one.

What you cannot change

There is no custom CSS field, no custom HTML field and no custom link target. Widgets render inside a shadow root, so your page styles cannot reach in and the widget's styles cannot leak out. That isolation is what makes an embed safe to paste into a page nobody at PropSpread has seen.

FAQ

Questions, answered plainly.

What the widgets do, what they cost today, and what they will not claim.

Is it free?

The widgets are currently available at no cost and without an account. PropSpread has not set a long term commercial policy for embeds, so this page does not promise they will always be free. If that changes, existing embeds will not break without notice.

Do I need an API key?

No. There is no key, token or account to configure. The public widget API is unauthenticated and rate limited per IP, and nothing in the embed code is confidential.

Can I use multiple widgets on one page?

Yes. Include the script once and add as many containers as you need. Identical and concurrent data requests are de-duplicated and coalesced into a single batched call, so five badges for the same firm cost one request rather than five.

Does the data update automatically?

Yes. Each widget fetches current data when it mounts, so a reader opening a two year old article sees today's figures. Responses are cached briefly and carry their own freshness label.

Can I change the colors?

You can choose light, dark or auto, pick a corner radius, choose a layout and hide optional sections. There is no custom CSS field. Arbitrary styling from a third party page is the attack surface this platform is built not to have.

Will it affect my page performance?

The loader is 1.1 kB gzipped and loads asynchronously. A page with one score badge downloads about 14 kB gzipped in total. Widget code loads only for the types present on the page, no web fonts are downloaded, and skeletons match the final content height so the layout does not shift.

Can I use it on WordPress?

Yes, through a Custom HTML block. There is no PropSpread WordPress plugin. Some themes and many security plugins strip script tags from post content, and WordPress.com plans below Business block custom scripts, so use the iframe embed if the script does not run.

Can I use an iframe?

Yes. Every widget has an iframe version for pages that block third-party scripts. It is responsive in width and uses a sensible fixed height, with an optional snippet for automatic height that verifies the message origin before resizing anything.

Can I remove the PropSpread attribution?

No. Each widget carries one attribution link back to the source of the data, and there is no configuration option to remove or redirect it. It is a single visible link, never hidden or duplicated.

Are provider rankings influenced by commercial relationships?

No. Rankings, scores and cost calculations are computed from measured data under a published methodology. The optional campaign label you can set on an embed is recorded for attribution only, and the widget data service never reads a tracking field when building a response.

What happens when data is unavailable?

The widget says so. A missing value renders as a dash rather than a zero, a stale value is labelled and excluded from comparisons, and a comparison that cannot be made honestly is refused with a stated reason instead of a number. If data cannot be loaded at all, the widget shows a short card linking to PropSpread rather than an error in your article.

How do I report an issue?

Open the gallery and check whether the same widget type renders there. That separates a problem with your page from a problem with the widget. Then contact PropSpread with the page URL, the widget type and the snippet you pasted.

Get started

Put live prop firm data in your next article.

Configure a widget, copy the snippet, publish. If you run a directory, a review site or a large affiliate property and need something the builder does not cover, get in touch.

Widgets are served from www.propspread.com. Embedding one does not create an account, set a cookie on your readers, or place any identifier on your page.

This tool provides an indicative comparison of spreads and estimated execution costs based on periodic snapshots from connected data feeds and normalized trade assumptions. Displayed values are not tradable quotes and may differ from prices available on any provider's live accounts. Spreads vary by account type, server, liquidity conditions, and time of day. Competitor names and marks belong to their respective owners; no affiliation or endorsement is implied. The "Average Prop Firm" benchmark is a computed composite of sampled competitor feeds, not the published pricing of any specific firm. Cost estimates use a normalized trade scenario and do not constitute financial advice or a prediction of trading results.