Quickstart

Make your first API call.

PermitCore returns structured, segment-tagged building-permit data — one curl away. Get a free key, call /v1/permits, and read permit JSON back. Under five minutes, no card.

  1. 01

    Get a free API key

    Sign up for the free tier — 1,000 requests / month (up to 100/day), no card. Create a key in your account; the plaintext key shows once at creation.

    Create your free key →
  2. 02

    Make the request

    Pass your key in the Authorization: Bearer header. This sample pulls recent commercial-alteration permits in NYC; drop /target?target_segment=… for the unfiltered feed.

    cURL
    curl "https://api.permitcore.io/v1/permits/target?target_segment=commercial_alteration&jurisdiction=nyc&per_page=5" \
      -H "Authorization: Bearer <your-api-key>" \
      -H "Accept: application/json"
  3. 03

    Read the response

    Permits come back in items — each segment-tagged (cohort), with the raw work-nature (permit_type) and the structured fields you build on. Field-level data-quality flags travel with detailed pulls.

    200 OK · application/json
    {
      "items": [
        {
          "id": "1:140876215|General Construction",
          "source_permit_id": "140876215",
          "jurisdiction": "nyc",
          "issued_date": "2026-06-21",
          "address": "1330 6 AVENUE, Manhattan, NY 10019",
          "permit_type": "alteration_commercial",
          "work_class": "commercial",
          "cohort": "commercial_alteration",
          "value_usd": 2840000
        },
        {
          "id": "1:140874002|General Construction",
          "source_permit_id": "140874002",
          "jurisdiction": "nyc",
          "issued_date": "2026-06-20",
          "address": "55 WATER STREET, Manhattan, NY 10041",
          "permit_type": "alteration_commercial",
          "work_class": "commercial",
          "cohort": "commercial_alteration",
          "value_usd": 1190000
        }
      ],
      "pagination": { "page": 1, "per_page": 5, "total_count": "1,000+", "has_more": true }
    }

Keep going