VoterGuideOS

Find measures

Returns paginated ballot measures. Reads require core data access: an organization overlay context supplied with `overlayOrganizationId` or the `X-Organization-Id` header.

GET
/measures

Query Parameters

$limit?integer

Maximum number of records to return.

Range0 <= value
$skip?integer

Number of records to skip.

Range0 <= value
$sort?

Sort object, for example $sort[createdAt]=-1.

_id?|array<>

Measure id or ids.

$search?string

Fuzzy search query against measure district search text and title.

election?|array<string>

Election key or keys.

key?|array<string>

Measure key or keys.

district?|array<>

District id or ids.

originalDistrict?|array<>

Original district id or ids for rolled-up representative district measures.

districtType?|array<>

District type or types copied from the measure district.

cities?|array<>

City district id or ids copied from the measure district.

counties?|array<>

County district id or ids copied from the measure district.

coveragePlan?string

Measure coverage plan.

Value in"auto-coverage" | "no-coverage"
coverageStatus?string

Publication status for measure content.

Value in"published" | "not-published"
status?string

Editorial completion status for measure content.

Value in"incomplete" | "complete"
overlayOrganizationId?string

Organization overlay id. When supplied, the service merges the organization's measure overrides into global measures, includes organization-created measures, excludes organization-deleted measures, and may return overlay metadata such as overlayOrganizationId, overlayDocumentId, globalId, numberOverlayFields, and resolutionStatus. The same overlay context may also be supplied with the X-Organization-Id header.

Match^[a-fA-F0-9]{24}$

Header Parameters

X-Organization-Id?string

Organization id used as the overlay organization context. Equivalent to overlayOrganizationId; when both are supplied, the query parameter takes precedence.

Match^[a-fA-F0-9]{24}$

Response Body

application/json

Paginated measure results.

TypeScript Definitions

Use the response body type in TypeScript.

application/json

Core data reads require an organization overlay context.

TypeScript Definitions

Use the response body type in TypeScript.

curl -X GET "https://example.com/measures" \  -H "X-Organization-Id: org_123"
{
  "total": 1,
  "limit": 10,
  "skip": 0,
  "data": [
    {
      "_id": "633c8b15159e0ea0bfe5640c",
      "election": {
        "_id": "69efbb978976da84493577fc",
        "key": "2026-georgia-general-election",
        "name": "2026 Georgia General Election",
        "stateCode": "GA",
        "date": "2026-11-03T05:00:00.000Z",
        "year": 2026,
        "status": "live",
        "electionType": "general"
      },
      "key": "2026-georgia-general-election-ga-state-referendum-amendment-1",
      "title": "Proposed Constitutional Amendment",
      "descriptionShort": "Stops pay for elected officials suspended for being formally accused of a crime.",
      "ballotText": "Shall the Constitution of Georgia be amended so as to suspend compensation for certain suspended public officials?",
      "district": {
        "_id": "5eac8e9f21ddc806d4f9aacf",
        "type": "state",
        "matchName": "ga-state",
        "name": "Georgia",
        "shortName": "Georgia",
        "longName": "State of Georgia"
      },
      "districtType": "state",
      "coveragePlan": "auto-coverage",
      "coverageStatus": "published",
      "status": "complete",
      "commentaryAvailable": false,
      "sources": [],
      "createdAt": "2026-09-06T11:36:11.727Z",
      "updatedAt": "2026-09-08T16:47:39.788Z"
    }
  ]
}