Invites
Invite and manage voting event collaborators.
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /voting-events/:idOrCode/invites | read | List invites. |
POST | /voting-events/:idOrCode/invites | write | Create up to 100 invites. |
POST | /voting-events/:idOrCode/invites/:id/revoke | write | Revoke an invite. |
DELETE | /voting-events/:idOrCode/invites/:id | write | Delete an invite. |
Create request fields
| Field | Type | Required | Description |
|---|---|---|---|
emails | string array | Yes | 1 to 100 email addresses. |
role | manager, polling_officer, or observer | Yes | Role to grant. |
Create example
curl -X POST "https://api.pepvote.com/voting-events/BOARD26/invites" \
-H "Authorization: Bearer $PEPVOTE_API_KEY" -H "User-Agent: my-app/1.0" \
-H "Content-Type: application/json" \
-d '{"emails":["amina@example.com","omar@example.com"],"role":"observer"}'{
"data": {
"invitedCount": 1,
"skippedEmails": [
"omar@example.com"
],
"invites": [
{
"id": "j57invite01",
"votingEventId": "j57event01",
"email": "amina@example.com",
"role": "observer",
"status": "pending",
"accepted": false,
"createdAt": 1776900500000
}
]
}
}Revoke example
curl -X POST "https://api.pepvote.com/voting-events/BOARD26/invites/j57invite01/revoke" \
-H "Authorization: Bearer $PEPVOTE_API_KEY" -H "User-Agent: my-app/1.0"{
"data": {
"id": "j57invite01",
"votingEventId": "j57event01",
"email": "amina@example.com",
"role": "observer",
"status": "revoked",
"accepted": false,
"createdAt": 1776900500000
}
}Delete returns 204 with no body.
Was this helpful?
Last updated September 6, 2026