> ## Documentation Index
> Fetch the complete documentation index at: https://docs.homelogs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors and Status Codes

> Response semantics for validation, lookup, and operational failures

## Error envelope

Application errors return:

```json theme={null}
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "state must be a 2-letter code",
    "request_id": "req-123"
  }
}
```

## Status semantics

* `200`: request succeeded
* `400`: malformed path identifier (`geo_id` format)
* `404`: valid identifier but resource not found
* `422`: query validation failed, including unsupported permit-scoped geo type or invalid cursor
* `429`: throttled/quota exceeded
* `500`: internal server error
* `503`: dependent permits data source unavailable/misconfigured

## Common codes

* `VALIDATION_ERROR`
* `INVALID_CURSOR`
* `INVALID_GEO_ID`
* `LOCATION_NOT_FOUND`
* `CONFIGURATION_ERROR`
* `DEPENDENCY_ERROR`
* `UNSUPPORTED_GEO_TYPE`
* `INTERNAL_ERROR`

## Request IDs

* responses include `X-Request-ID` when available
* errors include `error.request_id`
* include request ID when contacting support
