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.
Who has power now, by area, from people's reports.
Attacks, kidnappings and banditry by state and LGA, with a download.
NGX All-Share and world markets, minute by minute.
Treaties and undersea cables connecting Nigeria to the world.
Quick start
- Open aroni.live on a phone or computer. No account and no app needed.
- The scoreboard at the top shows Nigeria's population, births, deaths and GDP, counting live.
- Aroni opens on the globe with every layer off. Switch layers on from the icons on the left (on a phone, the Layers tab).
- Tap anything on the map, such as a state, an LGA, a pin or a cable, to open its card.
- Open a panel from the dock at the bottom for lists, statistics and downloads.
- 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
| Layer | What it shows | Source | Updates |
|---|---|---|---|
| Light | Whether areas have electricity now, and hours of light today | Aroni users' reports | Live |
| News | Headlines placed on the state or town they mention | 16 Nigerian outlets' RSS feeds | Every 5 min |
| Alerts | Safety and movement alerts, placed where they happen | News feeds, plus admin edits | Every 15 min |
| Security | Attacks, kidnappings, banditry, clashes and security operations by state and LGA | Security news headlines | Every 5 min |
| Projects | Federal and state government contracts, pinned to their LGA | Open Contracting data registry; World Bank | Checked every 3 h |
| Treaties | Countries with a treaty with Nigeria, arcs from Abuja | UN Treaty Collection | Checked every 3 h |
| Sea links | The 8 undersea internet cables landing in Nigeria and the 47 countries they reach | TeleGeography Submarine Cable Map | Daily |
| Bases | Army, navy, air force and police sites | OpenStreetMap | Daily |
| Radio | Nigerian radio stations you can play, at their city | Radio Browser and broadcasters' own streams | Checked 4× an hour |
| Weather | Temperature and rain in all 37 state capitals | Open-Meteo | Every 30 min |
| Air | Air quality index, PM2.5 and PM10 by state | Open-Meteo air quality | Every 30 min |
| Prices | Petrol, diesel, gas, kerosene, fares and food, shaded by state | National Bureau of Statistics | Monthly |
| Airports | Passenger airports | OurAirports | Static |
| Markets | Every market in Nigeria (about 11,000), with ward, LGA, state, market days and goods; markets with WFP food prices are ringed in gold | GRID3 Nigeria; WFP | Daily check |
| Safety | Travel advisory level by state | Aroni admin, from official advisories | When it changes |
| Cams | Public live cameras (links to the operator) | Camera operators | When added |
| Night lights | Lights seen from space last night. Lit towns had power; cloud can hide them | NASA GIBS, VIIRS (NOAA-20) | Daily |
| Starlink / comms | Starlink, OneWeb and Iridium satellites at their real height | CelesTrak | Positions every 2 s, orbits every 6 h |
| All satellites | Every active satellite (about 16,000) | CelesTrak | Positions every 2 s, orbits every 6 h |
| Military / intel | Military satellites in the public catalogue | CelesTrak | Positions every 2 s, orbits every 6 h |
| GPS / navigation | GPS, GLONASS, Galileo and BeiDou | CelesTrak | Positions every 2 s, orbits every 6 h |
| Earth observation | Imaging and weather satellites | CelesTrak | Positions every 2 s, orbits every 6 h |
| Day / night cycle | Where it is night, with civil and nautical twilight | Worked out from the sun's position | Every minute |
| 3D buildings | Buildings in height when zoomed in to a city | OpenStreetMap via OpenFreeMap | With 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
All headlines, newest first, with the outlet and topic. The same story from several outlets is shown once.
Live alerts, and a Stats view for security incidents with charts by type, state and LGA, plus CSV download.
Report light for your area and see the day's on/off timeline.
Conditions and air quality for every state capital.
Fuel, transport and food prices by state, air fares and the list of airports.
NGX All-Share and top equities, plus world indices, currencies, commodities and crypto.
Search government contracts by state, ministry or contractor, sort by value, download as a spreadsheet. World Bank projects too.
Every treaty Nigeria is part of, filter by kind and subject, see partners, download.
Population, economy, health and more from the World Bank, UN and IMF.
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
| Key | Action |
|---|---|
| / | Search places |
| Enter | Go to the first search result |
| Esc | Clear the search |
| + − | Zoom the map (when the map has focus) |
| Arrow keys | Pan 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,okisfalseand 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
/api/newscached 5 minThe latest headlines from 16 Nigerian outlets from the past 36 hours, newest first, with duplicates removed.
curl https://aroni.live/api/newsconst res = await fetch("https://aroni.live/api/news");
const { ok, items } = await res.json();
for (const n of items) console.log(n.source, n.title);import requests
data = requests.get("https://aroni.live/api/news", timeout=30).json()
for n in data["items"]:
print(n["source"], n["title"]){
"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
/api/marketscached 60 sThe 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
/api/aircached 30 minUS 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
/api/statscached 1 dayKey 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
/api/radiocached 10 minNigerian 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
/api/light-reportTurnstile requiredUsed 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).
| File | Contents | Source |
|---|---|---|
/data/projects.json | About 6,000 government contracts (title, buyer, contractor, ₦ value, date, state, LGA) and World Bank projects | Open Contracting registry; World Bank |
/data/treaties.json | 691 treaties: type, partners, dates, subjects, Nigeria's status | UN Treaty Collection |
/data/cables.json | 8 undersea cables: route, landing points, owners, year | TeleGeography (CC BY-NC-SA) |
/data/markets.json | 11,129 markets: name, coordinates, state, LGA, ward, frequency, goods | GRID3 Nigeria |
/data/bases.json | Army, navy, air force and police sites with coordinates | OpenStreetMap (ODbL) |
/data/prices.json | Fuel, transport and food prices by state | National Bureau of Statistics |
/geo/lgas.json | Boundaries 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
| Site | Vite, React and TypeScript; MapLibre GL for the map and globe |
| Hosting | Cloudflare Pages, with Pages Functions for the endpoints above |
| Background jobs | A Cloudflare Worker on a schedule, and a GitHub Action that refreshes the datasets |
| Database | Supabase (Postgres) for light reports, weather, alerts and exchange rates |
| Bot protection | Cloudflare Turnstile |
| Map data | OpenFreeMap (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].