Documentation menu
GET

/permits

Returns a list of building and construction permits for a jurisdiction.

Base URL

https://api.threshmoor.com

Query parameters

ParameterTypeDefaultRequiredDescription
limitinteger25NoHow many permits to return. Accepted range: 1–100.
permit_typestringNoKeyword filter by permit type (e.g. "Electrical", "Building"). Case-insensitive.

Response shape

Every successful response is wrapped in a PermitResponse object:

{
  "jurisdiction": string,
  "count":        number,
  "permits":      Permit[]
}

Permit object

FieldTypeDescription
permit_numberstring | nullThe jurisdiction-assigned permit number.
permit_typestring | nullCategory of the permit (e.g. "Building Permit", "Electrical Permit", "Plumbing Permit").
work_classstring | nullClassification of the work (e.g. "New", "Remodel", "Demolition").
statusstring | nullCurrent status of the permit (e.g. "Active", "Final").
descriptionstring | nullFree-text description of the permitted work.
issued_datestring | nullDate the permit was issued (ISO 8601 format).
applied_datestring | nullDate the permit application was submitted (ISO 8601 format).
addressstring | nullStreet address of the permitted work.
citystring | nullCity name.
zipstring | nullZIP / postal code.
valuationstring | nullEstimated dollar value of the work.
contractorstring | nullName of the contractor on record.
latitudestring | nullLatitude coordinate of the permit location.
longitudestring | nullLongitude coordinate of the permit location.
jurisdictionstringThe jurisdiction this record belongs to (always present, e.g. "Austin, TX").

Example

Request

GET /permits?limit=2&permit_type=Building HTTP/1.1
Host: api.threshmoor.com
X-API-Key: thresh_live_...

Response — 200 OK

{
  "jurisdiction": "Austin, TX",
  "count": 2,
  "permits": [
    {
      "permit_number": "2026-076303 BP",
      "permit_type": "Building Permit",
      "work_class": "Demolition",
      "status": "Active",
      "description": "Total demo of sfr 1299 sqft",
      "issued_date": "2026-06-16T00:00:00.000",
      "applied_date": "2026-06-04T00:00:00.000",
      "address": "2817 E 22ND ST",
      "city": "AUSTIN",
      "zip": "78722",
      "valuation": "0",
      "contractor": "Joseph Design Build",
      "latitude": "30.28405859",
      "longitude": "-97.71079459",
      "jurisdiction": "Austin, TX"
    },
    {
      "permit_number": "2026-076995 BP",
      "permit_type": "Building Permit",
      "work_class": "Remodel",
      "status": "Active",
      "description": "Re-roof: replacing asphalt shingles for Building 13",
      "issued_date": "2026-06-16T00:00:00.000",
      "applied_date": "2026-06-16T00:00:00.000",
      "address": "9218 BALCONES CLUB DR BLDG 13",
      "city": "AUSTIN",
      "zip": "78750",
      "valuation": null,
      "contractor": "North Gable Contractors",
      "latitude": null,
      "longitude": null,
      "jurisdiction": "Austin, TX"
    }
  ]
}

Error responses

StatusMeaning
502The upstream data source is unreachable or returned an unexpected response. The API never leaks raw errors — you will receive a short, human-readable message.
{
  "detail": "Could not reach the Austin permit data source: ..."
}