permit

Search permits

Searches building and trade permits by place, parcel or area.

Requires one of jurisdiction, fips, parcel, bbox, or lat with lon.

A permit is decided when it is issued or refused. decided=false limits results to pending permits. The outcome is the permit's status, so a permit issued and since expired is decided, with the outcome Expired.

get/v1/permit

Request

  • Base URL: http://localhost:3030
  • URL: http://localhost:3030/v1/permit
  • Auth: HTTP bearer

Query parameters

jurisdictionstring nullable

A jurisdiction id.

Example:jur_01h455vb4pex5vsknk084sn02q

A jurisdiction id. Results are limited to permits it issued or that lie within it.

fipsstring nullable

A Census GEOID: 2 digits for a state or 5 for a county, such as 48 or 48453. Results are limited to permits that lie within it.

parcelstring nullable

A parcel id.

Example:prc_01h455vb4pex5vsknk084sn02q

A parcel id. Results are limited to permits that concern it.

latnumber nullable

Latitude, in WGS 84. Requires lon. Results are permits with an address within radius.

lonnumber nullable

Longitude, in WGS 84. Requires lat.

radiusnumber nullable

Search radius around lat and lon, in meters. At most 25,000. Defaults to 1,000.

bboxstring nullable

A bounding box, as west,south,east,north in WGS 84. Results are limited to permits with an address inside it.

typestring nullable

Permit type code, as published.

statusstring nullable

Status code, as published.

outcomestring nullable

Decision outcome code, as published.

decidedboolean nullable

Whether the permit has a decision. false returns pending permits.

partystring nullable

A name on the permit, or words from it. Results are permits with a party name containing every word.

qstring nullable

Words from the permit description. Results are ordered best match first.

min_appliedstring nullable

Earliest application date, as YYYY-MM-DD.

max_appliedstring nullable

Latest application date, as YYYY-MM-DD.

min_decidedstring nullable

Earliest decision date, as YYYY-MM-DD.

max_decidedstring nullable

Latest decision date, as YYYY-MM-DD.

min_valuationnumber nullable

Minimum declared value. Permits without a declared value never match.

max_valuationnumber nullable

Maximum declared value. Permits without a declared value never match.

sortstring nullable

Sort order. One of applied, as_of, decided, issued, valuation. Prefix with - for descending. Not accepted with q.

cursorstring nullable

A cursor for pagination: the next_cursor from the previous page.

sizeinteger nullable

Number of results per page, between 1 and 200. Defaults to 20.

totalboolean

Whether to include total, the count of all matches, on the first page. Defaults to false.

Response

A page of permits.

object'list' required

The object's type. Always list.

has_moreboolean required

Whether there are more results after this page.

next_cursorstring nullable required

The cursor for the next page. Send it as cursor. Null on the last page.

suppressedinteger required

The number of matching results withheld because the plan does not include them.

Example response

{
  "data": [
    {
      "id": "pmt_01h455vb4pex5vsknk084sn02q",
      "number": "BLDR-026512-2026",
      "type": {
        "code": "RHS",
        "description": "Residential Less Than 10 Acres",
        "standard": "residential"
      },
      "status": {
        "code": "RHS",
        "description": "Residential Less Than 10 Acres",
        "standard": "residential"
      },
      "jurisdiction": {
        "id": "jur_01h455vb4pex5vsknk084sn02q",
        "name": "Raleigh",
        "type": "city",
        "fips": "3755000",
        "href": "/v1/jurisdiction/jur_01h455vb4pex5vsknk084sn02q"
      },
      "within": [
        {
          "id": "jur_01h455vb4pex5vsknk084sn02q",
          "name": "Wake",
          "tier": "subregion",
          "type": "county",
          "fips": "37183"
        }
      ],
      "agency": {
        "name": "Development Services",
        "type": "building"
      },
      "description": "Screened porch addition to a single-unit dwelling.",
      "parcels": [
        {
          "id": "prc_01h455vb4pex5vsknk084sn02q",
          "number": "1717353946",
          "href": "/v1/parcel/prc_01h455vb4pex5vsknk084sn02q"
        }
      ],
      "addresses": [
        {
          "raw": "4516 PRINTER LN, RALEIGH NC 27613",
          "recipient": "C/O TRIANGLE PROPERTY MANAGEMENT",
          "street_line_1": "4516 PRINTER LN",
          "street_line_2": "APT 1402",
          "street_number": "4516",
          "street_name": "PRINTER",
          "unit": "B",
          "locality": "RALEIGH",
          "region": "NC",
          "postal_code": "27613",
          "point": {
            "lat": 35.8492,
            "lon": -78.6996
          }
        }
      ],
      "parties": [
        {
          "name": "Alex Rivera",
          "role": "contractor",
          "organization": "Triangle Build Co.",
          "license": "75321"
        }
      ],
      "dates": {
        "applied": "2026-03-02",
        "issued": "2026-03-20",
        "decided": "2026-03-20",
        "expires": "2027-03-20",
        "completed": "2026-08-14"
      },
      "valuation": {
        "amount": 48500,
        "currency": "USD"
      },
      "fees": [
        {
          "category": "building",
          "total": 612.5,
          "paid": 612.5,
          "currency": "USD"
        }
      ],
      "decision": {
        "outcome": {
          "code": "RHS",
          "description": "Residential Less Than 10 Acres",
          "standard": "residential"
        },
        "decided_on": "2026-03-18",
        "effective_from": "2026-03-18",
        "effective_to": "2027-03-18",
        "conditions": [
          {
            "text": "Install erosion control measures before any land disturbance.",
            "scope": "Site",
            "timing": "before_permit",
            "due": "2026-04-01"
          }
        ]
      },
      "document": {
        "url": "https://example.com/permit/BLDR-026512-2026",
        "retrieved": "2026-10-01"
      },
      "as_of": "2026-10-01",
      "href": "/v1/permit/pmt_01h455vb4pex5vsknk084sn02q"
    }
  ],
  "next_cursor": "eyJrIjoiMjAyNi0xMC0wMSIsInQiOjQyfQ"
}

Changes

No recorded changes to this operation across all 1 revision of this API.