Pepvote Support Center
Pepvote API

Pagination and errors

Read list responses, use cursors, and handle API errors.

Response envelopes

A single resource uses a data envelope:

{ "data": { "id": "j57...", "name": "Amina Bello" } }

A list response includes data and nextCursor:

{
  "data": [{ "id": "j57...", "name": "Amina Bello" }],
  "nextCursor": "eyJ..."
}

When nextCursor is null, there are no more results.

Success status codes

StatusWhen
200Read or update succeeded.
201Create succeeded. The body holds the new record.
202Delete of a position, candidate, group, or voter was queued. The row disappears within seconds.
204Delete of a webhook endpoint succeeded. No body.

Pagination

Use limit and cursor only on endpoints that list voting events, voters, or votes. limit defaults to 50 and has a maximum of 200. Pass the previous nextCursor unchanged as cursor to get the next page.

GET /voting-events/BOARD26/voters?limit=100&cursor=eyJ...

Do not construct, parse, or modify a cursor. Unknown query parameters return 400 bad_request.

Error envelope

All API errors use this shape:

{
  "error": {
    "code": "validation_error",
    "message": "name is required.",
    "details": { "field": "name" }
  }
}

details appears only when Pepvote has useful structured information.

Error codes

HTTP statusCodeMeaning
400bad_requestThe URL, query parameter, header, or HTTP method is invalid.
401unauthorizedThe API key is missing, invalid, revoked, or expired.
403insufficient_scopeThe key does not have the required scope.
403forbiddenThe key owner cannot perform this action. This can include a plan-gated feature.
404not_foundThe route or resource does not exist, or is not visible to the key owner.
409conflictA duplicate or already-used value conflicts with an existing resource.
422validation_errorThe body is invalid, a field is unknown, or an update has no fields.
422idempotency_mismatchAn idempotency key was reused with a different request.
422plan_limitThe action exceeds a plan limit.
429rate_limitedThe key has reached its request limit. Check Retry-After.
500internalPepvote could not complete the request. Retry with backoff.
Was this helpful?

Last updated September 5, 2026

On this page