Embed a Poll

Put a live Poll card on your own site, blog, or forum. No token, no SDK, one iframe.

What you get

Every public Poll has three embed formats. All three read the same data and need no authentication.

Add the live card

This is a real Poll, live. Switch the theme and the snippet under it updates. Copy the snippet and replace {identifier} with your Poll slug or bet address. Both appear in the Poll URL on poll.fun.

live · will-psg-be-the-ligue1-2027-champions
Open on poll.fun
index.html
<iframe
  src="https://app.poll.fun/embed/poll/{identifier}"
  title="Poll.fun"
  width="100%"
  height="560"
  style="max-width: 672px; border: 0; border-radius: 16px;"
  loading="lazy"
></iframe>

The frame is allowed on any origin. You do not need to register your domain.

Theme

Add ?theme= to pick the color scheme. The default is auto, which follows the visitor's system setting. Try each value with the switcher on the preview above.

ValueResult
autoFollows the visitor's system. Default.
lightAlways light.
darkAlways dark.
https://app.poll.fun/embed/poll/will-psg-be-the-ligue1-2027-champions?theme=dark

Any other value falls back to auto.

Size the frame

The card fills the frame width up to 672px and centres itself above that. Height depends on the number of outcomes and whether the Poll has rules text. If the frame is too short, the card scrolls inside it.

Poll shapeStart with
Two outcomes, no rulesheight="480"
Two outcomes, with close time and rulesheight="620"
Four or more outcomesheight="720"

On screens under 640px wide, outcomes stack in one column. Add about 70px per outcome if most of your visitors are on phones.

Which Polls can be embedded

A Poll is embeddable when all of these are true:

  • It is public. Private Polls between friends never appear in an embed.
  • It has not been deleted by its creator.
  • It has not been flagged by Poll moderation.

For any other Poll, the card shows "Poll unavailable" and the JSON endpoint returns 404. The response is the same for a private Poll and a Poll that does not exist, so an embed cannot be used to probe private bets.

The identifier is the Poll slug (lowercase letters, digits, and dashes, up to 80 characters) or the bet address (a Solana public key). Slugs are matched case-insensitively.

How the card behaves

  • It shows the question, total pot, number of friends backing it, and each outcome with its share of the pot.
  • It refreshes every 12 seconds while the tab is visible. It pauses when the tab is hidden.
  • If a refresh fails, it backs off up to 60 seconds and shows "Updates paused. Retrying."
  • Each outcome links to the Poll on poll.fun in a new tab. Visitors pick there, never inside the frame.
  • Once picks close, the status pill changes and outcome links say "View" instead of "Pick".

Privacy

Embeds show aggregate numbers only. No display names, wallets, or individual wagers are exposed. The frame loads none of the main app: no sign-in prompt, no account state. Search engines are told not to index the embed page itself; the canonical Poll page stays the indexed one.