AVC

Developer Portal

Open Data API & Documentation

We believe in radical transparency. All voting data, motion details, and council decisions are available to the public through our Open Data API. Use this portal to explore schemas, download datasets, and build integrations.

Public Datasets

Access raw data for analysis and auditing.

Secure & Anonymized

Voter privacy is protected via cryptographic hashing.

Real-time Access

Data is updated instantly as events occur.

API Endpoints

v1.0.0
GET
/api/v1/motions
Public
Motions
Retrieve a list of all motions, including active, upcoming, and closed items.
FieldTypeDescription
idstringUnique identifier for the motion
titlestringTitle of the motion
statusstringCurrent status (active, closed, upcoming)
categorystringCategory (infrastructure, budget, etc.)
levelstringGovernment level (town, municipal, provincial)
voting_deadlinedateISO date string for deadline
GET
/api/v1/votes
Public
Vote Results
Get anonymized vote records for transparency and independent verification. Contains integrity hashes.
FieldTypeDescription
motion_idstringID of the motion voted on
vote_choicestringChoice made (yes, no, abstain)
timestampnumberUnix timestamp of the vote
integrity_hashstringCryptographic hash for verification
GET
/api/v1/council-votes
Public
Council Decisions
Access official council voting records and outcomes.
FieldTypeDescription
motion_idstringID of the motion
council_decisionstringFinal decision (passed, rejected)
council_yes_votesnumberCount of council Yes votes
council_no_votesnumberCount of council No votes
decision_datedateDate of decision
GET
/api/v1/stats
Public
Region Statistics
Demographic and engagement statistics for regions.
FieldTypeDescription
namestringRegion name
levelstringAdministrative level
populationnumberTotal population
GET
/api/v1/health
Public
System Status
Check the operational status of the voting platform API.
FieldTypeDescription
statusstringCurrent system status (e.g., 'operational')
latencynumberAPI response latency in ms
versionstringCurrent API version

Integration Guide

You can access our Open Data endpoints using standard HTTP requests. Below are examples of how to fetch the latest motions programmatically.

JavaScript / Node.js

const fetchMotions = async () => {
  const response = await fetch(
    'https://townvote.app/api/v1/motions'
  );
  const data = await response.json();
  console.log(data);
};

fetchMotions();

cURL

# Get all active motions
curl -X GET \
  https://townvote.app/api/v1/motions \
  -H "Accept: application/json"

Rate Limiting & Usage

This public API is rate-limited to ensure stability. For high-volume access or commercial use, please contact the municipal administration. Data provided "as-is" for transparency purposes.