Pepvote API
Results and votes
Read tallies and eligible individual vote records.
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /voting-events/:code/results | read | Get results for all positions. |
GET | /voting-events/:code/results/:positionId | read | Get results for one position. |
GET | /voting-events/:code/votes | read | List individual vote records. |
These endpoints do not accept request bodies.
Vote query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size from 1 to 200. Default: 50. |
cursor | string | No | Cursor from nextCursor. |
confirmationCode | string | No | Filter by confirmation code. |
fromCountry | string | No | Filter by country. |
/votes requires a paid plan with canExportData and the view_votes_and_results role. Pepvote returns an authorization or plan error when either requirement is not met.
Example
curl "https://api.pepvote.com/voting-events/BOARD26/results/j57position01" \
-H "Authorization: Bearer $PEPVOTE_API_KEY"{
"data": {
"id": "j57position01", "title": "Board chair", "desc": null, "groupId": null,
"votingMethod": "plurality", "tallyRule": { "type": "plurality_total" },
"totalCandidates": 2, "totalVotes": 184, "totalWeightedVotes": null,
"rankedChoiceCount": null, "tallyComputedAt": 1777089700000,
"tallyRecountPending": false, "tallyTrace": null, "referendum": null,
"candidates": [{ "id": "j57candidate01", "name": "Amina Bello", "status": "approved", "groupId": null, "referendumRole": null, "avatarUrl": null, "votesWon": 112, "weightedVotesWon": null, "percentageWon": 60.87, "weightedPercentageWon": null }]
}
}The all-results response has votingEventId and positions.
Vote example
curl "https://api.pepvote.com/voting-events/BOARD26/votes?limit=50&confirmationCode=AB12CD" \
-H "Authorization: Bearer $PEPVOTE_API_KEY"{ "data": [{ "id": "j57vote01", "votingEventId": "j57event01", "positionId": "j57position01", "positionTitle": "Board chair", "candidateId": "j57candidate01", "candidateName": "Amina Bello", "confirmationCode": "AB12CD", "confirmed": true, "confirmedAt": 1777086000000, "channel": "web", "confirmedVia": "email", "value": 1, "rank": null, "weight": null, "quadraticCreditCost": null, "votingCenterId": null, "fromCountry": "CA", "createdAt": 1777085900000 }], "nextCursor": null }Was this helpful?
Last updated September 5, 2026