API reference
V1 exposes geographic resources, aerodromes, transport services and unified search.
https://api-fenua-api.pacificknowledge.dev/api/v1API v1 contract · DATA 2026.2 · verified 27 August 2026 · maintained by Pacific Knowledge.
Endpoints
Metadata
/metaDescribe the active API and DATA versions
Geography
/islandsList islands and atolls
/islands/{idOrSlug}Retrieve an island
/communesList communes
/communes/{idOrSlug}Retrieve a commune
Aviation
/airportsList public aerodromes
/airports/{id}Retrieve an aerodrome
/air-servicesList published air services
/islands/{idOrSlug}/air-servicesList an island’s air services
Maritime
/maritime-servicesList published maritime services
/islands/{idOrSlug}/maritime-servicesList an island’s maritime services
Search
/places/searchSearch places
/places/autocompleteAutocomplete a place name
Responses by endpoint
Each entry shows a complete response and only the errors possible for that operation. Inactive transport examples explicitly use active=false.
GET/metaVersions, status and attributions for the active dataset.
{
"data": {
"apiVersion": "v1",
"dataVersion": "2026.2",
"dataUpdatedAt": "2026-08-27T00:00:00-10:00",
"status": "operational",
"attribution": [
"Institut de la statistique de la Polynésie française (ODbL 1.0)",
"OurAirports (Public Domain)"
]
}
}GET/islandsComplete list of islands and atolls.
{
"data": [
{
"id": "isl_031",
"slug": "huahine",
"name": "Huahine",
"aliases": [],
"kind": "ISLAND",
"archipelago": "Îles Sous-le-Vent",
"latitude": null,
"longitude": null,
"communeIds": [
"com_24"
],
"sourceRefs": [
"src_ispf_admin_2022"
]
}
],
"meta": {
"count": 1
}
}GET/islands/{idOrSlug}Stable identifier or slug, for example huahine.
{
"data": {
"id": "isl_031",
"slug": "huahine",
"name": "Huahine",
"aliases": [],
"kind": "ISLAND",
"archipelago": "Îles Sous-le-Vent",
"latitude": null,
"longitude": null,
"communeIds": [
"com_24"
],
"sourceRefs": [
"src_ispf_admin_2022"
]
}
}GET/islands/{idOrSlug}/air-servicesActive air services touching the island. An empty list is valid.
GET/islands/{idOrSlug}/maritime-servicesActive maritime services calling at the island. An empty list is valid.
GET/communesCommunes and associated communes, filterable by island.
{
"data": [
{
"id": "com_35",
"officialId": "35",
"slug": "papeete",
"name": "Papeete",
"aliases": [],
"kind": "COMMUNE",
"parentCommuneId": null,
"islandIds": [
"isl_090"
],
"latitude": null,
"longitude": null,
"sourceRefs": [
"src_ispf_admin_2022"
]
}
],
"meta": {
"count": 1
}
}GET/communes/{idOrSlug}Commune by stable identifier or slug.
{
"data": {
"id": "com_35",
"officialId": "35",
"slug": "papeete",
"name": "Papeete",
"aliases": [],
"kind": "COMMUNE",
"parentCommuneId": null,
"islandIds": [
"isl_090"
],
"latitude": null,
"longitude": null,
"sourceRefs": [
"src_ispf_admin_2022"
]
}
}GET/airportsAerodromes filterable by island, IATA code and status.
Parameters
island · query · string · optionaliata · query · string(3) · optionalactive · query · true|false · optional
Possible errors
{
"data": [
{
"id": "apt_ntaa",
"name": "Fa'a'ā International Airport",
"aliases": [
"Papeete"
],
"iataCode": "PPT",
"icaoCode": "NTAA",
"islandId": "isl_090",
"latitude": -17.553472,
"longitude": -149.606936,
"active": true,
"sourceRefs": [
"src_dac_airports_2025",
"src_ourairports_2026_08_26"
]
}
],
"meta": {
"count": 1
}
}GET/airports/{id}Aerodrome by ID, IATA code or ICAO code.
{
"data": {
"id": "apt_ntaa",
"name": "Fa'a'ā International Airport",
"aliases": [
"Papeete"
],
"iataCode": "PPT",
"icaoCode": "NTAA",
"islandId": "isl_090",
"latitude": -17.553472,
"longitude": -149.606936,
"active": true,
"sourceRefs": [
"src_dac_airports_2025",
"src_ourairports_2026_08_26"
]
}
}GET/air-services?active=falseDirectional services. active=true by default; published records are historical.
Parameters
island · airline · origin · destination · airport · query · optionalactive · query · true|false · optional (default true)
Possible errors
{
"data": [
{
"id": "air_2014_vt_ahe_ppt",
"airlineId": "aln_air_tahiti",
"originAirportId": "apt_nthe",
"destinationAirportId": "apt_ntaa",
"active": false,
"validFrom": null,
"validUntil": "2014-06-30",
"sourceRefs": [
"src_openflights_routes_2014"
]
}
],
"meta": {
"count": 1
}
}GET/maritime-services?active=falseCandidate maritime lines, filterable by island, operator, origin, destination and type.
Parameters
island · operator · origin · destination · query · optionalserviceType · query · PASSENGERS|FREIGHT|MIXED|UNKNOWNactive · query · true|false · optional (default true)
Possible errors
{
"data": [
{
"id": "mar_tuhaa_pae_iv_candidate",
"operatorId": "mop_navigation_australes",
"name": "Tuhaa Pae IV — réseau candidat",
"serviceType": "UNKNOWN",
"active": false,
"validFrom": "2026-08-27",
"validUntil": null,
"stops": [
{
"islandId": "isl_090",
"stopOrder": 1,
"role": "ORIGIN"
},
{
"islandId": "isl_077",
"stopOrder": 6,
"role": "TERMINUS"
}
],
"sourceRefs": [
"src_osm_tuhaa_pae_2026_08_27"
]
}
],
"meta": {
"count": 1
}
}GET/places/search?q=huahine&limit=10Deterministic search across names, aliases and codes.
Parameters
q · query · string · requiredtypes · query · island,commune,associated_commune,airportlimit · query · integer 1–50 · default 10
Possible errors
{
"data": [
{
"id": "isl_031",
"slug": "huahine",
"name": "Huahine",
"type": "island",
"subtitle": "Îles Sous-le-Vent",
"codes": []
}
],
"meta": {
"count": 1
}
}GET/places/autocomplete?q=hua&limit=10Compact, display-ready suggestions.
Parameters
q · query · string · requiredtypes · query · island,commune,associated_commune,airportlimit · query · integer 1–50 · default 10
Possible errors
{
"data": [
{
"id": "isl_031",
"slug": "huahine",
"name": "Huahine",
"type": "island",
"subtitle": "Îles Sous-le-Vent",
"codes": []
}
],
"meta": {
"count": 1
}
}By default, these endpoints return active services only—none at present. Use active=false to inspect dated candidates and provenance; do not present them as current schedules.
View service status