Pepvote Support Center
Pepvote API

Groups and sponsors

Read and manage event groups, and read sponsors.

Endpoints

MethodPathScopeDescription
GET/voting-events/:code/groupsreadList groups.
POST/voting-events/:code/groupswriteCreate a group.
GET/voting-events/:code/groups/:idreadGet a group.
PATCH/voting-events/:code/groups/:idwriteUpdate a group.
DELETE/voting-events/:code/groups/:idwriteDelete a group.
GET/voting-events/:code/sponsorsreadList sponsors.

Group query parameters

NameTypeRequiredDescription
groupForany, position, candidate, or voterNoFilter groups by their use.

Group request fields

name is required on create. Send at least one field on update.

FieldTypeRequired on createDescription
namestringYes1 to 200 characters.
descstringNoUp to 2,000 characters.
groupForenumNoany, position, candidate, or voter.

Example

curl -X POST "https://api.pepvote.com/voting-events/BOARD26/groups" \
  -H "Authorization: Bearer $PEPVOTE_API_KEY" -H "Content-Type: application/json" \
  -H "Idempotency-Key: group-north-001" -d '{"name":"North region","groupFor":"voter"}'
{ "data": { "id": "j57group01", "votingEventId": "j57event01", "name": "North region", "desc": null, "groupFor": "voter", "logoUrl": null, "createdAt": 1776900300000 } }

A successful create returns 201. Delete returns 202 with { "data": { "id": "...", "deletion": "queued" } }. The row is removed by the same scheduled batch the dashboard uses, so a read right after the delete can still return it for a moment.

curl "https://api.pepvote.com/voting-events/BOARD26/sponsors" \
  -H "Authorization: Bearer $PEPVOTE_API_KEY"
{ "data": [{ "id": "j57sponsor01", "votingEventId": "j57event01", "name": "Northstar Credit Union", "info": "Community partner", "contactEmail": "hello@northstar.example", "pinnedSponsorNumber": 1, "logoUrl": null, "createdAt": 1776900350000 }], "nextCursor": null }

Create and delete sponsor endpoints are not available yet.

Was this helpful?

Last updated September 5, 2026

On this page