Live civic observation

Election Monitoring Operations

Loading...

Election home

Official results context, verified incidents, and field reports

Monitor INEC-sourced updates alongside verified civic incident signals. This platform does not declare winners.

Election news

Latest updates

Total provisional votes 0
Verified incidents 0
Pending review 0
Average turnout 0%

Results

State reporting board

Provisional

Incidents

Latest verified signals

Citizen report

Submit an incident

Use current location or add a Google Maps API key in Settings to select the incident location on a map.

Polling information

Polling station map

Add a Google Maps API key in Settings to enable the interactive map.

Reference data

Lookup management

Loading

Developer integration

Polling units live API

JSON + Google Maps
Use these endpoints to integrate live polling-unit information, opening times, accessibility notes, and GPS coordinates. Write endpoints require an admin bearer token.

Public polling-unit feed

GET https://ems.armsit.ng/api/polling-units
[
  {
    "id": "PU-LAG-IKE-001",
    "name": "Ikeja Grammar School",
    "state": "Lagos",
    "lga": "Ikeja",
    "ward": "Alausa",
    "opens_at": "08:30",
    "closes_at": "14:30",
    "accessibility": "Ramp access, shaded queue area",
    "latitude": "6.6018000",
    "longitude": "3.3515000"
  }
]

Polling-unit map pins

GET https://ems.armsit.ng/api/polling-units/map-pins?north=14.5&south=4&east=15&west=2&limit=3000
{
  "total": 117796,
  "limit": 3000,
  "pins": [
    {
      "id": "PU-NG-000001",
      "name": "LGEA SCHOOL INABE, INABE/EFOJA",
      "state": "Kogi",
      "lga": "Olamaboro",
      "ward": "Olamaboro V",
      "latitude": "7.1783590",
      "longitude": "7.5771629"
    }
  ]
}
Use map bounds to load pins for the visible area. The app imports all polling-unit records, but only rows with valid Nigeria-bounds GPS coordinates appear as map pins.

Create polling unit

POST https://ems.armsit.ng/api/polling-units
Authorization: Bearer <admin-token>
Content-Type: application/json

{
  "id": "PU-ABJ-AMAC-101",
  "name": "Central Primary School",
  "state": "FCT",
  "lga": "AMAC",
  "ward": "Garki",
  "opens_at": "08:30",
  "closes_at": "14:30",
  "accessibility": "Step-free entrance",
  "latitude": 9.05785,
  "longitude": 7.49508
}

Update polling unit GPS

PUT https://ems.armsit.ng/api/polling-units/PU-ABJ-AMAC-101
{
  "id": "PU-ABJ-AMAC-101",
  "name": "Central Primary School",
  "state": "FCT",
  "lga": "AMAC",
  "ward": "Garki",
  "opens_at": "08:30",
  "closes_at": "14:30",
  "accessibility": "Step-free entrance",
  "latitude": 9.05791,
  "longitude": 7.49512
}

Collect polling-unit votes

POST https://ems.armsit.ng/api/polling-units/PU-ABJ-AMAC-101/vote-collections
Authorization: Bearer <admin-token>
Content-Type: application/json

{
  "election_name": "2027 Presidential Election",
  "collection_status": "submitted",
  "registered_voters": 750,
  "accredited_voters": 512,
  "valid_votes": 500,
  "rejected_votes": 12,
  "total_votes": 512,
  "collected_at": "2027-02-27 15:45:00",
  "latitude": 9.05791,
  "longitude": 7.49512,
  "source": "Field observer",
  "notes": "Entered from signed polling-unit result sheet.",
  "parties": [
    { "party_code": "APC", "party_name": "All Progressives Congress", "votes": 210 },
    { "party_code": "LP", "party_name": "Labour Party", "votes": 190 },
    { "party_code": "PDP", "party_name": "Peoples Democratic Party", "votes": 100 }
  ]
}
Required: election_name, registered_voters, accredited_voters, valid_votes, rejected_votes, total_votes, collected_at, and at least one party row. Party vote sum must equal valid_votes. Valid plus rejected votes must equal total_votes.

Read polling-unit vote collections

GET https://ems.armsit.ng/api/polling-units/PU-ABJ-AMAC-101/vote-collections
[
  {
    "id": "31f6f96c-6b69-47f9-9d25-12d0f79cfb6c",
    "polling_unit_id": "PU-ABJ-AMAC-101",
    "election_name": "2027 Presidential Election",
    "collection_status": "submitted",
    "registered_voters": 750,
    "accredited_voters": 512,
    "valid_votes": 500,
    "rejected_votes": 12,
    "total_votes": 512,
    "parties": [
      { "party_code": "APC", "party_name": "All Progressives Congress", "votes": 210 }
    ],
    "provisional_notice": "Polling-unit vote collections are field records only and do not declare or project winners."
  }
]

Advisories

Election alerts

Unread 0
Critical 0
Latest None
Browser notifications are optional and only run while this app is open.

Admin desk

Create alert

Legal posture

Nigerian electoral compliance

Enabled
Jurisdiction Nigeria
Winner projection Disabled
Data retention 180 days

Legal framework

Misinformation and harmful content