ARONIDocs
Open the map →

Guide

Aroni docs

Aroni is a live map of Nigeria. It brings together who has electricity right now, weather and air in every state, the news, security incidents, prices, markets, government contracts, treaties, radio and more, each pinned to where it happens.

Real data only. Every number on Aroni comes from a named public source or from people reporting on the ground, and shows when it was last updated. If a source is down, Aroni says so instead of guessing.

Light

Who has power now, by area, from people's reports.

Security

Attacks, kidnappings and banditry by state and LGA, with a download.

Markets

NGX All-Share and world markets, minute by minute.

Links

Treaties and undersea cables connecting Nigeria to the world.

Quick start

  1. Open aroni.live on a phone or computer. No account and no app needed.
  2. The scoreboard at the top shows Nigeria's population, births, deaths and GDP, counting live.
  3. Aroni opens on the globe with every layer off. Switch layers on from the icons on the left (on a phone, the Layers tab).
  4. Tap anything on the map, such as a state, an LGA, a pin or a cable, to open its card.
  5. Open a panel from the dock at the bottom for lists, statistics and downloads.
  6. Search for a state, LGA or town with the search box, or press /.

To report light in your area, open the Light tab, pick your area once (Aroni remembers it on your device) and tap Light is on or No light.

The interface

Scoreboard

Population, births and deaths today, GDP and the NGX All-Share, always visible. Population figures run from the UN World Population Prospects rates, GDP from the IMF World Economic Outlook.

Layer rail

Icons down the left edge open each group of layers (Nigeria live, Security, Economy, Connections, Space and Display). Every layer starts off; switch on what you want, or use ALL for a whole group. A badge shows how many are on.

Map

Four base maps: Dark, Streets (a full street map), Sat (cloud-free satellite imagery) and Lite (no tiles at all, for very slow connections). Switch between a flat 2D map of the region and a 3D globe you can zoom all the way out on. Layers that link Nigeria to other countries open the globe for you.

Cards

Tap a state, LGA, pin, cable or country for its details and the source behind them.

Panels

Icons down the right edge open News, Alerts, Light, Weather, Prices, Markets, Projects, Treaties, Stats and Radio. On a phone they are tabs along the bottom that open a sheet.

Read-out

Along the bottom: the position under your cursor, the state it is in, and the zoom level.

Ticker

The latest headlines scroll along the bottom edge.

Map layers

LayerWhat it showsSourceUpdates
LightWhether areas have electricity now, and hours of light todayAroni users' reportsLive
NewsHeadlines placed on the state or town they mention16 Nigerian outlets' RSS feedsEvery 5 min
AlertsSafety and movement alerts, placed where they happenNews feeds, plus admin editsEvery 15 min
SecurityAttacks, kidnappings, banditry, clashes and security operations by state and LGASecurity news headlinesEvery 5 min
ProjectsFederal and state government contracts, pinned to their LGAOpen Contracting data registry; World BankChecked every 3 h
TreatiesCountries with a treaty with Nigeria, arcs from AbujaUN Treaty CollectionChecked every 3 h
Sea linksThe 8 undersea internet cables landing in Nigeria and the 47 countries they reachTeleGeography Submarine Cable MapDaily
BasesArmy, navy, air force and police sitesOpenStreetMapDaily
RadioNigerian radio stations you can play, at their cityRadio Browser and broadcasters' own streamsChecked 4× an hour
WeatherTemperature and rain in all 37 state capitalsOpen-MeteoEvery 30 min
AirAir quality index, PM2.5 and PM10 by stateOpen-Meteo air qualityEvery 30 min
PricesPetrol, diesel, gas, kerosene, fares and food, shaded by stateNational Bureau of StatisticsMonthly
AirportsPassenger airportsOurAirportsStatic
MarketsEvery market in Nigeria (about 11,000), with ward, LGA, state, market days and goods; markets with WFP food prices are ringed in goldGRID3 Nigeria; WFPDaily check
SafetyTravel advisory level by stateAroni admin, from official advisoriesWhen it changes
CamsPublic live cameras (links to the operator)Camera operatorsWhen added
Night lightsLights seen from space last night. Lit towns had power; cloud can hide themNASA GIBS, VIIRS (NOAA-20)Daily
Starlink / commsStarlink, OneWeb and Iridium satellites at their real heightCelesTrakPositions every 2 s, orbits every 6 h
All satellitesEvery active satellite (about 16,000)CelesTrakPositions every 2 s, orbits every 6 h
Military / intelMilitary satellites in the public catalogueCelesTrakPositions every 2 s, orbits every 6 h
GPS / navigationGPS, GLONASS, Galileo and BeiDouCelesTrakPositions every 2 s, orbits every 6 h
Earth observationImaging and weather satellitesCelesTrakPositions every 2 s, orbits every 6 h
Day / night cycleWhere it is night, with civil and nautical twilightWorked out from the sun's positionEvery minute
3D buildingsBuildings in height when zoomed in to a cityOpenStreetMap via OpenFreeMapWith the map

About Bases. Only sites that volunteers have mapped in OpenStreetMap are shown, so the list is far from complete. Schools, hospitals and places of worship belonging to the forces are left out.

Panels

News

All headlines, newest first, with the outlet and topic. The same story from several outlets is shown once.

Alerts

Live alerts, and a Stats view for security incidents with charts by type, state and LGA, plus CSV download.

Light

Report light for your area and see the day's on/off timeline.

Weather

Conditions and air quality for every state capital.

Prices

Fuel, transport and food prices by state, air fares and the list of airports.

Markets

NGX All-Share and top equities, plus world indices, currencies, commodities and crypto.

Projects

Search government contracts by state, ministry or contractor, sort by value, download as a spreadsheet. World Bank projects too.

Treaties

Every treaty Nigeria is part of, filter by kind and subject, see partners, download.

Stats

Population, economy, health and more from the World Bank, UN and IMF.

Radio

Stations by city, with playback controls on your phone's lock screen.

Light reports

Nobody publishes live power data for Nigeria, so Aroni asks the people who know: those in the area right now.

  • One tap. Pick your area and tap Light is on or No light.
  • Three devices must agree. An area's status changes when 3 separate devices report the same thing within 15 minutes, so one person cannot flip it alone.
  • Bot check. Each report passes Cloudflare Turnstile, which usually needs no clicking.
  • Limits. One report per area per device every 10 minutes, at most 6 an hour per device, and a loose cap per network, since many phones share one mobile network address.
  • No identity. A device is a random id stored on that phone, and network addresses are only kept as a salted hash that changes daily. See Privacy.
  • Expiry. Without new reports an area goes back to unknown after 6 hours. Reports are deleted after 30 days.

Security data

The Security layer is built automatically from security news headlines. Aroni:

  • groups reports of the same incident from several outlets and counts it once;
  • classifies it as terrorism, kidnapping, banditry, killings and attacks, communal clashes, cult clashes and robbery, or a security operation, from the headline's wording;
  • reads the number reported killed or kidnapped, ignoring ages and keeping militants killed by troops separate from victims;
  • places it at an LGA when the headline names a town or LGA (774 LGAs), otherwise at the state.

It covers what was reported, not every incident, and numbers are read from headlines. Check the linked sources before relying on a figure. Download any filtered view as CSV from Alerts → Stats.

Sources & freshness

Every card and panel names its source and says how old the data is. Data on Aroni arrives in three ways:

  • Live on request: news, markets, air quality and statistics are fetched from the source when someone opens Aroni, and briefly cached at the edge (60 seconds for markets, 5 minutes for news).
  • On a schedule: a background worker updates weather and exchange rates every 30 minutes, alerts every 15 minutes, checks radio stations 4 times an hour, and records the NGX close on weekdays at 15:40 Nigeria time.
  • Official datasets: contracts, treaties, cables and bases are checked automatically (every 3 hours or daily) and published when the source changes. Prices follow the NBS monthly release.

Low data & offline

  • On 2G or with data saver on, Aroni starts on the Lite map, which downloads no map tiles.
  • The first visit is about 600 KB on a slow connection. Repeat visits are around 40 KB, because the app is kept on your device.
  • Heavy datasets (contracts, treaties, bases, cables, LGA shapes) only download when you open their layer or panel.
  • Recently viewed map tiles are kept, so places you have looked at open even with a poor signal.

Radio

Stations play straight from the broadcaster's own stream; Aroni never re-hosts or relays audio. Four times an hour Aroni checks every station: it listens twice, 12 seconds apart, and if the audio is identical it is a recording (for example an advert or an off-air loop), not live radio, and the station is hidden until it is live again. If a station fails to start, the player moves to the next one.

Moderation

Everything publishes automatically. An admin can still remove a headline or alert, add one, edit where it is pinned, or set a state's travel advisory. Removed items disappear from the map and the feeds for everyone.

Keyboard shortcuts

KeyAction
/Search places
EnterGo to the first search result
EscClear the search
+ −Zoom the map (when the map has focus)
Arrow keysPan the map (when the map has focus)

API reference

Conventions

Aroni's endpoints are the same ones the site uses. They are free to read for personal and research use.

  • Base URL: https://aroni.live. All responses are JSON.
  • Status: every response has ok. When a source fails, ok is false and the data is empty. Aroni never fills in made-up values.
  • Timestamps: ISO 8601 in UTC (fetched_at, generated).
  • Caching: responses carry Cache-Control; asking more often than that returns the same data.
  • Browsers: endpoints do not send CORS headers, so call them from a server or script, not from another website's page.
  • Responsible use: cache on your side, keep to a request a minute, and credit the original source named in each response.

News

GET/api/newscached 5 min

The latest headlines from 16 Nigerian outlets from the past 36 hours, newest first, with duplicates removed.

curl https://aroni.live/api/news
{
  "ok": true,
  "fetched_at": "2026-10-16T10:20:00.000Z",
  "sources": 16,
  "failed": [],
  "items": [
    { "title": "…", "link": "https://…", "source": "Premium Times",
      "date": 1792145400000, "topic": "security" }
  ]
}

Markets

GET/api/marketscached 60 s

The NGX All-Share index and equities, plus world indices, currencies, commodities and crypto with an intraday series.

{
  "ok": true,
  "fetched_at": "…",
  "world": [
    { "symbol": "^GSPC", "name": "S&P 500", "group": "Indices", "price": 7744.06,
      "change": 25.12, "pct": 0.325, "currency": "USD", "time": "…", "series": [7694.6, …] }
  ],
  "ngx": { … }
}

Air quality

GET/api/aircached 30 min

US AQI, PM2.5 and PM10 for each state, by state code.

{ "ok": true, "fetched_at": "…",
  "points": [ { "code": "KN", "aqi": 200, "pm25": 78, "pm10": 185.8 } ] }

Statistics

GET/api/statscached 1 day

Key World Bank indicators for Nigeria (inflation, growth, unemployment, health, education and more), each with its latest year.

{ "ok": true, "source": "World Bank Open Data", "updated": "2026-10-08",
  "items": [ { "id": "FP.CPI.TOTL.ZG", "label": "Inflation (consumer prices)",
               "kind": "pct", "group": "Economy", "value": 23.01, "year": 2025 } ] }

Radio stations

GET/api/radiocached 10 min

Nigerian stations that are live right now, with their stream URL and city. Stations playing a recording instead of live radio are left out.

{ "ok": true, "checked": true, "source": "Radio Browser",
  "stations": [ { "name": "METRO FM LAGOS", "url": "https://…/radio.mp3", "codec": "MP3",
                  "bitrate": 64, "place": "Lagos", "state": "LA", "lat": 6.5, "lon": 3.38 } ] }

Light report

POST/api/light-reportTurnstile required

Used by the Light tab. It needs a fresh Cloudflare Turnstile token from aroni.live, so it cannot be scripted. It is listed here so you know exactly what a report sends.

{ "area_id": 12, "has_light": true,
  "device_id": "random-uuid-kept-on-the-phone", "token": "turnstile-token" }

Replies {"ok": true, …}, or {"ok": false, "reason": "already_reported" | "rate_limited" | "turnstile_failed"}.

Datasets

Whole datasets as static JSON files, refreshed automatically. Each file says where it came from (source, source_url) and when it was built (generated).

FileContentsSource
/data/projects.jsonAbout 6,000 government contracts (title, buyer, contractor, ₦ value, date, state, LGA) and World Bank projectsOpen Contracting registry; World Bank
/data/treaties.json691 treaties: type, partners, dates, subjects, Nigeria's statusUN Treaty Collection
/data/cables.json8 undersea cables: route, landing points, owners, yearTeleGeography (CC BY-NC-SA)
/data/markets.json11,129 markets: name, coordinates, state, LGA, ward, frequency, goodsGRID3 Nigeria
/data/bases.jsonArmy, navy, air force and police sites with coordinatesOpenStreetMap (ODbL)
/data/prices.jsonFuel, transport and food prices by stateNational Bureau of Statistics
/geo/lgas.jsonBoundaries of all 774 LGAs (GeoJSON)geoBoundaries / GRID3

Each source's licence applies to its data. In particular, credit OpenStreetMap contributors for bases and TeleGeography for cables, and do not use the cable data commercially.

More

How it is built

SiteVite, React and TypeScript; MapLibre GL for the map and globe
HostingCloudflare Pages, with Pages Functions for the endpoints above
Background jobsA Cloudflare Worker on a schedule, and a GitHub Action that refreshes the datasets
DatabaseSupabase (Postgres) for light reports, weather, alerts and exchange rates
Bot protectionCloudflare Turnstile
Map dataOpenFreeMap (OpenStreetMap), EOX Sentinel-2 cloudless imagery, geoBoundaries and GRID3

Questions

Why is my area's light status "unknown"?

Not enough people have reported in the last few hours. It takes 3 devices agreeing within 15 minutes.

Why is a recent treaty or contract missing?

Aroni shows what the official source has published. Treaties are often registered with the UN years after signing, and contract portals publish with a delay. Several states do not publish contracts at all.

Why is a radio station missing?

It may be off air, playing a recording, or using a stream service that inserts adverts. Those are hidden until they are live again.

Can I use this data?

Yes, for personal, research and journalistic use. Credit Aroni and the original source, and follow that source's licence.

Something is wrong. Who do I tell?

Email [email protected].