{"openapi":"3.0.3","info":{"title":"Fenua API","description":"Stable geographic and inter-island transport reference data for French Polynesia. Every canonical geographic and transport resource carries sourceRefs for traceability. Data is not offered under a single blanket licence: reuse terms vary by source and are documented in the data guide.","version":"1.0.0","contact":{"name":"Pacific Knowledge","email":"contact@pacificknowledge.dev","url":"https://pacificknowledge.dev"},"license":{"name":"Source-specific data licences and reuse terms","url":"https://fenua-api.pacificknowledge.dev/fr/docs/data"}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"A secret created in the developer dashboard. Never put it in a URL."}},"responses":{"BadRequest":{"description":"The request parameters are invalid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"Unauthorized":{"description":"The API key is missing, malformed, inactive or revoked.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"Forbidden":{"description":"Reserved for future authorization rules; not emitted by read-only V1.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"NotFound":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"MethodNotAllowed":{"description":"Reserved for unsupported operations; not currently attached to V1 routes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"Conflict":{"description":"Reserved for future write conflicts; never emitted by read-only V1.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"UnsupportedMediaType":{"description":"Reserved for future request bodies; not emitted by read-only V1.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"UnprocessableContent":{"description":"Reserved for future business validation; not emitted by read-only V1.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"TooManyRequests":{"description":"A per-minute, monthly or global limit was reached.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"InternalError":{"description":"The service could not complete the request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"UpstreamError":{"description":"Reserved for future upstream dependencies; not currently emitted by V1.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"ServiceUnavailable":{"description":"Reserved for temporary API unavailability; readiness uses the health contract.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"schemas":{"Problem":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"Island":{"type":"object","required":["id","slug","name","aliases","kind","archipelago","latitude","longitude","communeIds","sourceRefs"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"kind":{"anyOf":[{"type":"string","enum":["ISLAND"]},{"type":"string","enum":["ATOLL"]},{"type":"string","enum":["OTHER"]}]},"archipelago":{"type":"string"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"communeIds":{"type":"array","items":{"type":"string"}},"sourceRefs":{"type":"array","items":{"type":"string"}}}},"Commune":{"type":"object","required":["id","officialId","slug","name","aliases","kind","parentCommuneId","islandIds","latitude","longitude","sourceRefs"],"properties":{"id":{"type":"string"},"officialId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"kind":{"anyOf":[{"type":"string","enum":["COMMUNE"]},{"type":"string","enum":["ASSOCIATED_COMMUNE"]}]},"parentCommuneId":{"anyOf":[{"type":"string"},{"type":"null"}]},"islandIds":{"type":"array","items":{"type":"string"}},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}]},"sourceRefs":{"type":"array","items":{"type":"string"}}}},"Airport":{"type":"object","required":["id","name","aliases","iataCode","icaoCode","islandId","latitude","longitude","active","sourceRefs"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"iataCode":{"anyOf":[{"minLength":3,"maxLength":3,"type":"string"},{"type":"null"}]},"icaoCode":{"anyOf":[{"minLength":4,"maxLength":4,"type":"string"},{"type":"null"}]},"islandId":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"active":{"type":"boolean"},"sourceRefs":{"type":"array","items":{"type":"string"}}}},"AirService":{"type":"object","required":["id","airlineId","originAirportId","destinationAirportId","active","validFrom","validUntil","sourceRefs"],"properties":{"id":{"type":"string"},"airlineId":{"type":"string"},"originAirportId":{"type":"string"},"destinationAirportId":{"type":"string"},"active":{"type":"boolean"},"validFrom":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]},"validUntil":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]},"sourceRefs":{"type":"array","items":{"type":"string"}}}},"MaritimeService":{"type":"object","required":["id","operatorId","name","serviceType","active","validFrom","validUntil","stops","sourceRefs"],"properties":{"id":{"type":"string"},"operatorId":{"type":"string"},"name":{"type":"string"},"serviceType":{"anyOf":[{"type":"string","enum":["PASSENGERS"]},{"type":"string","enum":["FREIGHT"]},{"type":"string","enum":["MIXED"]},{"type":"string","enum":["UNKNOWN"]}]},"active":{"type":"boolean"},"validFrom":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]},"validUntil":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]},"stops":{"type":"array","items":{"type":"object","required":["islandId","stopOrder","role"],"properties":{"islandId":{"type":"string"},"stopOrder":{"minimum":1,"type":"integer"},"role":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"sourceRefs":{"type":"array","items":{"type":"string"}}}},"Place":{"type":"object","required":["id","slug","name","type","subtitle","codes"],"properties":{"id":{"type":"string"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["island"]},{"type":"string","enum":["commune"]},{"type":"string","enum":["associated_commune"]},{"type":"string","enum":["airport"]}]},"subtitle":{"type":"string"},"codes":{"type":"array","items":{"type":"string"}}}},"Meta":{"type":"object","required":["apiVersion","dataVersion","dataUpdatedAt","status","attribution"],"properties":{"apiVersion":{"type":"string","enum":["v1"]},"dataVersion":{"type":"string"},"dataUpdatedAt":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["operational"]},"attribution":{"type":"array","items":{"type":"string"}}}},"MetaResponse":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Meta"}}},"IslandResponse":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Island"}}},"IslandCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Island"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"CommuneResponse":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Commune"}}},"CommuneCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Commune"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"AirportResponse":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Airport"}}},"AirportCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Airport"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"AirServiceCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AirService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"MaritimeServiceCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MaritimeService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"PlaceCollection":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Place"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}}}},"paths":{"/api/v1/meta":{"get":{"operationId":"getMetadata","summary":"Describe the API contract and active dataset","tags":["Metadata"],"description":"Returns the API version, dataset release, update timestamp, service status and source attributions. Use this operation to record which reproducible dataset version backed a result.","security":[{"apiKey":[]}],"responses":{"200":{"description":"The active API and dataset versions.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Meta"}}},"examples":{"success":{"value":{"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)","OpenFlights — historical route database (ODbL 1.0 / DbCL 1.0)","© OpenStreetMap contributors (ODbL 1.0)"]}}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/islands":{"get":{"operationId":"listIslands","summary":"List islands and atolls","tags":["Geography"],"description":"Returns the complete island and atoll reference, including stable IDs, URL-safe slugs, archipelagos, linked commune IDs, available coordinates and source references.","security":[{"apiKey":[]}],"responses":{"200":{"description":"A collection of islands and atolls.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Island"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"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}}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/islands/{idOrSlug}":{"get":{"operationId":"getIsland","summary":"Get an island by stable ID or slug","tags":["Geography"],"description":"Resolves one island or atoll from its exact stable identifier (for example isl_031) or slug (for example huahine). The response includes linked commune IDs and provenance references.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"path","name":"idOrSlug","required":true,"description":"Exact stable resource ID or URL-safe slug."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"The requested island.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Island"}}},"examples":{"success":{"value":{"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"]}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"404":{"description":"The requested resource does not exist.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"resourceNotFound":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/resource-not-found","code":"RESOURCE_NOT_FOUND","title":"Resource not found","status":404,"detail":"The requested resource does not exist.","instance":"/api/v1/islands/unknown","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/islands/{idOrSlug}/air-services":{"get":{"operationId":"listIslandAirServices","summary":"List air services touching an island","tags":["Aviation"],"description":"Returns active directional air services whose origin or destination airport belongs to the requested island. An empty collection is valid while current operations remain under review.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"path","name":"idOrSlug","required":true,"description":"Exact stable resource ID or URL-safe slug."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Active directional air services touching the island. An empty collection is valid while current operations remain under review.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AirService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"data":[],"meta":{"count":0}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"404":{"description":"The requested resource does not exist.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"resourceNotFound":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/resource-not-found","code":"RESOURCE_NOT_FOUND","title":"Resource not found","status":404,"detail":"The requested resource does not exist.","instance":"/api/v1/islands/unknown","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/islands/{idOrSlug}/maritime-services":{"get":{"operationId":"listIslandMaritimeServices","summary":"List maritime lines calling at an island","tags":["Maritime"],"description":"Returns active maritime services whose ordered stops include the requested island. An empty collection is valid while candidate networks remain under review.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"path","name":"idOrSlug","required":true,"description":"Exact stable resource ID or URL-safe slug."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Active maritime services calling at the island. An empty collection is valid while candidates remain under review.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MaritimeService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"data":[],"meta":{"count":0}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"404":{"description":"The requested resource does not exist.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"resourceNotFound":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/resource-not-found","code":"RESOURCE_NOT_FOUND","title":"Resource not found","status":404,"detail":"The requested resource does not exist.","instance":"/api/v1/islands/unknown","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/communes":{"get":{"operationId":"listCommunes","summary":"List communes and associated communes","tags":["Geography"],"description":"Returns communes and associated communes with parent and island relationships. Optionally filter by an exact island stable ID or slug; an unknown island filter yields an empty collection.","parameters":[{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"island","required":false,"description":"Exact island stable ID or slug."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"A collection of communes and associated communes.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Commune"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"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}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/communes/{idOrSlug}":{"get":{"operationId":"getCommune","summary":"Get a commune by stable ID or slug","tags":["Geography"],"description":"Resolves one commune or associated commune from its exact stable identifier or slug and returns its administrative parent, island relationships and provenance references.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"path","name":"idOrSlug","required":true,"description":"Exact stable resource ID or URL-safe slug."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"The requested commune.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Commune"}}},"examples":{"success":{"value":{"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"]}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"404":{"description":"The requested resource does not exist.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"resourceNotFound":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/resource-not-found","code":"RESOURCE_NOT_FOUND","title":"Resource not found","status":404,"detail":"The requested resource does not exist.","instance":"/api/v1/islands/unknown","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/airports":{"get":{"operationId":"listAirports","summary":"List public airports and aerodromes","tags":["Aviation"],"description":"Returns the public aerodrome inventory with stable IDs, IATA/ICAO codes, coordinates, operating status and provenance. Filters may constrain the island, IATA code or active status; all statuses are returned by default.","parameters":[{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"island","required":false,"description":"Exact island stable ID or slug."},{"schema":{"minLength":3,"maxLength":3,"type":"string"},"example":"PPT","in":"query","name":"iata","required":false,"description":"Exact three-letter IATA airport code, matched case-insensitively."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"example":"true","in":"query","name":"active","required":false,"description":"Filter aerodromes by operating status. Both statuses are returned when omitted."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"A collection of public airports and aerodromes.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Airport"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"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}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/airports/{id}":{"get":{"operationId":"getAirport","summary":"Get an airport by stable ID or code","tags":["Aviation"],"description":"Resolves one public airport or aerodrome case-insensitively from its stable ID, three-letter IATA code or four-letter ICAO code.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"examples":{"PPT":{"value":"PPT"},"apt_ntaa":{"value":"apt_ntaa"}},"in":"path","name":"id","required":true,"description":"Exact stable airport ID, IATA code or ICAO code."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"The requested airport or aerodrome.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Airport"}}},"examples":{"success":{"value":{"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"]}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"404":{"description":"The requested resource does not exist.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"resourceNotFound":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/resource-not-found","code":"RESOURCE_NOT_FOUND","title":"Resource not found","status":404,"detail":"The requested resource does not exist.","instance":"/api/v1/islands/unknown","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/air-services":{"get":{"operationId":"listAirServices","summary":"List directional air services","tags":["Aviation"],"description":"Returns directional airport-to-airport service records. Active services are selected by default. Set active=false to inspect dated OpenFlights historical records; they end on 2014-06-30 and must not be presented as current schedules.","parameters":[{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"island","required":false,"description":"Exact island stable ID or slug."},{"schema":{"maxLength":100,"type":"string"},"example":"aln_air_tahiti","in":"query","name":"airline","required":false,"description":"Exact airline stable ID, name or code, matched case-insensitively."},{"schema":{"maxLength":100,"type":"string"},"example":"PPT","in":"query","name":"origin","required":false,"description":"Exact origin airport stable ID, IATA code or ICAO code."},{"schema":{"maxLength":100,"type":"string"},"example":"HUH","in":"query","name":"destination","required":false,"description":"Exact destination airport stable ID, IATA code or ICAO code."},{"schema":{"maxLength":100,"type":"string"},"example":"PPT","in":"query","name":"airport","required":false,"description":"Exact airport identifier or code matched against either endpoint."},{"schema":{"default":"true","anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"example":"false","in":"query","name":"active","required":false,"description":"By default, transport endpoints expose only active services."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"A collection of directional air services. The default active=true may return an empty collection while current operations remain under review.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AirService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"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}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/maritime-services":{"get":{"operationId":"listMaritimeServices","summary":"List inter-island maritime lines","tags":["Maritime"],"description":"Returns maritime service records with ordered island stops and validity metadata. Active services are selected by default. Set active=false to inspect provenance-backed candidate networks that are not current operating schedules.","parameters":[{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"island","required":false,"description":"Exact island stable ID or slug."},{"schema":{"maxLength":100,"type":"string"},"example":"mop_navigation_australes","in":"query","name":"operator","required":false,"description":"Exact maritime operator stable ID or name, matched case-insensitively."},{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"origin","required":false,"description":"Exact island stable ID or slug."},{"schema":{"maxLength":100,"type":"string"},"examples":{"huahine":{"value":"huahine"},"isl_031":{"value":"isl_031"}},"in":"query","name":"destination","required":false,"description":"Exact island stable ID or slug."},{"schema":{"anyOf":[{"type":"string","enum":["PASSENGERS"]},{"type":"string","enum":["FREIGHT"]},{"type":"string","enum":["MIXED"]},{"type":"string","enum":["UNKNOWN"]}]},"example":"MIXED","in":"query","name":"serviceType","required":false,"description":"Filter by the declared passenger, freight, mixed or unknown service type."},{"schema":{"default":"true","anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"example":"false","in":"query","name":"active","required":false,"description":"By default, transport endpoints expose only active services."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"A collection of maritime services. The default active=true may return an empty collection while candidates remain under review.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MaritimeService"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"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}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/places/search":{"get":{"operationId":"searchPlaces","summary":"Search places with deterministic ranking","tags":["Search"],"description":"Searches island, commune, associated-commune and airport names, aliases and airport codes. Ranking is deterministic and accent-tolerant, with exact and prefix matches ahead of fuzzy matches.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"example":"huahine","in":"query","name":"q","required":true,"description":"Place name, alias or airport code. Accents and apostrophe variants are normalized."},{"schema":{"maxLength":120,"pattern":"^(island|commune|associated_commune|airport)(,(island|commune|associated_commune|airport))*$","type":"string"},"example":"island,commune","in":"query","name":"types","required":false,"description":"Comma-separated resource kinds to include, without spaces."},{"schema":{"minimum":1,"maximum":50,"default":10,"type":"integer"},"example":10,"in":"query","name":"limit","required":false,"description":"Maximum number of ranked matches to return."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Ranked place search results.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Place"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"data":[{"id":"isl_031","slug":"huahine","name":"Huahine","type":"island","subtitle":"Îles Sous-le-Vent","codes":[]}],"meta":{"count":1}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}},"/api/v1/places/autocomplete":{"get":{"operationId":"autocompletePlaces","summary":"Return compact display-ready suggestions","tags":["Search"],"description":"Returns the same deterministically ranked place matches as search in a compact display-ready shape. Use types to restrict resource kinds and limit to cap the result count.","parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"example":"huahine","in":"query","name":"q","required":true,"description":"Place name, alias or airport code. Accents and apostrophe variants are normalized."},{"schema":{"maxLength":120,"pattern":"^(island|commune|associated_commune|airport)(,(island|commune|associated_commune|airport))*$","type":"string"},"example":"island,commune","in":"query","name":"types","required":false,"description":"Comma-separated resource kinds to include, without spaces."},{"schema":{"minimum":1,"maximum":50,"default":10,"type":"integer"},"example":10,"in":"query","name":"limit","required":false,"description":"Maximum number of ranked matches to return."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Compact, display-ready place suggestions.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Place"}},"meta":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"}}}}},"examples":{"success":{"value":{"data":[{"id":"isl_031","slug":"huahine","name":"Huahine","type":"island","subtitle":"Îles Sous-le-Vent","codes":[]}],"meta":{"count":1}}}}}}},"400":{"description":"One or more request parameters are invalid.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"invalidRequest":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-request","code":"INVALID_REQUEST","title":"Invalid request","status":400,"detail":"One or more request parameters are invalid.","instance":"/api/v1/places/search?q=","requestId":"req_01HZZ2FENUA","errors":[{"code":"INVALID_PARAMETER","message":"must NOT have fewer than 1 characters","path":"/q"}]}}}}}},"401":{"description":"The API key is missing, malformed, inactive or revoked.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"missingApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/missing-api-key","code":"MISSING_API_KEY","title":"API key required","status":401,"detail":"Send your key in the X-API-Key header.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"invalidApiKey":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/invalid-api-key","code":"INVALID_API_KEY","title":"Invalid API key","status":401,"detail":"The supplied API key is malformed or inactive.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"429":{"description":"A quota or global traffic limit was reached.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."},"RateLimit-Limit":{"schema":{"schema":{"type":"integer"}},"description":"Current quota limit."},"RateLimit-Remaining":{"schema":{"schema":{"type":"integer"}},"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"schema":{"type":"integer"}},"description":"Unix timestamp when the current window resets."},"Retry-After":{"schema":{"schema":{"type":"integer"}},"description":"Seconds to wait before retrying."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"quotaExhausted":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/quota-exhausted","code":"QUOTA_EXHAUSTED","title":"Quota exhausted","status":429,"detail":"The per-minute quota is exhausted. Retry after the indicated reset.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}},"globalLimit":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/too-many-requests","code":"TOO_MANY_REQUESTS","title":"Too many requests","status":429,"detail":"The global request limit was reached. Retry later.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}},"500":{"description":"The service could not complete the request.","headers":{"X-Request-ID":{"schema":{"schema":{"type":"string"}},"description":"Request correlation identifier."},"X-Data-Version":{"schema":{"schema":{"type":"string"}},"description":"Dataset release used for this response."},"X-Data-Updated-At":{"schema":{"schema":{"type":"string","format":"date-time"}},"description":"ISO 8601 timestamp of the active dataset."}},"content":{"application/problem+json":{"schema":{"type":"object","required":["type","code","title","status","detail","instance","requestId"],"properties":{"type":{"format":"uri","type":"string"},"code":{"pattern":"^[A-Z][A-Z0-9_]*$","type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"requestId":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"}}}}}},"examples":{"internalError":{"value":{"type":"https://fenua-api.pacificknowledge.dev/problems/internal-error","code":"INTERNAL_ERROR","title":"Internal error","status":500,"detail":"The service could not complete the request. Retry later or contact support with the request ID.","instance":"/api/v1/islands","requestId":"req_01HZZ2FENUA"}}}}}}}}}},"servers":[{"url":"https://api-fenua-api.pacificknowledge.dev","description":"Production"},{"url":"http://localhost:3001","description":"Local"}],"tags":[{"name":"Metadata","description":"API version, dataset release, freshness and required attributions."},{"name":"Geography","description":"Stable identifiers and relationships for French Polynesian places."},{"name":"Aviation","description":"Public aerodromes and directional air-service records with explicit validity and provenance."},{"name":"Maritime","description":"Inter-island maritime records with ordered stops, validity and provenance."},{"name":"Search","description":"Deterministic place search and display-ready autocomplete suggestions."}],"externalDocs":{"description":"Fenua API documentation","url":"https://fenua-api.pacificknowledge.dev/fr/docs"},"x-data-provenance":{"description":"Sources referenced by records in the published dataset. A source reference documents provenance; it does not replace the source-specific licence or grant additional reuse rights.","documentation":"https://fenua-api.pacificknowledge.dev/fr/docs/data","sources":[{"id":"src_ispf_admin_2022","name":"Limites géographiques administratives","producer":"Institut de la statistique de la Polynésie française","usage":"Authoritative geographic hierarchy","license":"ODbL-1.0","url":"https://www.data.gouv.fr/datasets/limites-geographiques-administratives"},{"id":"src_dac_airports_2025","name":"Gestion des aérodromes de Polynésie française","producer":"Direction de l’aviation civile de Polynésie française","usage":"Official manual cross-check of the aerodrome inventory","license":"rights-reserved","url":"https://www.service-public.pf/dac/faq/"},{"id":"src_ourairports_2026_08_26","name":"OurAirports open data","producer":"OurAirports community","usage":"Aerodrome coordinates and IATA/ICAO codes","license":"Public Domain / Unlicense","url":"https://ourairports.com/data/"},{"id":"src_openflights_routes_2014","name":"OpenFlights historical route database","producer":"OpenFlights / Airline Route Mapper","usage":"Inactive historical directional routes ending on 2014-06-30","license":"ODbL-1.0 / DbCL-1.0","url":"https://openflights.org/data.php"},{"id":"src_osm_tuhaa_pae_2026_08_27","name":"OpenStreetMap — Tuhaa Pae IV ferry ways","producer":"OpenStreetMap contributors","usage":"Inactive candidate maritime network, not a current operating schedule","license":"ODbL-1.0","url":"https://www.openstreetmap.org/copyright"}]}}