VOORNA REST API
Use VOORNA as your voting backend. Build your own frontend — web, mobile, kiosk, or digital display — while we handle votes, payments, and fraud. All endpoints share the same backend as the hosted website and embeddable widgets.
Base URL
https://voorna.comAuthentication
Authenticated endpoints require an API key, issued per organiser from your dashboard under Settings → API Keys. Pass it as a Bearer token in the Authorization header. Keys are prefixed with voorna_ and are shown only once at creation.
Authorization: Bearer voorna_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRate limiting
Requests are rate limited per API key (configurable per organiser). Free voting endpoints additionally enforce a 10-second IP cooldown and a 50-votes-per-day-per-IP cap to prevent fraud. Exceeding a limit returns HTTP 429.
Endpoints
Events
/api/events/{slug}/participantsList participants for an event.API key/api/events/{slug}/leaderboardGet ranked participants by vote count.API keyVoting
/api/events/{slug}/votesCast a free vote (rate limited, fraud protected).PublicAPI Keys
/api/keysGenerate a new API key (dashboard session).Session/api/keys/{id}Revoke an API key.SessionExample — Cast a free vote
POST https://voorna.com/api/events/miss-auckland-2027/votes
Content-Type: application/json
{
"participant_id": "p-001",
"kind": "free",
"source_referral_code": "sofia26"
}
// 200 OK
{ "ok": true, "participant_id": "p-001", "vote_count": 1691 }Example — List participants
GET https://voorna.com/api/events/miss-auckland-2027/participants
Authorization: Bearer voorna_xxxxxxxx
// 200 OK
{
"participants": [
{
"id": "p-001",
"name": "Sofia Reyes",
"number": 1,
"photo_url": "https://…",
"bio": "Community advocate…",
"vote_count": 1690,
"referral_code": "sofia26",
"status": "active"
}
]
}Example — Get leaderboard
GET https://voorna.com/api/events/miss-auckland-2027/leaderboard
Authorization: Bearer voorna_xxxxxxxx
// 200 OK
{
"leaderboard": [
{ "rank": 1, "name": "Sofia Reyes", "vote_count": 1690 },
{ "rank": 2, "name": "Amara Okafor", "vote_count": 1542 }
],
"updated_at": "2026-06-25T01:00:00.000Z"
}Webhooks
Subscribe to event triggers to react to activity in real time. v1 events: vote.cast, payment.succeeded, and event.closed. OAuth 2.0 and official SDKs (Node, Python, PHP) are on the v2 roadmap.