🚀 Ballotis is in beta — apply for free access for your next ballot.Apply now →

Features

What ships today, organized by what you'd configure first. Roadmap items are listed at the bottom — we don't hide them.

Voting methods

Twelve methods today. Each tally is computed server-side and can be re-walked from the public verification chain.

Single choice

One pick per ballot. Simplest tally, hardest to argue with.

Multiple choice

Pick up to N. Server enforces the cap.

Approval

Approve any number. Highest approval count wins.

Ranked-choice (IRV)

Voters rank options. Eliminate lowest, redistribute, repeat. Single-winner.

Multi-winner STV

Droop-quota single transferable vote. Surplus is fractionally transferred. For boards / multi-seat elections.

Borda count

Each rank earns (n-1, n-2, ..., 0) points. Highest sum wins. Classic preference aggregation.

Schulze (beatpath)

Condorcet-consistent. Picks the candidate with the strongest beatpath against every other.

Condorcet (Copeland)

Highest pairwise-wins-minus-losses. Returns the Condorcet winner when one exists.

Score / range

Voters score every option in a 0..N range. Highest sum wins.

Cumulative

Voters distribute a fixed point budget across options. Allows expressing intensity.

Star rating

1–5 stars per option. Average score wins. Great for fan choice.

Yes / no measure

Binary vote on a proposition. Bylaws-friendly with a public chain.

Voter authentication

Identity, exactly as strict as you need. Each layer is independent — combine the ones your election demands.

Email magic-link

Voter clicks link from email; no password.

SMS OTP

6-digit code via Twilio; 10-minute expiry. Passes through Twilio cost.

CAPTCHA

Cloudflare Turnstile (default), reCAPTCHA, hCaptcha. Provider-agnostic.

Geofencing

Allow / block by ISO 3166-1 alpha-2 country code. Server enforces at vote-cast time.

Logged-in Aclamos account

For org-internal polls — restrict to your team.

Voter list (CSV import)

Upload list once; one-time tokens issued per voter.

Anti-fraud guardrails

Each option below is enforced server-side at vote-cast time. Toggle them per ballot, or pick one of the four presets.

ML fraud signals

Velocity bursts, coordinated patterns, repeat-offender across ballots. Reviewable; nothing auto-deleted.

Vote caps

Max votes per email / phone / IP / device. Sliding window.

Headless-browser detect

Catches Puppeteer, Playwright, Selenium and similar.

Honeypot fields

Invisible decoy fields trip automated submissions.

Min time-on-page

Reject submissions faster than humanly possible.

Disposable-email block

30,000+ throwaway domains. Custom allow-list per ballot.

TOR / VPN block

Detect anonymizing networks; block or quarantine.

Repeat-offender ML

Cross-ballot reputation across all of Ballotis.

End-to-end verifiable

Optional verifiable mode: every vote is hash-chained to the previous one, so any tampering breaks the chain.

Per-voter receipts

Each voter gets a `lmnry_receipt_*` token; verify their vote was counted without revealing how they voted.

Public verification log

Anyone can re-walk the chain on /verify/{pollId}. No login. No NDA.

Hash chain

chainHash = sha256(prevChainHash || canonicalVote). Reordering or removing any vote breaks the chain.

Branding & embed

Make the ballot look like yours. White-label voter UI is available on Studio and up.

Custom domain

vote.yourdomain.com on Growth and up. Auto-issued TLS.

Brand color + logo

Per ballot. Inherits from your org default.

Embed widget

Drop-in iframe that lives on your page; auto-resizing.

Live tally widget

Embeddable leaderboard; real-time updates.

Integrations

Webhooks + REST API are first-class. The rest is on the roadmap; build what you need today over the API.

Webhooks

Outbound HTTPS POST on vote.cast, ballot.opened, ballot.closed, anomaly.flagged. HMAC-signed.

REST API

Full CRUD over polls, voters, results. Bearer-token auth (`lmnry_live_*` / `lmnry_test_*`). OpenAPI 3.1 spec at /api/v1/openapi.json.

Zapier

Trigger flows in your downstream apps via the REST API endpoints.

Anti-fraud presets

Pick the preset; every guard above configures itself. Override any individual toggle in the dashboard.

Casual poll

1 per email · CAPTCHA · low friction. Good for opinion polls and quick fan votes.

Public award

Email-verified · 1 per IP · CAPTCHA · disposable-email block. Strongest balance for awards programs.

High-integrity election

Email + phone OTP verified · 1 per phone · TOR/VPN blocked · verification log. For boards, associations, formal elections.

Unlimited fan vote

No identity required · CAPTCHA + rate-limited · vote as many times as you like, but bots are blocked. Classic 'fan favorite' style.

Roadmap

Not yet shipped

What we're building next. None of these are live in production today — if you need any before they ship, tell us so we can prioritize.

  • Weighted member classes
  • Proxy voting with chain-of-trust
  • SAML 2.0 SSO + SCIM (UI; capability is in schema)
  • AMS connectors (iMIS / Higher Logic / Fonteva)
  • Salesforce + HubSpot voter-list sync
  • Telephone / IVR voting fallback
  • Threshold-encrypted ballots + trustees (Helios-style)
  • Signed PDF official report + auditor signature line
  • WCAG 2.1 AA third-party accessibility certificate
  • Multi-region active deployments
  • On-prem deployment option

Ready to run a real ballot?

Starter is free. Talk to us for anything regulated.

Ballotis features · Aclamos