Coperniq ahJs API
The ahJs API from Coperniq — 2 operation(s) for ahjs.
The ahJs API from Coperniq — 2 operation(s) for ahjs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coperniq-ahjs-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Key accounts Ah Js API
version: 1.0.0
servers:
- url: https://api.coperniq.io/v1
description: Production server
tags:
- name: ahJs
paths:
/ahjs:
get:
operationId: list-ahjs
summary: List AHJs
description: 'Retrieve a paginated list of Authorities Having Jurisdiction (AHJs).
Supports:
- Pagination (`page_size`, `page`)
- Sorting by name (`order_by`, default: asc)
- Search by name or state code (`q`) — when `q` is exactly two characters it also matches the two-letter state code
- Filter by `state` (two-letter code), `type`, and `country` (default: `US`)
- Geo mode: 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, and an empty array is returned if none cover the point.
Only active jurisdictions are returned. AHJs are seeded globally from the US Census TIGER catalog plus per-company private records. Most fields are read-only; only custom fields can be updated (see PATCH /ahjs/{id}).
'
tags:
- ahJs
parameters:
- name: page_size
in: query
description: Number of items per page (max 100)
required: false
schema:
type: integer
default: 20
- name: page
in: query
description: Page number (1-based)
required: false
schema:
type: integer
default: 1
- name: q
in: query
description: Search by AHJ name (case-insensitive). If exactly two characters, also matches the state code.
required: false
schema:
type: string
- name: state
in: query
description: Filter by two-letter state code (e.g. "CA").
required: false
schema:
type: string
- name: type
in: query
description: Filter by jurisdiction type.
required: false
schema:
$ref: '#/components/schemas/AhjsGetParametersType'
- name: country
in: query
description: Filter by country code.
required: false
schema:
type: string
default: US
- name: order_by
in: query
description: Sort order for results
required: false
schema:
$ref: '#/components/schemas/AhjsGetParametersOrderBy'
- name: lat
in: query
description: Latitude in decimal degrees. Must be used together with `lng`.
required: false
schema:
type: number
format: double
- name: lng
in: query
description: Longitude in decimal degrees. Must be used together with `lat`.
required: false
schema:
type: number
format: double
- name: x-api-key
in: header
required: true
schema:
type: string
responses:
'200':
description: List of AHJs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AHJ'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/List-ahjsRequestBadRequestError'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/List-ahjsRequestUnauthorizedError'
'502':
description: Bad gateway — an upstream service request failed
content:
application/json:
schema:
$ref: '#/components/schemas/List-ahjsRequestBadGatewayError'
/ahjs/{id}:
get:
operationId: get-ahj
summary: Get AHJ
description: Retrieve a specific AHJ by ID, including catalog metadata and custom field values.
tags:
- ahJs
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: x-api-key
in: header
required: true
schema:
type: string
responses:
'200':
description: AHJ details
content:
application/json:
schema:
$ref: '#/components/schemas/AHJ'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/GetAhjRequestUnauthorizedError'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/GetAhjRequestNotFoundError'
'502':
description: Bad gateway — an upstream service request failed
content:
application/json:
schema:
$ref: '#/components/schemas/GetAhjRequestBadGatewayError'
patch:
operationId: update-ahj
summary: Update AHJ
description: 'Update custom property values on an AHJ. The body `custom` map is keyed by property `keyName` — fetch the available keys via `GET /properties?record_type=ahj`.
Built-in AHJ fields (under `Community Data` in the UI) are read-only and cannot be updated through this endpoint.
Pass `null` to clear a value.
'
tags:
- ahJs
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: allow_new_options
in: query
description: Whether to allow creation of new dropdown options during record creation
required: false
schema:
type: boolean
default: false
- name: x-api-key
in: header
required: true
schema:
type: string
responses:
'200':
description: AHJ updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/AHJ'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAhjRequestBadRequestError'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAhjRequestUnauthorizedError'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAhjRequestNotFoundError'
'502':
description: Bad gateway — an upstream service request failed
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAhjRequestBadGatewayError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AHJUpdate'
components:
schemas:
AHJUpdate:
type: object
properties:
custom:
type: object
additionalProperties:
description: Any type
description: Custom field values keyed by property keyName. Pass `null` to clear a value. Unknown keyNames are rejected with a 400 — fetch valid keys via GET /properties?record_type=ahj.
required:
- custom
title: AHJUpdate
UpdateAhjRequestBadGatewayError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdPatchResponsesContentApplicationJsonSchemaCode'
title: UpdateAhjRequestBadGatewayError
GetAhjRequestBadGatewayError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdGetResponsesContentApplicationJsonSchemaCode'
title: GetAhjRequestBadGatewayError
AhjsIdGetResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- BAD_GATEWAY
title: AhjsIdGetResponsesContentApplicationJsonSchemaCode
AhjsIdPatchResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- BAD_GATEWAY
title: AhjsIdPatchResponsesContentApplicationJsonSchemaCode
UpdateAhjRequestNotFoundError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdPatchResponsesContentApplicationJsonSchemaCode'
title: UpdateAhjRequestNotFoundError
GetAhjRequestUnauthorizedError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdGetResponsesContentApplicationJsonSchemaCode'
title: GetAhjRequestUnauthorizedError
UpdateAhjRequestBadRequestError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdPatchResponsesContentApplicationJsonSchemaCode'
field:
type: string
description: Field that caused the validation error (if applicable)
title: UpdateAhjRequestBadRequestError
AHJ:
type: object
properties:
id:
type: integer
description: Unique identifier.
uuid:
type:
- string
- 'null'
description: AHJID UUID (when known).
name:
type: string
description: Full AHJ name (e.g. "City of San Francisco").
type:
oneOf:
- $ref: '#/components/schemas/AhjType'
- type: 'null'
description: Jurisdiction type.
country:
type: string
description: Two-letter country code (e.g. "US").
state:
type:
- string
- 'null'
description: Two-letter state code (e.g. "CA").
stateName:
type:
- string
- 'null'
description: Full state name (e.g. "California").
parentCounty:
type:
- string
- 'null'
description: For sub-county jurisdictions, the containing county name.
geoId:
type:
- string
- 'null'
description: US Census TIGER GEOID for the boundary.
ahjRegistryCode:
type:
- string
- 'null'
description: AHJ Registry composite code (e.g. "TX-4805000").
isActive:
type: boolean
description: Whether this AHJ is currently active in the catalog.
isPrivate:
type:
- boolean
- 'null'
description: True for company-private jurisdictions, false for global catalog entries.
pointOfContact:
type:
- string
- 'null'
submissionMethod:
type:
- string
- 'null'
description: How permit submissions are accepted (online, in-person, etc.).
emails:
type: array
items:
type: string
format: email
phones:
type: array
items:
type: string
address:
type:
- string
- 'null'
website:
type:
- string
- 'null'
portal:
type:
- string
- 'null'
description: Permit portal URL.
turnaround:
type:
- integer
- 'null'
description: Typical permit turnaround in days.
fees:
type:
- string
- 'null'
notes:
type:
- string
- 'null'
permitSubmissionNotes:
type:
- string
- 'null'
buildingCodeModel:
type:
- string
- 'null'
buildingCodeLocal:
type:
- string
- 'null'
residentialCodeModel:
type:
- string
- 'null'
residentialCodeLocal:
type:
- string
- 'null'
fireCodeModel:
type:
- string
- 'null'
fireCodeLocal:
type:
- string
- 'null'
electricalCodeModel:
type:
- string
- 'null'
electricalCodeLocal:
type:
- string
- 'null'
windCodeModel:
type:
- string
- 'null'
windCodeLocal:
type:
- string
- 'null'
codesOther:
type:
- string
- 'null'
firePathwaysEnforced:
type:
- boolean
- 'null'
electricalEngineerStampRequired:
type:
- boolean
- 'null'
structuralStampRequired:
type:
- boolean
- 'null'
climateZone:
type:
- string
- 'null'
ashraeMinTempC:
type:
- number
- 'null'
format: double
ashraeMaxTempC:
type:
- number
- 'null'
format: double
ashraeMinTempF:
type:
- number
- 'null'
format: double
description: Auto-computed from ashraeMinTempC. Used for NEC 690.7 max-Voc string sizing.
ashraeMaxTempF:
type:
- number
- 'null'
format: double
description: Auto-computed from ashraeMaxTempC. Used for thermal derating in PV performance modeling.
centroidLatitude:
type:
- number
- 'null'
format: double
centroidLongitude:
type:
- number
- 'null'
format: double
landAreaSqMiles:
type:
- number
- 'null'
format: double
specialZones:
type:
- array
- 'null'
items:
type: string
buildingDeptHours:
type:
- array
- 'null'
items:
type: string
tigerYear:
type:
- integer
- 'null'
funcstat:
type:
- string
- 'null'
description: US Census functional status code.
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
custom:
type: object
additionalProperties:
description: Any type
description: Custom field values keyed by property keyName. This includes only customer-defined custom columns (see GET /properties?record_type=ahj). Built-in catalog AHJ fields (turnaround, website, fees, notes, etc.) are exposed as top-level fields on the AHJ object and are read-only.
description: An Authority Having Jurisdiction (AHJ). Most fields are read-only catalog data sourced from the US Census TIGER dataset; only fields under `custom` are user-editable.
title: AHJ
UpdateAhjRequestUnauthorizedError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdPatchResponsesContentApplicationJsonSchemaCode'
title: UpdateAhjRequestUnauthorizedError
AhjsGetParametersOrderBy:
type: string
enum:
- asc
- desc
default: asc
title: AhjsGetParametersOrderBy
AhjsGetResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- BAD_GATEWAY
title: AhjsGetResponsesContentApplicationJsonSchemaCode
List-ahjsRequestBadGatewayError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsGetResponsesContentApplicationJsonSchemaCode'
title: List-ahjsRequestBadGatewayError
AhjType:
type: string
enum:
- STATE
- COUNTY
- CITY
- MUNICIPALITY
- TOWNSHIP
- TRIBAL
description: Jurisdiction type.
title: AhjType
GetAhjRequestNotFoundError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsIdGetResponsesContentApplicationJsonSchemaCode'
title: GetAhjRequestNotFoundError
List-ahjsRequestBadRequestError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsGetResponsesContentApplicationJsonSchemaCode'
field:
type: string
description: Field that caused the validation error (if applicable)
title: List-ahjsRequestBadRequestError
AhjsGetParametersType:
type: string
enum:
- STATE
- COUNTY
- CITY
- MUNICIPALITY
- TOWNSHIP
- TRIBAL
title: AhjsGetParametersType
List-ahjsRequestUnauthorizedError:
type: object
properties:
message:
type: string
code:
$ref: '#/components/schemas/AhjsGetResponsesContentApplicationJsonSchemaCode'
title: List-ahjsRequestUnauthorizedError
securitySchemes:
BasicAuth:
type: http
scheme: basic