Embed Oravan on your site
Free, self-serve widgets — no sales call, no account, no server-side data about your visitors. Pick a widget, set a few options, and copy one script tag.
Build your embed
Live preview
Local Government
City council weighs the bills that shape this session
By the newsroom staff
Readers keep asking who represents them and how to weigh in before the next vote. We added a quick lookup right in the story so you can act without leaving the page.
Coverage continues below. Reach the newsroom with tips, corrections, or questions about how these measures affect your district.
Copy this snippet
Paste it anywhere in your page's HTML, wherever you want the widget to appear.
<div id="oravan-embed-Rqnpffivb"></div>
<script src="https://oravan.org/embed.js"
data-oravan-widget="rep-lookup"
data-target="oravan-embed-Rqnpffivb"
data-locale="en"
data-accent="#0f6c4a"
data-radius="soft"
data-font="system"
></script>How it works
An iframe, not a script running on your page
The widget loads inside a cross-origin iframe, the same browser mechanism that keeps a video embed or a payment form isolated from the page around it. That isn't a policy promise — it's the browser enforcing it. Your page's own scripts, analytics, and tag managers cannot read what a visitor types into the widget or observe anything happening inside it, because they run in a different origin's sandbox.
What the widget collects about your visitors: nothing
- Zero cookies. No response from the embed ever sets one.
- Zero third-party requests. Every asset the widget loads — fonts, styles, data — comes from Oravan's own origin. Nothing calls out to an ad network, an analytics vendor, or any other third party.
- ZIP code only. The representative-lookup widget never asks for a street address inside the iframe; a visitor who needs the more precise, split-district lookup is linked out to the main Oravan site for that step.
- No visitor data reaches Oravan beyond an ordinary page load. A ZIP code a visitor enters is used once, in memory, to answer that one lookup, and is never logged or stored.
These aren't claims made only in this copy — they're enforced by automated tests in Oravan's own public repository, on every change, before it ships.
Theming reference
Theming works the same on all widgets and is limited to a closed set of CSS custom properties, each validated on Oravan's server before it can reach a style: an accent color, an optional background/text color pair (accepted only when it meets the WCAG AA contrast bar of 4.5:1), a color mode (light, dark, or match the visitor's system), a corner-radius style (sharp, soft, or round), and a font (system, serif, humanist, or geometric — all system font stacks; the widget never loads webfonts). There's no way to inject arbitrary CSS or JavaScript into the widget — that's a deliberate security boundary, not a missing feature.
Attribution
Every widget shows a small "Powered by Oravan" link, pointing back to the canonical page on oravan.org. The brandless option removes the Oravan name from the widget chrome (its accessible titles and fallback labels) but keeps that attribution link — it's how the free tier stays free. Removing attribution itself (data-attribution="none") is reserved for licensed partners: there's no technical lock yet, so we say it plainly — if you want it, write us for a license. The AI-content label is never removable, on any tier.
The loader script
The script tag your snippet includes is a single, dependency-free file under 5KB. All it does is create the iframe, size it to fit its content, and relay that size back — nothing is read from your page, and nothing is sent anywhere except the one request that loads the widget itself.
Free weekly feed
A free, keyless JSON and RSS feed of bills that cleared Oravan's "act now" urgency bar in the last 7 days — the same list the homepage shows. No token, no signup: point a newsletter tool or an RSS reader straight at it. Every AI-generated item carries the AI-content label, and the feed's own attribution line is permanent at every use.
Terms of Service
Institutional and commercial use of these widgets — Free, Pro, Nonprofit, and Network plans alike — is governed by a separate Terms of Service from the one that covers Oravan's free citizen site. Read the embeds Terms of Service
Manage your subscription
Subscribers on a paid plan can update their payment method, download invoices, and cancel at any time through Stripe's secure billing portal — sign in there with the email you used at checkout. Oravan itself holds no account and no payment details. Open the billing portal