Maldives Island Registry

API Documentation

Free, no-auth REST API. Base URL is this host. All responses are JSON unless noted. Every value traces to a source record — see the source registry.

Please cache responses and keep request rates reasonable; this is public infrastructure.

GET/api/islands

List islands with filters and pagination.

ParameterDescription
atollAtoll code, e.g. K, HDh
statusinhabited | uninhabited | resort | industrial | airport | agricultural
qName search (official or Dhivehi)
conflictstrue → only islands with unresolved conflicts
min_completeness0–100 minimum overall completeness
limit / offsetPagination (limit ≤ 2000)
curl "$BASE/api/islands?atoll=K&status=inhabited&limit=5"
{ "total": 1132, "count": 5, "islands": [ { "slug": "k-maafushi", "name": "Maafushi", "status": "inhabited", "overallScore": 78, "unresolvedConflicts": 2, "atoll": { "code": "K", "name": "Kaafu" }, … } ] }

GET/api/islands/{slug}

Full island record: names, per-source geometries, population records, images, conflicts, match candidates and every source-attributed field value.

curl "$BASE/api/islands/k-maafushi"
{ "island": { …, "population": [...], "conflicts": [...] }, "fieldValues": [ { "fieldName": "population_total", "rawValue": "1438", "isCanonical": true, "source": { "slug": "census-2022" }, "sourceUrl": "https://census.gov.mv/…", "dateScraped": "2026-06-11T…" } ] }

GET/api/atolls

All 21 administrative atolls with island counts.

curl "$BASE/api/atolls"
{ "atolls": [ { "code": "HA", "name": "Haa Alifu", "naturalAtoll": "Thiladhunmathi Uthuruburi", "_count": { "islands": 42 } } ] }

GET/api/atolls/{code}

Single atoll with its islands and census population records.

curl "$BASE/api/atolls/K"
{ "atoll": { "code": "K", "islands": [ … ] } }

GET/api/search

Global search over island names (official / Dhivehi / alternative), atolls, statuses and types.

ParameterDescription
qSearch term (required)
curl "$BASE/api/search?q=maafushi"
{ "results": [ { "type": "island", "id": "k-maafushi", "label": "Maafushi — Kaafu", "href": "/islands/k-maafushi" } ] }

GET/api/conflicts

Data conflicts with full per-source values.

ParameterDescription
statusunresolved | under_review | resolved | source_outdated | needs_external_confirmation
severitylow | medium | high | critical
fieldField name, e.g. population_total
limit / offsetPagination
curl "$BASE/api/conflicts?severity=high&status=unresolved"
{ "total": 213, "conflicts": [ { "fieldName": "lat", "severity": "high", "canonicalValue": "4.0511", "sourceValues": "[{\"source\":\"onemap\",…}]" } ] }

GET/api/sources

The full source registry incl. last scrape status and record counts.

curl "$BASE/api/sources"
{ "sources": [ { "slug": "onemap", "priority": 10, "last_scrape_status": "success", "records_collected": 1561 } ] }

GET/api/snapshots

Published data snapshots and their files with checksums.

curl "$BASE/api/snapshots"
{ "snapshots": [ { "snapshotDate": "2026-06-11", "totalIslands": 1132, "files": [ { "path": "processed/islands_canonical.csv", "checksum": "…" } ] } ] }