Pepvote Support Center

Get Public Ballot

GET
/public/voting-events/{idOrCode}/ballot

Positions, approved candidates, and sponsors to draw the ballot. Candidates are shuffled per seed when the event has shuffleCandidates on.

Authorization

bearerAuth
AuthorizationBearer <token>

A key in the form pepvote_api_ followed by 32 hexadecimal characters.

In: header

Header Parameters

User-Agentstringrequired

Name and version of the calling integration. Required on every request.

Path Parameters

idOrCodestringrequired

Voting event ID or code.

Query Parameters

seedstring

Stable shuffle key, for example a session ID, so one voter sees the same candidate order on every request.

Response Body

application/json

application/json

curl -X GET "https://example.com/public/voting-events/string/ballot" \  -H "User-Agent: my-app/1.0"
{
  "data": {
    "votingEventId": "string",
    "positions": [
      {
        "id": "string",
        "title": "string",
        "desc": "string",
        "groupId": "string",
        "minSelections": 0,
        "maxSelections": 0,
        "scoreMin": 0,
        "scoreMax": 0,
        "cumulativePointBudget": 0,
        "quadraticBaseCreditBudget": 0,
        "quadraticAllowCreditTopUps": true,
        "quadraticMaxPurchasedCreditsPerVoter": 0,
        "votingMethod": "plurality",
        "group": {
          "id": "string",
          "name": "string"
        }
      }
    ],
    "candidates": [
      {
        "id": "string",
        "name": "string",
        "positionIds": [
          "string"
        ],
        "groupId": "string",
        "group": {
          "id": "string",
          "name": "string"
        },
        "referendumRole": "for",
        "avatarUrl": "string"
      }
    ],
    "sponsors": [
      {
        "id": "string",
        "name": "string",
        "info": "string",
        "pinnedSponsorNumber": 0,
        "logoUrl": "string"
      }
    ]
  }
}
{
  "error": {
    "code": "bad_request",
    "message": "string",
    "details": {
      "field": "string",
      "parameter": "string",
      "limit": 0,
      "retryAfterSeconds": 0,
      "feature": "string",
      "plan": "string"
    }
  }
}
Was this helpful?

Last updated September 6, 2026