Browse documentation

Errors and quotas

Errors use Problem Details. Keep X-Request-ID for support requests.

HTTP statuses

StatusCodeMeaningCurrent V1
400INVALID_REQUESTInvalid parameterEmitted
401MISSING_API_KEY / INVALID_API_KEYMissing, invalid or revoked keyEmitted
403FORBIDDENReserved for future authorization rulesReserved
404RESOURCE_NOT_FOUND / ROUTE_NOT_FOUNDUnknown resource or routeEmitted
405METHOD_NOT_ALLOWEDReserved for unsupported operationsReserved
409CONFLICTReserved for future write operations; never emitted by read-only V1Reserved
415UNSUPPORTED_MEDIA_TYPEReserved for future requests with a bodyReserved
422UNPROCESSABLE_CONTENTReserved for future business validationReserved
429QUOTA_EXHAUSTED / TOO_MANY_REQUESTSMinute, monthly or global limit reachedEmitted
500INTERNAL_ERRORInternal error with request IDEmitted
502UPSTREAM_ERRORReserved for future upstream dependenciesReserved
503SERVICE_UNAVAILABLEReserved for temporary API unavailabilityReserved

Uniform format

Every emitted error uses application/problem+json. The code field is stable for automation; title and detail remain human-readable.

application/problem+json400
{
  "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"
    }
  ]
}

Quota headers

RateLimit-Limit: 60 RateLimit-Remaining: 42 RateLimit-Reset: 1787900400 Retry-After: 18 X-Request-ID: req_01HZZ2FENUA X-Data-Version: 2026.2

After a 429 response

Wait for the duration in Retry-After before retrying. 5xx errors are not counted against minute or monthly quotas.