> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.coperniq.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.coperniq.io/_mcp/server.

## AHJs and an `isCustom` flag on properties

### New: AHJ (Authorities Having Jurisdiction) endpoints

Look up jurisdictions and manage their custom property values through the public API.

| Method  | Path         | Description                                                                                                       |
| ------- | ------------ | ----------------------------------------------------------------------------------------------------------------- |
| `GET`   | `/ahjs`      | List AHJs (pagination, name/state code search, filter by `state`/`type`/`country`, or geo lookup via `lat`+`lng`) |
| `GET`   | `/ahjs/{id}` | Get an AHJ by ID, including catalog metadata and custom field values                                              |
| `PATCH` | `/ahjs/{id}` | Update custom property values on an AHJ                                                                           |

#### Notes

* AHJs are seeded globally from the US Census TIGER catalog, plus per-company private records. Only active jurisdictions are returned.
* Pass `lat`+`lng` together to return every AHJ whose boundary covers the point (e.g. city, county, and state), ordered most-specific-first. Name/state/type filters are ignored in geo mode.
* Built-in AHJ fields (shown under **Community Data** in the UI) are read-only. Only custom fields can be updated via `PATCH /ahjs/{id}`; the body `custom` map is keyed by property `keyName` — fetch the available keys via `GET /properties?record_type=ahj`. Pass `null` to clear a value.

### `GET /properties` — `ahj` record type and `isCustom` flag

* The `ahj` record type is now documented for `GET /properties` (`?record_type=ahj`). It was already returned in the default response and is now an accepted filter value.
* For the `ahj` scope, only **customer-defined custom** properties are returned. Standard built-in AHJ fields are no longer listed here — they are not updatable via the public API and are exposed directly on the AHJ object instead.
* Every property in the response now includes an **`isCustom`** boolean: `true` for customer-defined custom columns, `false` for built-in standard properties. Items in the `ahj` array are always `isCustom: true`.