---
type: "firecrawl-provider"
description: "New York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL."
use_when: "New York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL.\n\nNew York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL."
categories: "Real estate"
capabilities: 9
credits_per_call: 5
---
# NYC Open Data property records (ACRIS, PLUTO, DOB) on Firecrawl Alexandria

New York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL.

- Categories: Real estate
- Category index: [Real estate category](https://alexandria.firecrawl.dev/agents/categories/real-estate)
- Provider key: `data-cityofnewyork-us`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/data-cityofnewyork-us)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/openapi.json)

## Capabilities

- [Acris document](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/acris_document): One recorded ACRIS document by its 16-character document id (or an a836-acris.nyc.gov DocumentDetail URL), assembled from four NYC Open Data SODA datasets: Real Property Master (bnx9-e6tj) for CRFN, type, dates and amount; Real Property Parties (636b-3b5g) for grantor/grantee/mortgagor names and addresses; Real Property Legals (8h5j-fqxa) for the lots it is recorded against; Document Control Codes (7isb-wh4c) to decode the type into a description, class and the meaning of each party slot. An id the Master dataset does not have is `not_found` (the open-data extract lags the live register; the `acris_url` page may already exist); a malformed id is `invalid_input`.
- [Acris documents](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/acris_documents): Recorded ACRIS real-property documents (deeds, mortgages, agreements, liens, ...) against one tax lot, from NYC Open Data: ACRIS Real Property Legals (8h5j-fqxa) filtered by borough/block/lot gives the document ids, then ACRIS Real Property Master (bnx9-e6tj) supplies type, dates, CRFN and amount for that page in one `$where=document_id in(...)` call. Ordered newest first (document ids are date-prefixed; pre-1966 `FT_` microfilm ids sort last). Optional `doc_type` keeps only that ACRIS code (e.g. DEED) within each page; the page still advances through all the lot's documents, so a filtered page may hold fewer than `limit` documents while `next_cursor` is set. Paged with `limit` / `cursor` (row offset into Legals). A lot with no recorded documents but present in PLUTO is a successful empty page; a BBL that neither ACRIS nor PLUTO knows is `not_found`. The open-data extract lags the live City Register by weeks (Master last updated 2026-09-08 at capture); `acris_url` links each document to the authoritative page.
- [Dob permits](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/dob_permits): Permits issued by the Department of Buildings for one building (BIN), from NYC Open Data DOB Permit Issuance (SODA dataset ipu4-2q9a, the BIS system: every construction, plumbing, equipment and demolition permit since 1989, updated daily). Ordered newest job first (`job__ DESC, permit_sequence__ DESC`: job numbers are 9-digit and increase over time; renewals of one job follow the initial permit). Each row is shaped (job number, types, status, ISO dates, permittee and owner business names) and carried whole in `fields`. Paged with `limit` / `cursor`. An empty first page triggers a cross-check of the DOB Violations and ECB Violations datasets for the same BIN: no row anywhere is `not_found` (unknown BIN); a known building with no permits is a successful empty page. DOB NOW filings (post-2020 work filed outside BIS) are not in this dataset.
- [Dob violations](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/dob_violations): Violations against one building (BIN) from NYC Open Data: `kind: dob` reads DOB Violations (SODA 3h2n-5cm9; violations issued by DOB inspectors, with disposition) and `kind: ecb` reads DOB ECB Violations (6bgk-3dad; Environmental Control Board / OATH summonses with hearing status, severity, penalties, amounts paid and balance due). Ordered by `issue_date DESC`. Rows are shaped into one common record (`kind` says which fields apply) and carried whole in `fields`. Paged with `limit` / `cursor`. An empty first page triggers a cross-check of the sibling DOB datasets (permits and the other violation kind) for the same BIN: no row anywhere is `not_found`; a known building with no violations of that kind is a successful empty page.
- [Property](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/property): The MapPLUTO tax-lot record for one BBL from NYC Open Data (SODA dataset 64uk-42ks, Department of City Planning): owner of record (`owner_name`, `owner_type`), address, building class, land use, year built and altered, floors, units, lot and building areas (sq ft), Department of Finance assessed land/total values (USD), zoning districts, landmark status, community and council districts, coordinates and the PLUTO release version. `pluto` carries the complete row exactly as published (all ~90 columns, strings). An unknown or retired BBL (SODA answers `[]`) is `not_found`; a malformed BBL is `invalid_input`. Links: `acris_url` opens the ACRIS document search pre-scoped to the lot.
- [Resolve address](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/resolve_address): Resolve a free-text NYC address to its Borough-Block-Lot (BBL) and Building Identification Number (BIN) with the Department of City Planning's GeoSearch API (https://geosearch.planninglabs.nyc/v2/search, a Pelias geocoder over the Property Address Directory). Returns up to `limit` candidate matches ordered by GeoSearch relevance, each with the normalized address, borough, ZIP, coordinates and the PAD `bbl` / `bin` that key every other function of this program. Zero matches is a successful empty result (`count: 0`), not an error. Anonymous, no token.
- [Contractor activity](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/contractor_activity): Rank NYC contractors (DOB permittees) by permits issued in an issue-date window, with one grouped SoQL query over DOB NOW: Build – Approved Permits (default) or BIS DOB Permit Issuance (source bis). Optional permit type, ZIP, borough and contractor-name filters. Each contractor has business name, licensee name, DOB licence number and type, distinct permits, job filings, total estimated job cost of those filings (DOB NOW only; each filing counted once), first and last issue date in the window, source_url and licence.
- [Get permit](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/get_permit): One NYC building permit by DOB permit number, from DOB NOW (B01110047-S3-ST) or BIS (123499883-02-EW-MH; BIS's own 123499883-02-EW MH also works), recognised by its form. Returns the shared permit fields for the newest issuance (DOB NOW combined permits list each work type on its own row; permit_type joins them), every issuance newest first (initial permit and renewals, with work type, filing reason, status, issue and expiry dates), and raw, the newest row with every published column except owner names, home addresses, phone numbers and site staff names. An unknown permit number is not_found; a string that is not a DOB permit number is invalid_input.
- [Search permits](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/search_permits): Search New York City building permits from the Department of Buildings on NYC Open Data, newest first: DOB NOW: Build – Approved Permits (rbx6-tga4, default, permits since 2016) or the legacy BIS DOB Permit Issuance (ipu4-2q9a, since 1989) with source bis. Filter by address words, ZIP, borough, BIN, BBL (parcel_id), contractor name or licence number, permit type, status, issue date window, and for DOB NOW by the date a daily load added or changed the row (updated_since) and minimum estimated job cost; BIS adds the filing date window. Each record has the shared permit fields: permit number, work type, filing reason, status, issue and expiry dates, address, borough, ZIP, coordinates, BBL, BIN, estimated job cost, job description, the permittee (licensed contractor) with licence number, updated_at, source_url and licence. An empty page is a valid result.

## 1. Choose this provider when

New York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL.

New York City property records through NYC Open Data's Socrata SODA API and the Department of City Planning GeoSearch geocoder: resolve an address to BBL/BIN, read the MapPLUTO lot record (owner of record, building class, assessed value, zoning), list and read ACRIS recorded documents (deeds, mortgages, parties), list DOB permits and DOB/ECB violations by building, and work with building permits in the shared permits contract: search DOB NOW and legacy BIS permits by address, ZIP, borough, BIN, BBL, contractor or licence number, permit type and dates (DOB NOW also by the daily load that added or changed a row, for polling), read one permit with every renewal, and rank contractors by permits issued and estimated job cost. Anonymous; no app token. Permit records carry the NYC Open Data Terms of Use, DOB attribution and their source URL.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "data-cityofnewyork-us",
  "capability": "property-records/acris_document",
  "options": {
    "document_id": "2013100700087001"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `document_id` (string, required): ACRIS document id: 16 digits (`2013100700087001`), `FT_` + 13 digits, or the ACRIS DocumentDetail URL carrying `doc_id=`. Example: `2013100700087001`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "data-cityofnewyork-us",
    capability: "property-records/acris_document",
    options: {
      document_id: "2013100700087001",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "data-cityofnewyork-us",
  "capability": "property-records/acris_document",
  "options": {
    "document_id": "2013100700087001"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "data-cityofnewyork-us",
    "capability": "property-records/acris_document",
    "options": {
      "document_id": "2013100700087001"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'data-cityofnewyork-us/property-records/acris_document' \
  --options '{"document_id":"2013100700087001"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "data-cityofnewyork-us",
  "capability": "property-records/acris_document",
  "options": {
    "document_id": "2013100700087001"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "data-cityofnewyork-us",
  "capability": "property-records/acris_document",
  "options": {
    "document_id": "2013100700087001"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "acris_url": "https://a836-acris.nyc.gov/DS/DocumentSearch/DocumentDetail?doc_id=2013100700087001",
  "crfn": "2013000417277",
  "doc_class": "DEEDS AND OTHER CONVEYANCES",
  "doc_type": "DEED",
  "doc_type_description": "DEED",
  "document_amount_usd": 111045119,
  "document_date": "2013-10-07",
  "document_id": "2013100700087001",
  "good_through_date": "2015-07-31",
  "modified_date": "2013-10-08",
  "observed_at_ms": 1790101478439,
  "parcel_count": 1,
  "parcels": [
    {
      "air_rights": false,
      "bbl": "1008350041",
      "block": 835,
      "borough": 1,
      "easement": false,
      "good_through_date": "2015-07-31",
      "lot": 41,
      "partial_lot": "E",
      "property_type": "OF",
      "street_name": "5TH AVENUE",
      "street_number": "350",
      "subterranean_rights": false,
      "unit": null
    }
  ],
  "parties": [
    {
      "address_1": "C/O MALKIN HOLDINGS LLC",
      "address_2": "ONE GRAND CENTRAL PLACE, 60 EAST 42ND STREET",
      "city": "NEW YORK",
      "country": "US",
      "good_through_date": "2015-07-31",
      "name": "EMPIRE STATE LAND ASSOCIATES L.L.C.",
      "party_type": 1,
      "role": "GRANTOR/SELLER",
      "state": "NY",
      "zip": "10165"
    },
    {
      "address_1": "C/O EMPIRE STATE REALTY TRUST, INC.",
      "address_2": "ONE GRAND CENTRAL PLACE, 60 EAST 42ND STREET",
      "city": "NEW YORK",
      "country": "US",
      "good_through_date": "2015-07-31",
      "name": "ESRT EMPIRE STATE BUILDING, L.L.C.",
      "party_type": 2,
      "role": "GRANTEE/BUYER",
      "state": "NY",
      "zip": "10165"
    }
  ],
  "party_count": 2,
  "percent_transferred": 100,
  "recorded_borough": 1,
  "recorded_datetime": "2013-10-08",
  "reel_number": 0,
  "reel_page": 0,
  "reel_year": 0,
  "source_urls": [
    "https://data.cityofnewyork.us/resource/bnx9-e6tj.json?document_id=2013100700087001&%24limit=2",
    "https://data.cityofnewyork.us/resource/636b-3b5g.json?document_id=2013100700087001&%24order=party_type%2Cname&%24limit=500",
    "https://data.cityofnewyork.us/resource/8h5j-fqxa.json?document_id=2013100700087001&%24order=borough%2Cblock%2Clot&%24limit=500",
    "https://data.cityofnewyork.us/resource/7isb-wh4c.json?doc__type=DEED&%24limit=2"
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Acris document

- Capability: `property-records/acris_document`
- Description: One recorded ACRIS document by its 16-character document id (or an a836-acris.nyc.gov DocumentDetail URL), assembled from four NYC Open Data SODA datasets: Real Property Master (bnx9-e6tj) for CRFN, type, dates and amount; Real Property Parties (636b-3b5g) for grantor/grantee/mortgagor names and addresses; Real Property Legals (8h5j-fqxa) for the lots it is recorded against; Document Control Codes (7isb-wh4c) to decode the type into a description, class and the meaning of each party slot. An id the Master dataset does not have is `not_found` (the open-data extract lags the live register; the `acris_url` page may already exist); a malformed id is `invalid_input`.
- Instructions: Who sold to whom, for how much, on which lots, for a document id returned by `acris_documents`.
- Cost: 5 credits per call
- Capability file: [Acris document](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/acris_document)

Accepted options:
- `document_id` (string, required): ACRIS document id: 16 digits (`2013100700087001`), `FT_` + 13 digits, or the ACRIS DocumentDetail URL carrying `doc_id=`. Example: `2013100700087001`

Response schema example:
```json
{
  "acris_url": "https://a836-acris.nyc.gov/DS/DocumentSearch/DocumentDetail?doc_id=2013100700087001",
  "crfn": "2013000417277",
  "doc_class": "DEEDS AND OTHER CONVEYANCES",
  "doc_type": "DEED",
  "doc_type_description": "DEED",
  "document_amount_usd": 111045119,
  "document_date": "2013-10-07",
  "document_id": "2013100700087001",
  "good_through_date": "2015-07-31",
  "modified_date": "2013-10-08",
  "observed_at_ms": 1790101478439,
  "parcel_count": 1,
  "parcels": [
    {
      "air_rights": false,
      "bbl": "1008350041",
      "block": 835,
      "borough": 1,
      "easement": false,
      "good_through_date": "2015-07-31",
      "lot": 41,
      "partial_lot": "E",
      "property_type": "OF",
      "street_name": "5TH AVENUE",
      "street_number": "350",
      "subterranean_rights": false,
      "unit": null
    }
  ],
  "parties": [
    {
      "address_1": "C/O MALKIN HOLDINGS LLC",
      "address_2": "ONE GRAND CENTRAL PLACE, 60 EAST 42ND STREET",
      "city": "NEW YORK",
      "country": "US",
      "good_through_date": "2015-07-31",
      "name": "EMPIRE STATE LAND ASSOCIATES L.L.C.",
      "party_type": 1,
      "role": "GRANTOR/SELLER",
      "state": "NY",
      "zip": "10165"
    },
    {
      "address_1": "C/O EMPIRE STATE REALTY TRUST, INC.",
      "address_2": "ONE GRAND CENTRAL PLACE, 60 EAST 42ND STREET",
      "city": "NEW YORK",
      "country": "US",
      "good_through_date": "2015-07-31",
      "name": "ESRT EMPIRE STATE BUILDING, L.L.C.",
      "party_type": 2,
      "role": "GRANTEE/BUYER",
      "state": "NY",
      "zip": "10165"
    }
  ],
  "party_count": 2,
  "percent_transferred": 100,
  "recorded_borough": 1,
  "recorded_datetime": "2013-10-08",
  "reel_number": 0,
  "reel_page": 0,
  "reel_year": 0,
  "source_urls": [
    "https://data.cityofnewyork.us/resource/bnx9-e6tj.json?document_id=2013100700087001&%24limit=2",
    "https://data.cityofnewyork.us/resource/636b-3b5g.json?document_id=2013100700087001&%24order=party_type%2Cname&%24limit=500",
    "https://data.cityofnewyork.us/resource/8h5j-fqxa.json?document_id=2013100700087001&%24order=borough%2Cblock%2Clot&%24limit=500",
    "https://data.cityofnewyork.us/resource/7isb-wh4c.json?doc__type=DEED&%24limit=2"
  ]
}
```

### Acris documents

- Capability: `property-records/acris_documents`
- Description: Recorded ACRIS real-property documents (deeds, mortgages, agreements, liens, ...) against one tax lot, from NYC Open Data: ACRIS Real Property Legals (8h5j-fqxa) filtered by borough/block/lot gives the document ids, then ACRIS Real Property Master (bnx9-e6tj) supplies type, dates, CRFN and amount for that page in one `$where=document_id in(...)` call. Ordered newest first (document ids are date-prefixed; pre-1966 `FT_` microfilm ids sort last). Optional `doc_type` keeps only that ACRIS code (e.g. DEED) within each page; the page still advances through all the lot's documents, so a filtered page may hold fewer than `limit` documents while `next_cursor` is set. Paged with `limit` / `cursor` (row offset into Legals). A lot with no recorded documents but present in PLUTO is a successful empty page; a BBL that neither ACRIS nor PLUTO knows is `not_found`. The open-data extract lags the live City Register by weeks (Master last updated 2026-09-08 at capture); `acris_url` links each document to the authoritative page.
- Instructions: Sales and deed history, mortgages and other recorded instruments for a parcel by BBL. Follow with `acris_document` for parties (grantor/grantee) and the decoded document type.
- Cost: 5 credits per call
- Capability file: [Acris documents](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/acris_documents)

Accepted options:
- `bbl` (string, required): Borough-Block-Lot: the 10-digit form `1008350041` (borough 1-5, 5-digit block, 4-digit lot) or `1-835-41` / `1/835/41`. Example: `1008350041`
- `cursor` (string): Row offset to resume from: the `next_cursor` of the previous page. Pattern: ^[0-9]{1,9}$. Example: `next_cursor`
- `doc_type` (string): ACRIS document type code to keep, e.g. `DEED`, `MTGE`, `AGMT`, `SAT`, `UCC1`. Case-insensitive. Pattern: ^[A-Za-z0-9 ,&/._-]+$. Example: `<doc_type>`
- `limit` (number): Legals rows per page (1-100, default 25). Example: `25`

Response schema example:
```json
{
  "acris_search_url": "https://a836-acris.nyc.gov/DS/DocumentSearch/BBL?borough=1&block=835&lot=41",
  "bbl": "1008350041",
  "block": 835,
  "borough": 1,
  "count": 1,
  "data_last_modified": "Tue, 08 Sep 2026 19:31:02 GMT",
  "doc_type_filter": "DEED",
  "documents": [
    {
      "acris_url": "https://a836-acris.nyc.gov/DS/DocumentSearch/DocumentDetail?doc_id=2013100700087001",
      "crfn": "2013000417277",
      "doc_type": "DEED",
      "document_amount_usd": 111045119,
      "document_date": "2013-10-07",
      "document_id": "2013100700087001",
      "master_found": true,
      "parcels": [
        {
          "air_rights": false,
          "bbl": "1008350041",
          "block": 835,
          "borough": 1,
          "easement": false,
          "good_through_date": "2015-07-31",
          "lot": 41,
          "partial_lot": "E",
          "property_type": "OF",
          "street_name": "5TH AVENUE",
          "street_number": "350",
          "subterranean_rights": false,
          "unit": null
        }
      ],
      "percent_transferred": 100,
      "recorded_borough": 1,
      "recorded_datetime": "2013-10-08"
    }
  ],
  "limit": 100,
  "lot": 41,
  "next_cursor": "100",
  "observed_at_ms": 1790101600253,
  "offset": 0,
  "source_urls": [
    "https://data.cityofnewyork.us/resource/8h5j-fqxa.json?borough=1&block=835&lot=41&%24order=starts_with%28document_id%2C+%27FT_%27%29+ASC%2C+document_id+DESC&%24limit=100&%24offset=0",
    "https://data.cityofnewyork.us/resource/bnx9-e6tj.json?%24where=document_id+in%28%272024062700832001%27%2C%272018121901035001%27%2C%272017071900208001%27%2C%272015012901083001%27%2C%272014091700805001%27%2C%272014061901361001%27%2C%272013101801311001%27%2C%272013101800339004%27%2C%272013101800339003%27%2C%272013101800339002%27%2C%272013101800339001%27%2C%272013101701442001%27%2C%272013101700510006%27%2C%272013101700510005%27%2C%272013101700510004%27%2C%272013101700510003%27%2C%272013101700510002%27%2C%272013101700510001%27%2C%272013100700087004%27%2C%272013100700087003%27%2C%272013100700087002%27%2C%272013100700087001%27%2C%272013092000883001%27%2C%272013091000735007%27%2C%272013091000735006%27%2C%272013091000735005%27%2C%272013091000735004%27%2C%272013091000735003%27%2C%272013091000735002%27%2C%272013091000735001%27%2C%272013031201548007%27%2C%272013031201548006%27%2C%272013031201548005%27%2C%272013031201548004%27%2C%272013031201548003%27%2C%272013031201548002%27%2C%272013031201548001%27%2C%272012072100035007%27%2C%272012072100035006%27%2C%272012072100035005%27%2C%272012072100035004%27%2C%272012072100035003%27%2C%272012072100035002%27%2C%272012072100035001%27%2C%272012050100464001%27%2C%272012041600990007%27%2C%272012041600990006%27%2C%272012041600990005%27%2C%272012041600990004%27%2C%272012041600990003%27%2C%272012041600990002%27%2C%272012041600990001%27%2C%272012041301086001%27%2C%272011122101443003%27%2C%272011122101443002%27%2C%272011122101443001%27%2C%272011080600090017%27%2C%272011080600090016%27%2C%272011080600090015%27%2C%272011080600090014%27%2C%272011080600090013%27%2C%272011080600090012%27%2C%272011080600090011%27%2C%272011080600090010%27%2C%272011080600090009%27%2C%272011080600090008%27%2C%272011080600090006%27%2C%272011080600090005%27%2C%272011080600090002%27%2C%272011080600090001%27%2C%272011050300156001%27%2C%272011011300287001%27%2C%272010070100724002%27%2C%272010070100724001%27%2C%272009121700420002%27%2C%272009121700420001%27%2C%272009111700084004%27%2C%272009111700084003%27%2C%272009111700084002%27%2C%272009111700084001%27%2C%272009030301151001%27%2C%272009030200646004%27%2C%272009030200646003%27%2C%272009030200646002%27%2C%272009030200646001%27%2C%272009012901179002%27%2C%272008072101573003%27%2C%272008072101573002%27%2C%272008072101573001%27%2C%272008071400153003%27%2C%272008071400153002%27%2C%272008071400153001%27%2C%272008060300164001%27%2C%272008022800402002%27%2C%272008022800402001%27%2C%272008020800564002%27%2C%272008020800564001%27%2C%272007111301467001%27%2C%272007110801516003%27%29+AND+doc_type%3D%27DEED%27&%24limit=99"
  ]
}
```

### Dob permits

- Capability: `property-records/dob_permits`
- Description: Permits issued by the Department of Buildings for one building (BIN), from NYC Open Data DOB Permit Issuance (SODA dataset ipu4-2q9a, the BIS system: every construction, plumbing, equipment and demolition permit since 1989, updated daily). Ordered newest job first (`job__ DESC, permit_sequence__ DESC`: job numbers are 9-digit and increase over time; renewals of one job follow the initial permit). Each row is shaped (job number, types, status, ISO dates, permittee and owner business names) and carried whole in `fields`. Paged with `limit` / `cursor`. An empty first page triggers a cross-check of the DOB Violations and ECB Violations datasets for the same BIN: no row anywhere is `not_found` (unknown BIN); a known building with no permits is a successful empty page. DOB NOW filings (post-2020 work filed outside BIS) are not in this dataset.
- Instructions: Construction, alteration, plumbing or demolition permit history for a building once you have its BIN (from `resolve_address`).
- Cost: 5 credits per call
- Capability file: [Dob permits](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/dob_permits)

Accepted options:
- `bin` (string, required): 7-digit DOB Building Identification Number, e.g. `1015862` (first digit is the borough 1-5). Get it from `resolve_address`. Pattern: ^[1-5][0-9]{6}$. Example: `1015862`
- `cursor` (string): Row offset to resume from: the `next_cursor` of the previous page. Pattern: ^[0-9]{1,9}$. Example: `next_cursor`
- `limit` (number): Permits per page (1-100, default 25). Example: `25`

Response schema example:
```json
{
  "bin": "1015862",
  "count": 5,
  "data_last_modified": "Mon, 21 Sep 2026 23:14:36 GMT",
  "limit": 5,
  "next_cursor": "5",
  "observed_at_ms": 1790101493023,
  "offset": 0,
  "permits": [
    {
      "bbl": "1008350041",
      "block": "00835",
      "borough": "MANHATTAN",
      "dob_run_date": "2026-09-21T00:00:00.000",
      "expiration_date": "2022-11-12",
      "fields": {
        "bbl": "1008350041",
        "bin__": "1015862",
        "bldg_type": "2",
        "block": "00835",
        "borough": "MANHATTAN",
        "community_board": "105",
        "dobrundate": "2026-09-21T00:00:00.000",
        "expiration_date": "11/12/2022",
        "filing_date": "11/01/2021",
        "filing_status": "RENEWAL",
        "gis_census_tract": "76",
        "gis_council_district": "04",
        "gis_latitude": "40.747878",
        "gis_longitude": "-73.984979",
        "gis_nta_name": "Midtown South-Flatiron-Union Square",
        "house__": "350",
        "issuance_date": "11/01/2021",
        "job__": "140976889",
        "job_doc___": "01",
        "job_start_date": "12/07/2020",
        "job_type": "A2",
        "lot": "00041",
        "non_profit": "N",
        "owner_s_business_name": "EMPIRE STATE REALTY TRUST",
        "owner_s_business_type": "PARTNERSHIP",
        "permit_sequence__": "02",
        "permit_si_no": "3878792",
        "permit_status": "ISSUED",
        "permit_subtype": "OT",
        "permit_type": "EW",
        "permittee_s_business_name": "MDB DEVELOPMENT CORP",
        "permittee_s_license__": "0007620",
        "permittee_s_license_type": "GC",
        "self_cert": "Y",
        "site_fill": "NOT APPLICABLE",
        "special_district_1": "MID",
        "street_name": "FIFTH AVENUE",
        "work_type": "OT",
        "zip_code": "10118"
      },
      "filing_date": "2021-11-01",
      "filing_status": "RENEWAL",
      "house_number": "350",
      "issuance_date": "2021-11-01",
      "job_doc_number": "01",
      "job_number": "140976889",
      "job_start_date": "2020-12-07",
      "job_type": "A2",
      "lot": "00041",
      "non_profit": false,
      "owner_business_name": "EMPIRE STATE REALTY TRUST",
      "owner_business_type": "PARTNERSHIP",
      "permit_sequence": "02",
      "permit_si_no": "3878792",
      "permit_status": "ISSUED",
      "permit_subtype": "OT",
      "permit_type": "EW",
      "permittee_business_name": "MDB DEVELOPMENT CORP",
      "permittee_license_type": "GC",
      "self_cert": true,
      "street_name": "FIFTH AVENUE",
      "work_type": "OT",
      "zip_code": "10118"
    },
    {
      "bbl": "1008350041",
      "block": "00835",
      "borough": "MANHATTAN",
      "dob_run_date": "2026-09-21T00:00:00.000",
      "expiration_date": "2021-04-29",
      "fields": {
        "bbl": "1008350041",
        "bin__": "1015862",
        "bldg_type": "2",
        "block": "00835",
        "borough": "MANHATTAN",
        "community_board": "105",
        "dobrundate": "2026-09-21T00:00:00.000",
        "expiration_date": "04/29/2021",
        "filing_date": "12/07/2020",
        "filing_status": "INITIAL",
        "gis_census_tract": "76",
        "gis_council_district": "04",
        "gis_latitude": "40.747878",
        "gis_longitude": "-73.984979",
        "gis_nta_name": "Midtown South-Flatiron-Union Square",
        "house__": "350",
        "issuance_date": "12/07/2020",
        "job__": "140976889",
        "job_doc___": "01",
        "job_start_date": "12/07/2020",
        "job_type": "A2",
        "lot": "00041",
        "non_profit": "N",
        "owner_s_business_name": "EMPIRE STATE REALTY TRUST",
        "owner_s_business_type": "PARTNERSHIP",
        "permit_sequence__": "01",
        "permit_si_no": "3812058",
        "permit_status": "ISSUED",
        "permit_subtype": "OT",
        "permit_type": "EW",
        "permittee_s_business_name": "MDB DEVELOPMENT CORP",
        "permittee_s_license__": "0007620",
        "permittee_s_license_type": "GC",
        "self_cert": "Y",
        "site_fill": "NOT APPLICABLE",
        "special_district_1": "MID",
        "street_name": "FIFTH AVENUE",
        "work_type": "OT",
        "zip_code": "10118"
      },
      "filing_date": "2020-12-07",
      "filing_status": "INITIAL",
      "house_number": "350",
      "issuance_date": "2020-12-07",
      "job_doc_number": "01",
      "job_number": "140976889",
      "job_start_date": "2020-12-07",
      "job_type": "A2",
      "lot": "00041",
      "non_profit": false,
      "owner_business_name": "EMPIRE STATE REALTY TRUST",
      "owner_business_type": "PARTNERSHIP",
      "permit_sequence": "01",
      "permit_si_no": "3812058",
      "permit_status": "ISSUED",
      "permit_subtype": "OT",
      "permit_type": "EW",
      "permittee_business_name": "MDB DEVELOPMENT CORP",
      "permittee_license_type": "GC",
      "self_cert": true,
      "street_name": "FIFTH AVENUE",
      "work_type": "OT",
      "zip_code": "10118"
    },
    {
      "bbl": "1008350041",
      "block": "00835",
      "borough": "MANHATTAN",
      "dob_run_date": "2026-09-21T00:00:00.000",
      "expiration_date": "2021-07-01",
      "fields": {
        "bbl": "1008350041",
        "bin__": "1015862",
        "bldg_type": "2",
        "block": "00835",
        "borough": "MANHATTAN",
        "community_board": "105",
        "dobrundate": "2026-09-21T00:00:00.000",
        "expiration_date": "07/01/2021",
        "filing_date": "10/22/2020",
        "filing_status": "INITIAL",
        "gis_census_tract": "76",
        "gis_council_district": "04",
        "gis_latitude": "40.747878",
        "gis_longitude": "-73.984979",
        "gis_nta_name": "Midtown South-Flatiron-Union Square",
        "house__": "350",
        "issuance_date": "10/22/2020",
        "job__": "140947992",
        "job_doc___": "01",
        "job_start_date": "10/22/2020",
        "job_type": "A2",
        "lot": "00041",
        "non_profit": "N",
        "owner_s_business_name": "EMPIRE STATE REALTY TRUST",
        "owner_s_business_type": "PARTNERSHIP",
        "permit_sequence__": "01",
        "permit_si_no": "3799574",
        "permit_status": "ISSUED",
        "permit_subtype": "OT",
        "permit_type": "EW",
        "permittee_s_business_name": "A.W. & S. CONSTRUCTION CO",
        "permittee_s_license__": "0002920",
        "permittee_s_license_type": "GC",
        "self_cert": "Y",
        "site_fill": "NOT APPLICABLE",
        "special_district_1": "MID",
        "street_name": "FIFTH AVENUE",
        "work_type": "OT",
        "zip_code": "10118"
      },
      "filing_date": "2020-10-22",
      "filing_status": "INITIAL",
      "house_number": "350",
      "issuance_date": "2020-10-22",
      "job_doc_number": "01",
      "job_number": "140947992",
      "job_start_date": "2020-10-22",
      "job_type": "A2",
      "lot": "00041",
      "non_profit": false,
      "owner_business_name": "EMPIRE STATE REALTY TRUST",
      "owner_business_type": "PARTNERSHIP",
      "permit_sequence": "01",
      "permit_si_no": "3799574",
      "permit_status": "ISSUED",
      "permit_subtype": "OT",
      "permit_type": "EW",
      "permittee_business_name": "A.W. & S. CONSTRUCTION CO",
      "permittee_license_type": "GC",
      "self_cert": true,
      "street_name": "FIFTH AVENUE",
      "work_type": "OT",
      "zip_code": "10118"
    },
    {
      "bbl": "1008350041",
      "block": "00835",
      "borough": "MANHATTAN",
      "dob_run_date": "2026-09-21T00:00:00.000",
      "expiration_date": "2021-08-22",
      "fields": {
        "bbl": "1008350041",
        "bin__": "1015862",
        "bldg_type": "2",
        "block": "00835",
        "borough": "MANHATTAN",
        "community_board": "105",
        "dobrundate": "2026-09-21T00:00:00.000",
        "expiration_date": "08/22/2021",
        "filing_date": "09/17/2020",
        "filing_status": "INITIAL",
        "gis_census_tract": "76",
        "gis_council_district": "04",
        "gis_latitude": "40.747878",
        "gis_longitude": "-73.984979",
        "gis_nta_name": "Midtown South-Flatiron-Union Square",
        "house__": "350",
        "issuance_date": "09/21/2020",
        "job__": "140946822",
        "job_doc___": "01",
        "job_start_date": "09/21/2020",
        "job_type": "A2",
        "lot": "00041",
        "non_profit": "N",
        "owner_s_business_name": "EMPIRE STATE REALTY TRUST",
        "owner_s_business_type": "PARTNERSHIP",
        "permit_sequence__": "01",
        "permit_si_no": "3790014",
        "permit_status": "ISSUED",
        "permit_subtype": "OT",
        "permit_type": "EW",
        "permittee_s_business_name": "CROSS MANAGEMENT CORP",
        "permittee_s_license__": "0027399",
        "permittee_s_license_type": "GC",
        "self_cert": "Y",
        "site_fill": "NOT APPLICABLE",
        "special_district_1": "MID",
        "street_name": "FIFTH AVENUE",
        "work_type": "OT",
        "zip_code": "10118"
      },
      "filing_date": "2020-09-17",
      "filing_status": "INITIAL",
      "house_number": "350",
      "issuance_date": "2020-09-21",
      "job_doc_number": "01",
      "job_number": "140946822",
      "job_start_date": "2020-09-21",
      "job_type": "A2",
      "lot": "00041",
      "non_profit": false,
      "owner_business_name": "EMPIRE STATE REALTY TRUST",
      "owner_business_type": "PARTNERSHIP",
      "permit_sequence": "01",
      "permit_si_no": "3790014",
      "permit_status": "ISSUED",
      "permit_subtype": "OT",
      "permit_type": "EW",
      "permittee_business_name": "CROSS MANAGEMENT CORP",
      "permittee_license_type": "GC",
      "self_cert": true,
      "street_name": "FIFTH AVENUE",
      "work_type": "OT",
      "zip_code": "10118"
    },
    {
      "bbl": "1008350041",
      "block": "00835",
      "borough": "MANHATTAN",
      "dob_run_date": "2026-09-21T00:00:00.000",
      "expiration_date": "2021-05-02",
      "fields": {
        "bbl": "1008350041",
        "bin__": "1015862",
        "bldg_type": "2",
        "block": "00835",
        "borough": "MANHATTAN",
        "community_board": "105",
        "dobrundate": "2026-09-21T00:00:00.000",
        "expiration_date": "05/02/2021",
        "filing_date": "09/14/2020",
        "filing_status": "INITIAL",
        "gis_census_tract": "76",
        "gis_council_district": "04",
        "gis_latitude": "40.747878",
        "gis_longitude": "-73.984979",
        "gis_nta_name": "Midtown South-Flatiron-Union Square",
        "house__": "350",
        "issuance_date": "09/14/2020",
        "job__": "140943647",
        "job_doc___": "01",
        "job_start_date": "09/14/2020",
        "job_type": "A2",
        "lot": "00041",
        "non_profit": "N",
        "owner_s_business_name": "EMPIRE STATE REALTY TRUST",
        "owner_s_business_type": "PARTNERSHIP",
        "permit_sequence__": "01",
        "permit_si_no": "3789234",
        "permit_status": "ISSUED",
        "permit_subtype": "OT",
        "permit_type": "EW",
        "permittee_s_business_name": "TRULINE CONSTRUCTION SERV",
        "permittee_s_license__": "0617346",
        "permittee_s_license_type": "GC",
        "self_cert": "Y",
        "site_fill": "NOT APPLICABLE",
        "special_district_1": "MID",
        "street_name": "FIFTH AVENUE",
        "work_type": "OT",
        "zip_code": "10118"
      },
      "filing_date": "2020-09-14",
      "filing_status": "INITIAL",
      "house_number": "350",
      "issuance_date": "2020-09-14",
      "job_doc_number": "01",
      "job_number": "140943647",
      "job_start_date": "2020-09-14",
      "job_type": "A2",
      "lot": "00041",
      "non_profit": false,
      "owner_business_name": "EMPIRE STATE REALTY TRUST",
      "owner_business_type": "PARTNERSHIP",
      "permit_sequence": "01",
      "permit_si_no": "3789234",
      "permit_status": "ISSUED",
      "permit_subtype": "OT",
      "permit_type": "EW",
      "permittee_business_name": "TRULINE CONSTRUCTION SERV",
      "permittee_license_type": "GC",
      "self_cert": true,
      "street_name": "FIFTH AVENUE",
      "work_type": "OT",
      "zip_code": "10118"
    }
  ],
  "source_urls": [
    "https://data.cityofnewyork.us/resource/ipu4-2q9a.json?bin__=1015862&%24order=job__+DESC%2Cpermit_sequence__+DESC%2Cpermit_si_no+DESC&%24limit=5&%24offset=0"
  ]
}
```

### Dob violations

- Capability: `property-records/dob_violations`
- Description: Violations against one building (BIN) from NYC Open Data: `kind: dob` reads DOB Violations (SODA 3h2n-5cm9; violations issued by DOB inspectors, with disposition) and `kind: ecb` reads DOB ECB Violations (6bgk-3dad; Environmental Control Board / OATH summonses with hearing status, severity, penalties, amounts paid and balance due). Ordered by `issue_date DESC`. Rows are shaped into one common record (`kind` says which fields apply) and carried whole in `fields`. Paged with `limit` / `cursor`. An empty first page triggers a cross-check of the sibling DOB datasets (permits and the other violation kind) for the same BIN: no row anywhere is `not_found`; a known building with no violations of that kind is a successful empty page.
- Instructions: Open or resolved DOB violations, ECB/OATH summonses and outstanding penalties for a building by BIN.
- Cost: 5 credits per call
- Capability file: [Dob violations](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/dob_violations)

Accepted options:
- `bin` (string, required): 7-digit DOB Building Identification Number, e.g. `1015862` (first digit is the borough 1-5). Get it from `resolve_address`. Pattern: ^[1-5][0-9]{6}$. Example: `1015862`
- `cursor` (string): Row offset to resume from: the `next_cursor` of the previous page. Pattern: ^[0-9]{1,9}$. Example: `next_cursor`
- `kind` (string): dob: DOB Violations (3h2n-5cm9); ecb: ECB/OATH violations (6bgk-3dad). Example: `dob`
- `limit` (number): Violations per page (1-100, default 25). Example: `25`

Response schema example:
```json
{
  "bin": "1015862",
  "count": 5,
  "data_last_modified": "Tue, 22 Sep 2026 17:23:26 GMT",
  "dataset_id": "6bgk-3dad",
  "kind": "ecb",
  "limit": 5,
  "next_cursor": "5",
  "observed_at_ms": 1790101501354,
  "offset": 0,
  "source_urls": [
    "https://data.cityofnewyork.us/resource/6bgk-3dad.json?bin=1015862&%24order=issue_date+DESC%2Cisn_dob_bis_extract&%24limit=5&%24offset=0"
  ],
  "violations": [
    {
      "amount_paid_usd": 1250,
      "balance_due_usd": 0,
      "block": "00835",
      "category_or_status": "RESOLVE",
      "certification_status": "CERTIFICATE ACCEPTED",
      "description": "HOIST CABLES DAMAGED. DURING TRAVEL IN THE DOWN DIRECTION THE HOIST ROPES CROSSED CAUSING THE ELEVATOR TO SHUT DOWN. HOIST ROPES NEED TO BE REPLACED AND INSPECTION BY BY A NYCDOB ELEVATOR INSPECTOR AND TEST WEI",
      "device_number": null,
      "disposition_comments": null,
      "disposition_date": null,
      "fields": {
        "aggravated_level": "NO",
        "amount_paid": "1250",
        "balance_due": "0",
        "bin": "1015862",
        "block": "00835",
        "boro": "1",
        "certification_status": "CERTIFICATE ACCEPTED",
        "ecb_violation_number": "39107427M",
        "ecb_violation_status": "RESOLVE",
        "hearing_date": "20240509",
        "hearing_status": "ADMIT/IN-VIO",
        "hearing_time": "830",
        "infraction_code1": "151",
        "isn_dob_bis_extract": "1572407",
        "issue_date": "20240301",
        "lot": "0041",
        "penality_imposed": "1250",
        "respondent_city": "NEW YORK",
        "respondent_house_number": "111",
        "respondent_name": "ESRT EMPIRE STATE BUILDIN",
        "respondent_street": "WEST   33 STREET",
        "respondent_zip": "10001",
        "section_law_description1": "28-301.1                                                                    FAILURE TO MAINTAIN BUILDING IN CODE COMPLIANT MANNER: SERVICE EQUIPME",
        "served_date": "20240301",
        "severity": "CLASS - 1",
        "violation_description": "HOIST CABLES DAMAGED. DURING TRAVEL IN THE DOWN DIRECTION THE HOIST ROPES CROSSED CAUSING THE ELEVATOR TO SHUT DOWN. HOIST ROPES NEED TO BE REPLACED AND INSPECTION BY BY A NYCDOB ELEVATOR INSPECTOR AND TEST WEI",
        "violation_type": "Elevators"
      },
      "hearing_date": "2024-05-09",
      "hearing_status": "ADMIT/IN-VIO",
      "house_number": "111",
      "infraction_codes": [
        {
          "code": "151",
          "section_law_description": "28-301.1 FAILURE TO MAINTAIN BUILDING IN CODE COMPLIANT MANNER: SERVICE EQUIPME"
        }
      ],
      "isn": "1572407",
      "issue_date": "2024-03-01",
      "kind": "ecb",
      "lot": "0041",
      "penalty_imposed_usd": 1250,
      "related_number": null,
      "respondent_name": "ESRT EMPIRE STATE BUILDIN",
      "severity": "CLASS - 1",
      "street": "WEST   33 STREET",
      "violation_number": "39107427M",
      "violation_type": "Elevators",
      "violation_type_code": null
    },
    {
      "amount_paid_usd": 0,
      "balance_due_usd": 0,
      "block": "00835",
      "category_or_status": "RESOLVE",
      "certification_status": "N/A - DISMISSED",
      "description": "FAILURE TO NOTIFY THE DEPT. OF AN ACCIDENT/INCIDENT THAT RESULTED IN AFATALITY OR AN INJURY.NOTE:A WORKER WERE INJURED WHEN USING A MANLIFT TO WORK ON THE DUCT.WHEN HIS HAND SLIPPED & THE SHARP EDGE OF THE DUCT",
      "device_number": null,
      "disposition_comments": null,
      "disposition_date": null,
      "fields": {
        "aggravated_level": "NO",
        "amount_paid": "0",
        "balance_due": "0",
        "bin": "1015862",
        "block": "00835",
        "boro": "1",
        "certification_status": "N/A - DISMISSED",
        "dob_violation_number": "04182022CE05IH18",
        "ecb_violation_number": "35646458M",
        "ecb_violation_status": "RESOLVE",
        "hearing_date": "20220728",
        "hearing_status": "DISMISSED",
        "hearing_time": "830",
        "infraction_code1": "1M7",
        "isn_dob_bis_extract": "962073",
        "issue_date": "20220418",
        "lot": "0041",
        "penality_imposed": "0",
        "respondent_city": "MAN",
        "respondent_house_number": "8",
        "respondent_name": "CROSS MANAGEMENT CORP",
        "respondent_street": "EAST   40 STREET",
        "respondent_zip": "10016",
        "served_date": "20220428",
        "severity": "CLASS - 1",
        "violation_description": "FAILURE TO NOTIFY THE DEPT. OF AN ACCIDENT/INCIDENT THAT RESULTED IN AFATALITY OR AN INJURY.NOTE:A WORKER WERE INJURED WHEN USING A MANLIFT TO WORK ON THE DUCT.WHEN HIS HAND SLIPPED & THE SHARP EDGE OF THE DUCT",
        "violation_type": "Unknown"
      },
      "hearing_date": "2022-07-28",
      "hearing_status": "DISMISSED",
      "house_number": "8",
      "infraction_codes": [
        {
          "code": "1M7",
          "section_law_description": null
        }
      ],
      "isn": "962073",
      "issue_date": "2022-04-18",
      "kind": "ecb",
      "lot": "0041",
      "penalty_imposed_usd": 0,
      "related_number": "04182022CE05IH18",
      "respondent_name": "CROSS MANAGEMENT CORP",
      "severity": "CLASS - 1",
      "street": "EAST   40 STREET",
      "violation_number": "35646458M",
      "violation_type": "Unknown",
      "violation_type_code": null
    },
    {
      "amount_paid_usd": 0,
      "balance_due_usd": 0,
      "block": "00835",
      "category_or_status": "RESOLVE",
      "certification_status": "CURE ACCEPTED",
      "description": "FAILURE TO PROVIDE APPROVED / ACCEPTED PLANS AT JOB SITE AT TIME OF INSPECTION AT TIME OF SPOT CHECK INSPECTION FOR 40 FLOOR SPRINKLER FINISH NO APPROVED PLANS ON SITE , PROVIDE APPROVED /ACCEPTED CONSTRUCTION",
      "device_number": null,
      "disposition_comments": null,
      "disposition_date": null,
      "fields": {
        "aggravated_level": "NO",
        "amount_paid": "0",
        "balance_due": "0",
        "bin": "1015862",
        "block": "00835",
        "boro": "1",
        "certification_status": "CURE ACCEPTED",
        "ecb_violation_number": "39007179Y",
        "ecb_violation_status": "RESOLVE",
        "hearing_date": "20190926",
        "hearing_status": "CURED/IN-VIO",
        "hearing_time": "1130",
        "infraction_code1": "210",
        "isn_dob_bis_extract": "1418233",
        "issue_date": "20190806",
        "lot": "0041",
        "penality_imposed": "0",
        "respondent_city": "NEW YORK",
        "respondent_house_number": "1",
        "respondent_name": "ESRT EMPIRE STATE BUILDIN",
        "respondent_street": "CENTRE STREET",
        "respondent_zip": "10007",
        "section_law_description1": "28-104.2.2                                                                  FAIL TO PROVIDE APPRV/ACCEPTED PLANS ST JOB SITE AT TIME OF INSP",
        "served_date": "20190806",
        "severity": "CLASS - 2",
        "violation_description": "FAILURE TO PROVIDE APPROVED / ACCEPTED PLANS AT JOB SITE AT TIME OF INSPECTION AT TIME OF SPOT CHECK INSPECTION FOR 40 FLOOR SPRINKLER FINISH NO APPROVED PLANS ON SITE , PROVIDE APPROVED /ACCEPTED CONSTRUCTION",
        "violation_type": "Construction"
      },
      "hearing_date": "2019-09-26",
      "hearing_status": "CURED/IN-VIO",
      "house_number": "1",
      "infraction_codes": [
        {
          "code": "210",
          "section_law_description": "28-104.2.2 FAIL TO PROVIDE APPRV/ACCEPTED PLANS ST JOB SITE AT TIME OF INSP"
        }
      ],
      "isn": "1418233",
      "issue_date": "2019-08-06",
      "kind": "ecb",
      "lot": "0041",
      "penalty_imposed_usd": 0,
      "related_number": null,
      "respondent_name": "ESRT EMPIRE STATE BUILDIN",
      "severity": "CLASS - 2",
      "street": "CENTRE STREET",
      "violation_number": "39007179Y",
      "violation_type": "Construction",
      "violation_type_code": null
    },
    {
      "amount_paid_usd": 620,
      "balance_due_usd": -310,
      "block": "00835",
      "category_or_status": "RESOLVE",
      "certification_status": "CERTIFICATE ACCEPTED",
      "description": "52B14,17B10.  52-SHORTEN HOIST ROPES; 17-BEND TABS AT ALL FLOORS",
      "device_number": null,
      "disposition_comments": null,
      "disposition_date": null,
      "fields": {
        "aggravated_level": "NO",
        "amount_paid": "620",
        "balance_due": "-310",
        "bin": "1015862",
        "block": "00835",
        "boro": "1",
        "certification_status": "CERTIFICATE ACCEPTED",
        "dob_violation_number": "102318E2862A02",
        "ecb_violation_number": "38265858L",
        "ecb_violation_status": "RESOLVE",
        "hearing_date": "20181220",
        "hearing_status": "STIPULATION/IN-VIO",
        "hearing_time": "830",
        "infraction_code1": "251",
        "isn_dob_bis_extract": "1058430",
        "issue_date": "20181023",
        "lot": "0041",
        "penality_imposed": "310",
        "respondent_city": "NY",
        "respondent_house_number": "111",
        "respondent_name": "ESRT EMPIRE STATE BUILDIN",
        "respondent_street": "WEST   33 STREET",
        "respondent_zip": "10001",
        "section_law_description1": "28-301.1                                                                    FAILURE TO MAINTAIN BUILDING IN CODE-COMPLAINT MANNER:SERVICE EQUIPMEN",
        "served_date": "20181023",
        "severity": "CLASS - 2",
        "violation_description": "52B14,17B10.  52-SHORTEN HOIST ROPES; 17-BEND TABS AT ALL FLOORS",
        "violation_type": "Elevators"
      },
      "hearing_date": "2018-12-20",
      "hearing_status": "STIPULATION/IN-VIO",
      "house_number": "111",
      "infraction_codes": [
        {
          "code": "251",
          "section_law_description": "28-301.1 FAILURE TO MAINTAIN BUILDING IN CODE-COMPLAINT MANNER:SERVICE EQUIPMEN"
        }
      ],
      "isn": "1058430",
      "issue_date": "2018-10-23",
      "kind": "ecb",
      "lot": "0041",
      "penalty_imposed_usd": 310,
      "related_number": "102318E2862A02",
      "respondent_name": "ESRT EMPIRE STATE BUILDIN",
      "severity": "CLASS - 2",
      "street": "WEST   33 STREET",
      "violation_number": "38265858L",
      "violation_type": "Elevators",
      "violation_type_code": null
    },
    {
      "amount_paid_usd": 1000,
      "balance_due_usd": 0,
      "block": "00835",
      "category_or_status": "RESOLVE",
      "certification_status": "CERTIFICATE ACCEPTED",
      "description": "FAILURE TO FILE ANNUAL CERTIFICATION THAT COOLING TOWER 1000000383 HASBEEN INSPECTED,TESTED,& DISINFECTED,& THAT A MAINTENANCE PLAN HAS BEENDEVELOPED & IMPLEMENTED,BY 11/1/2016.REM:FILE ANNUAL CERTIFICATION.",
      "device_number": null,
      "disposition_comments": null,
      "disposition_date": null,
      "fields": {
        "aggravated_level": "NO",
        "amount_paid": "1000",
        "balance_due": "0",
        "bin": "1015862",
        "block": "00835",
        "boro": "1",
        "certification_status": "CERTIFICATE ACCEPTED",
        "dob_violation_number": "06202017CN105KD904",
        "ecb_violation_number": "37002935P",
        "ecb_violation_status": "RESOLVE",
        "hearing_date": "20171207",
        "hearing_status": "IN VIOLATION",
        "hearing_time": "830",
        "infraction_code1": "291",
        "isn_dob_bis_extract": "1193614",
        "issue_date": "20170620",
        "lot": "0041",
        "penality_imposed": "1000",
        "respondent_city": "NEW YORK",
        "respondent_house_number": "111",
        "respondent_name": "ESRT EMPIRE STATE BUILDIN",
        "respondent_street": "WEST 33RD STREET 12T",
        "respondent_zip": "10120",
        "section_law_description1": "28-317.5                                                                    FAILURE TO FILE AN ANNUAL CERTIFICATION OF COOLING TOWER INSPECTION/ T",
        "served_date": "20171016",
        "severity": "CLASS - 2",
        "violation_description": "FAILURE TO FILE ANNUAL CERTIFICATION THAT COOLING TOWER 1000000383 HASBEEN INSPECTED,TESTED,& DISINFECTED,& THAT A MAINTENANCE PLAN HAS BEENDEVELOPED & IMPLEMENTED,BY 11/1/2016.REM:FILE ANNUAL CERTIFICATION.",
        "violation_type": "Unknown"
      },
      "hearing_date": "2017-12-07",
      "hearing_status": "IN VIOLATION",
      "house_number": "111",
      "infraction_codes": [
        {
          "code": "291",
          "section_law_description": "28-317.5 FAILURE TO FILE AN ANNUAL CERTIFICATION OF COOLING TOWER INSPECTION/ T"
        }
      ],
      "isn": "1193614",
      "issue_date": "2017-06-20",
      "kind": "ecb",
      "lot": "0041",
      "penalty_imposed_usd": 1000,
      "related_number": "06202017CN105KD904",
      "respondent_name": "ESRT EMPIRE STATE BUILDIN",
      "severity": "CLASS - 2",
      "street": "WEST 33RD STREET 12T",
      "violation_number": "37002935P",
      "violation_type": "Unknown",
      "violation_type_code": null
    }
  ]
}
```

### Property

- Capability: `property-records/property`
- Description: The MapPLUTO tax-lot record for one BBL from NYC Open Data (SODA dataset 64uk-42ks, Department of City Planning): owner of record (`owner_name`, `owner_type`), address, building class, land use, year built and altered, floors, units, lot and building areas (sq ft), Department of Finance assessed land/total values (USD), zoning districts, landmark status, community and council districts, coordinates and the PLUTO release version. `pluto` carries the complete row exactly as published (all ~90 columns, strings). An unknown or retired BBL (SODA answers `[]`) is `not_found`; a malformed BBL is `invalid_input`. Links: `acris_url` opens the ACRIS document search pre-scoped to the lot.
- Instructions: Owner of record, lot and building facts, assessed value or zoning for a parcel once you have its BBL (from `resolve_address`).
- Cost: 5 credits per call
- Capability file: [Property](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/property)

Accepted options:
- `bbl` (string, required): Borough-Block-Lot: the 10-digit form `1008350041` (borough 1-5, 5-digit block, 4-digit lot) or `1-835-41` / `1/835/41`. Example: `1008350041`

Response schema example:
```json
{
  "acris_url": "https://a836-acris.nyc.gov/DS/DocumentSearch/BBL?borough=1&block=835&lot=41",
  "address": "338 5 AVENUE",
  "assessed_land_usd": 99000000,
  "assessed_total_usd": 577440900,
  "bbl": "1008350041",
  "block": 835,
  "borough": "MN",
  "borough_code": 1,
  "building_area_sqft": 2812739,
  "building_class": "O4",
  "commercial_area_sqft": 2812739,
  "community_district": "105",
  "council_district": "4",
  "data_last_modified": "Mon, 24 Aug 2026 20:20:51 GMT",
  "exempt_total_usd": 0,
  "land_use": "5",
  "landmark": "INDIVIDUAL AND INTERIOR LANDMARK",
  "latitude": 40.7484514,
  "longitude": -73.9857117,
  "lot": 41,
  "lot_area_sqft": 91351,
  "num_buildings": 1,
  "num_floors": 102,
  "observed_at_ms": 1790101459092,
  "office_area_sqft": 2685483,
  "owner_name": "ESRT EMPIRE STATE BUILDING, L.L.C.",
  "owner_type": "P",
  "pluto": {
    "address": "338 5 AVENUE",
    "affresfar": "12.00000000000",
    "areasource": "2",
    "assessland": "99000000.00000",
    "assesstot": "577440900.00000",
    "bbl": "1008350041.00000000",
    "bct2020": "1007600",
    "bctcb2020": "10076001003",
    "bldgarea": "2812739",
    "bldgclass": "O4",
    "bldgdepth": "425.0000000",
    "bldgfront": "198.0000000",
    "block": "835",
    "borocode": "1",
    "borough": "MN",
    "bsmtcode": "2",
    "builtfar": "30.79000000000",
    "cb2010": "1004",
    "cd": "105",
    "comarea": "2812739",
    "commfar": "15.00000000000",
    "council": "4",
    "ct2010": "76",
    "easements": "0",
    "exempttot": "0.00000",
    "ext": "N",
    "facilfar": "15.00000000000",
    "factryarea": "0",
    "firecomp": "L024",
    "garagearea": "0",
    "healtharea": "5200",
    "healthcenterdistrict": "15",
    "irrlotcode": true,
    "landmark": "INDIVIDUAL AND INTERIOR LANDMARK",
    "landuse": "5",
    "latitude": "40.7484514",
    "longitude": "-73.9857117",
    "lot": "41",
    "lotarea": "91351",
    "lotdepth": "500.0000000",
    "lotfront": "197.5000000",
    "lottype": "3",
    "mnffar": "0.00000000000",
    "numbldgs": "1",
    "numfloors": "102.0000000",
    "officearea": "2685483",
    "otherarea": "0",
    "ownername": "ESRT EMPIRE STATE BUILDING, L.L.C.",
    "ownertype": "P",
    "plutomapid": "1",
    "policeprct": "14",
    "proxcode": "3",
    "resarea": "0",
    "residfar": "10.00000000000",
    "retailarea": "127256",
    "sanborn": "104 016",
    "sanitboro": "1",
    "sanitdistrict": "5",
    "sanitsub": "1A",
    "schooldist": "2",
    "spdist1": "MiD",
    "splitzone": true,
    "strgearea": "0",
    "taxmap": "10306",
    "tract2010": "76",
    "transitzone": "Manhattan Core and Long Island City Parking Areas",
    "unitsres": "0",
    "unitstotal": "513",
    "version": "26v2",
    "xcoord": "988209",
    "ycoord": "211958",
    "yearalter1": "2011",
    "yearalter2": "0",
    "yearbuilt": "1931",
    "zipcode": "10001",
    "zonedist1": "C5-3",
    "zonedist2": "C6-4.5",
    "zonemap": "8d"
  },
  "pluto_version": "26v2",
  "residential_area_sqft": 0,
  "retail_area_sqft": 127256,
  "source_url": "https://data.cityofnewyork.us/resource/64uk-42ks.json?bbl=1008350041",
  "special_district_1": "MiD",
  "units_residential": 0,
  "units_total": 513,
  "year_altered_1": 2011,
  "year_altered_2": 0,
  "year_built": 1931,
  "zip_code": "10001",
  "zoning_district_1": "C5-3",
  "zoning_district_2": "C6-4.5"
}
```

### Resolve address

- Capability: `property-records/resolve_address`
- Description: Resolve a free-text NYC address to its Borough-Block-Lot (BBL) and Building Identification Number (BIN) with the Department of City Planning's GeoSearch API (https://geosearch.planninglabs.nyc/v2/search, a Pelias geocoder over the Property Address Directory). Returns up to `limit` candidate matches ordered by GeoSearch relevance, each with the normalized address, borough, ZIP, coordinates and the PAD `bbl` / `bin` that key every other function of this program. Zero matches is a successful empty result (`count: 0`), not an error. Anonymous, no token.
- Instructions: First step for any 'who owns / what was filed at <address>' question: turn the address into a BBL (for `property`, `acris_documents`) and a BIN (for `dob_permits`, `dob_violations`).
- Cost: 5 credits per call
- Capability file: [Resolve address](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/property-records/resolve_address)

Accepted options:
- `address` (string, required): Street address, optionally with borough, city or ZIP: `350 5th Avenue, Manhattan`, `1 Centre St, New York, NY 10007`. Example: `350 5th Avenue, Manhattan`
- `limit` (number): Candidate matches per page (1-10, default 5). Example: `5`

Response schema example:
```json
{
  "count": 3,
  "matches": [
    {
      "accuracy": "point",
      "bbl": "1008350041",
      "bin": "1015862",
      "borough": "Manhattan",
      "confidence": 0.8,
      "gid": "nycpad:venue:88717",
      "house_number": "350",
      "label": "350 5 AVENUE, New York, NY, USA",
      "latitude": 40.748441,
      "layer": "venue",
      "locality": "New York",
      "longitude": -73.985656,
      "match_type": "fallback",
      "name": "350 5 AVENUE",
      "neighbourhood": "Midtown West",
      "pad_version": "26c",
      "postal_code": "10118",
      "street": "5 AVENUE"
    },
    {
      "accuracy": "point",
      "bbl": "3009810111",
      "bin": "3021057",
      "borough": "Brooklyn",
      "confidence": 0.8,
      "gid": "nycpad:venue:791063",
      "house_number": "350",
      "label": "350 5 AVENUE, Brooklyn, NY, USA",
      "latitude": 40.672191,
      "layer": "venue",
      "locality": "New York",
      "longitude": -73.984456,
      "match_type": "fallback",
      "name": "350 5 AVENUE",
      "neighbourhood": "Park Slope",
      "pad_version": "26c",
      "postal_code": "11215",
      "street": "5 AVENUE"
    },
    {
      "accuracy": "point",
      "bbl": "1008350041",
      "bin": "1015862",
      "borough": "Manhattan",
      "confidence": 0.8,
      "gid": "nycpad:venue:88719",
      "house_number": "350A",
      "label": "350A 5 AVENUE, New York, NY, USA",
      "latitude": 40.748441,
      "layer": "venue",
      "locality": "New York",
      "longitude": -73.985656,
      "match_type": "fallback",
      "name": "350A 5 AVENUE",
      "neighbourhood": "Midtown West",
      "pad_version": "26c",
      "postal_code": "10118",
      "street": "5 AVENUE"
    }
  ],
  "observed_at_ms": 1790101453330,
  "query": "350 5th Avenue, Manhattan",
  "source_url": "https://geosearch.planninglabs.nyc/v2/search?text=350+5th+Avenue%2C+Manhattan&size=3"
}
```

### Contractor activity

- Capability: `building-permits/contractor_activity`
- Description: Rank NYC contractors (DOB permittees) by permits issued in an issue-date window, with one grouped SoQL query over DOB NOW: Build – Approved Permits (default) or BIS DOB Permit Issuance (source bis). Optional permit type, ZIP, borough and contractor-name filters. Each contractor has business name, licensee name, DOB licence number and type, distinct permits, job filings, total estimated job cost of those filings (DOB NOW only; each filing counted once), first and last issue date in the window, source_url and licence.
- Instructions: Which contractors pull the most permits (or the largest jobs) in a borough, ZIP or trade over a period; or one contractor's permit totals (contractor filter). Follow up with search_permits contractor_license to list a contractor's permits.
- Cost: 5 credits per call
- Capability file: [Contractor activity](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/contractor_activity)

Accepted options:
- `borough` (string): Manhattan, Bronx, Brooklyn, Queens or Staten Island, case-insensitive. Example: `<borough>`
- `contractor` (string): Case-insensitive substring of the business name or the licensee's first and last name, to look up one contractor's totals. Example: `<contractor>`
- `cursor` (string): next_cursor from the previous page; repeat the same filters with it. Pattern: ^[0-9]+$. Example: `<cursor>`
- `issued_since` (string): Count only permits issued on or after this day, YYYY-MM-DD. Omit for the whole dataset. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<issued_since>`
- `issued_until` (string): Count only permits issued on or before this day, YYYY-MM-DD. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<issued_until>`
- `limit` (number): Rows per page. Example: `25`
- `permit_type` (string): Case-insensitive substring over permit type and class, as in search_permits (plumbing, sidewalk shed, new building). Example: `<permit_type>`
- `sort` (string): permits_desc (default): most permits first. valuation_desc (dob_now only): largest total estimated job cost first. Example: `permits_desc`
- `source` (string): dob_now (default): DOB NOW: Build – Approved Permits (rbx6-tga4), every permit issued through DOB NOW since 2016 except electrical, elevator and limited alteration, about 1 million rows. bis: DOB Permit Issuance (ipu4-2q9a), legacy BIS permits since 1989, about 4 million rows, still updated for permits that stay in BIS. Example: `dob_now`
- `zip` (string): 5-digit ZIP code of the building. Pattern: ^[0-9]{5}$. Example: `<zip>`

Response schema example:
```json
{
  "contractors": [
    {
      "company": "ROMA SCAFFOLDING INC",
      "first_issued": "2025-01-03",
      "job_filings": 173,
      "last_issued": "2025-03-24",
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "license_number": "602375",
      "license_type": "GC",
      "name": "HELEN ANIFTOS",
      "permits": 174,
      "role": "Permittee (General Contractor)",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?applicant_license=602375",
      "valuation_usd": 43592678.84
    },
    {
      "company": "KALE CONSTRUCTION INC",
      "first_issued": "2025-01-02",
      "job_filings": 83,
      "last_issued": "2025-03-28",
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "license_number": "626264",
      "license_type": "GC",
      "name": "SAM YIN",
      "permits": 85,
      "role": "Permittee (General Contractor)",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?applicant_license=626264",
      "valuation_usd": 6698565
    },
    {
      "company": "BROOKLYN SOLARWORKS LLC",
      "first_issued": "2025-01-02",
      "job_filings": 84,
      "last_issued": "2025-03-31",
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "license_number": "614701",
      "license_type": "GC",
      "name": "THOMAS LUDWIG",
      "permits": 84,
      "role": "Permittee (General Contractor)",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?applicant_license=614701",
      "valuation_usd": 4280850.32
    },
    {
      "company": "AMERICAN STANDARD P&H COR",
      "first_issued": "2025-01-02",
      "job_filings": 82,
      "last_issued": "2025-03-31",
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "license_number": "001978",
      "license_type": "P",
      "name": "SAVVAS MILIENOS",
      "permits": 82,
      "role": "Permittee (P)",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?applicant_license=001978",
      "valuation_usd": 1779238.21
    },
    {
      "company": "CORE SCAFFOLD SYSTEMS INC",
      "first_issued": "2025-01-03",
      "job_filings": 79,
      "last_issued": "2025-03-31",
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "license_number": "617232",
      "license_type": "GC",
      "name": "ERIND GAZHELI",
      "permits": 79,
      "role": "Permittee (General Contractor)",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?applicant_license=617232",
      "valuation_usd": 138048
    }
  ],
  "count": 5,
  "dataset": {
    "id": "rbx6-tga4",
    "name": "DOB NOW: Build – Approved Permits",
    "portal": "data.cityofnewyork.us",
    "updated_at": "2026-10-27T18:42:04Z",
    "url": "https://data.cityofnewyork.us/d/rbx6-tga4"
  },
  "jurisdiction": {
    "county": "Kings County",
    "name": "New York City",
    "state": "NY"
  },
  "license": {
    "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
    "name": "NYC Open Data Terms of Use",
    "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
  },
  "next_cursor": "5",
  "observed_at_ms": 1793146532555,
  "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?%24query=SELECT+applicant_license+AS+license_number%2C+permittee_s_license_type+AS+license_type%2C+applicant_business_name+AS+company%2C+applicant_first_name+AS+first_name%2C+applicant_last_name+AS+last_name%2C+job_filing_number%2C+count%28DISTINCT+work_permit%29+AS+p%2C+max%28estimated_job_costs%3A%3Anumber%29+AS+cost%2C+min%28issued_date%29+AS+first_issued%2C+max%28issued_date%29+AS+last_issued+WHERE+issued_date+IS+NOT+NULL+AND+work_permit+IS+NOT+NULL+AND+work_permit+%21%3D+%27Permit+is+not+yet+issued%27+AND+%28applicant_license+IS+NOT+NULL+OR+applicant_business_name+IS+NOT+NULL%29+AND+issued_date+%3E%3D+%272025-01-01T00%3A00%3A00%27+AND+issued_date+%3C%3D+%272025-03-31T23%3A59%3A59.999%27+AND+upper%28borough%29+%3D+%27BROOKLYN%27+GROUP+BY+applicant_license%2C+permittee_s_license_type%2C+applicant_business_name%2C+applicant_first_name%2C+applicant_last_name%2C+job_filing_number+%7C%3E+SELECT+license_number%2C+license_type%2C+company%2C+first_name%2C+last_name%2C+sum%28p%29+AS+permits%2C+count%28*%29+AS+jobs%2C+sum%28cost%29+AS+valuation%2C+min%28first_issued%29+AS+first_issued%2C+max%28last_issued%29+AS+last_issued+GROUP+BY+license_number%2C+license_type%2C+company%2C+first_name%2C+last_name+ORDER+BY+permits+DESC%2C+valuation+DESC+NULL+LAST%2C+license_number%2C+company%2C+first_name%2C+last_name+LIMIT+5",
  "window": {
    "issued_since": "2025-01-01",
    "issued_until": "2025-03-31"
  }
}
```

### Get permit

- Capability: `building-permits/get_permit`
- Description: One NYC building permit by DOB permit number, from DOB NOW (B01110047-S3-ST) or BIS (123499883-02-EW-MH; BIS's own 123499883-02-EW MH also works), recognised by its form. Returns the shared permit fields for the newest issuance (DOB NOW combined permits list each work type on its own row; permit_type joins them), every issuance newest first (initial permit and renewals, with work type, filing reason, status, issue and expiry dates), and raw, the newest row with every published column except owner names, home addresses, phone numbers and site staff names. An unknown permit number is not_found; a string that is not a DOB permit number is invalid_input.
- Instructions: After search_permits, or with a permit number from a DOB notice, to see the permit's renewals, expiry and every published column.
- Cost: 5 credits per call
- Capability file: [Get permit](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/get_permit)

Accepted options:
- `permit_number` (string, required): DOB permit number from a record: DOB NOW B01110047-S3-ST or S00488778-S1-GC-CX; BIS 123499883-02-EW-MH or 321697053-01-PL. Case-insensitive. Example: `<permit_number>`

Response schema example:
```json
{
  "address": "350 FIFTH AVENUE",
  "applied_date": null,
  "bin": "1015862",
  "city": "Manhattan",
  "completed_date": null,
  "contractors": [
    {
      "company": "MACKLER MASTER FIRE INC",
      "license_number": "000481",
      "name": "CARMINE ROCA",
      "phone": null,
      "role": "Permittee (F)"
    }
  ],
  "description": "Sprinkler modifications taking place on the 24th Floor as per plans filed herewith. No change in Use, Egress or Occupancy.",
  "expires_date": "2025-02-09",
  "housing_units": null,
  "issuance_count": 2,
  "issuances": [
    {
      "expires_date": "2025-02-09",
      "issued_date": "2024-11-22",
      "permit_class": "Renewal Permit Without Changes",
      "permit_type": "Sprinklers",
      "sequence": 2,
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01005477-I1-EW-SP&sequence_number=2",
      "status": "Signed-off"
    },
    {
      "expires_date": "2024-07-05",
      "issued_date": "2024-04-03",
      "permit_class": "Initial Permit",
      "permit_type": "Sprinklers",
      "sequence": 1,
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01005477-I1-EW-SP&sequence_number=1",
      "status": "Signed-off"
    }
  ],
  "issued_date": "2024-11-22",
  "job_number": "M01005477-I1",
  "latitude": 40.747878,
  "license": {
    "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
    "name": "NYC Open Data Terms of Use",
    "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
  },
  "longitude": -73.984979,
  "observed_at_ms": 1793146482763,
  "parcel_id": "1008350041",
  "permit_class": "Renewal Permit Without Changes",
  "permit_number": "M01005477-I1-EW-SP",
  "permit_type": "Sprinklers",
  "raw": {
    "applicant_business_address": "7216 16TH AVENUE",
    "applicant_business_name": "MACKLER MASTER FIRE INC",
    "applicant_first_name": "CARMINE",
    "applicant_last_name": "ROCA",
    "applicant_license": "000481",
    "approved_date": "2024-03-26T00:00:00.000",
    "bbl": "1008350041",
    "bin": "1015862",
    "block": "835",
    "borough": "MANHATTAN",
    "c_b_no": "105",
    "census_tract": "76",
    "community_board": "105",
    "council_district": "4",
    "estimated_job_costs": "10000",
    "expired_date": "2025-02-09T05:00:00.000",
    "filing_reason": "Renewal Permit Without Changes",
    "filing_representative_business_name": "JENNY FLORES EXPEDITING",
    "filing_representative_first_name": "BIBI",
    "filing_representative_last_name": "R LALBIHARI",
    "house_no": "350",
    "issued_date": "2024-11-22T00:00:00.000",
    "job_description": "Sprinkler modifications taking place on the 24th Floor as per plans filed herewith. No change in Use, Egress or Occupancy.",
    "job_filing_number": "M01005477-I1",
    "latitude": "40.747878",
    "longitude": "-73.984979",
    "lot": "41",
    "nta": "Midtown South-Flatiron-Union Square",
    "owner_business_name": "PR",
    "permit_status": "Signed-off",
    "permittee_s_license_type": "F",
    "sequence_number": "2",
    "street_name": "FIFTH AVENUE",
    "tracking_number": "929110417",
    "work_on_floor": "Floor Number(s) 024 through 024",
    "work_permit": "M01005477-I1-EW-SP",
    "work_type": "Sprinklers",
    "zip_code": "10118"
  },
  "sequence": 2,
  "source": "dob_now",
  "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01005477-I1-EW-SP&sequence_number=2&work_type=Sprinklers",
  "square_feet": null,
  "state": "NY",
  "status": "Signed-off",
  "updated_at": "2025-09-29T18:41:53.609Z",
  "valuation_usd": 10000,
  "work_class": null,
  "zip": "10118"
}
```

### Search permits

- Capability: `building-permits/search_permits`
- Description: Search New York City building permits from the Department of Buildings on NYC Open Data, newest first: DOB NOW: Build – Approved Permits (rbx6-tga4, default, permits since 2016) or the legacy BIS DOB Permit Issuance (ipu4-2q9a, since 1989) with source bis. Filter by address words, ZIP, borough, BIN, BBL (parcel_id), contractor name or licence number, permit type, status, issue date window, and for DOB NOW by the date a daily load added or changed the row (updated_since) and minimum estimated job cost; BIS adds the filing date window. Each record has the shared permit fields: permit number, work type, filing reason, status, issue and expiry dates, address, borough, ZIP, coordinates, BBL, BIN, estimated job cost, job description, the permittee (licensed contractor) with licence number, updated_at, source_url and licence. An empty page is a valid result.
- Instructions: Permits at an NYC address, building (bin) or lot (parcel_id); permits pulled by a contractor; new permits in a ZIP or borough; or polling: pass updated_since (the newest updated_at you saw) with sort updated_desc for DOB NOW permits added or changed since then. Use source bis for pre-2016 BIS permits and filing dates. Resolve an address to bin and bbl with resolve_address first when the street spelling is uncertain.
- Cost: 5 credits per call
- Capability file: [Search permits](https://alexandria.firecrawl.dev/agents/providers/data-cityofnewyork-us/building-permits/search_permits)

Accepted options:
- `address` (string): House number and street words in order, case-insensitive, matched against DOB's text (423 Dean Street, 50 E 76th St). Ordinals match DOB's bare numbers (76th finds 76 STREET) and a leading house number is matched exactly, but spelled-out streets differ (BIS writes FIFTH AVENUE where DOB NOW writes 5 AVENUE). Leave out the borough, city and ZIP (use borough and zip). For an exact building, pass bin from resolve_address. Example: `<address>`
- `applied_since` (string): source bis only: permits filed on or after this day, YYYY-MM-DD (DOB NOW publishes no application date). Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<applied_since>`
- `applied_until` (string): source bis only: permits filed on or before this day, YYYY-MM-DD. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<applied_until>`
- `bin` (string): Building Identification Number, exact (resolve_address returns it). Pattern: ^[1-5][0-9]{6}$. Example: `<bin>`
- `borough` (string): Manhattan, Bronx, Brooklyn, Queens or Staten Island, case-insensitive. Example: `<borough>`
- `contractor` (string): Case-insensitive substring of the permittee's business name or of their first and last name (giron contracting, daniel kaykov). Example: `<contractor>`
- `contractor_license` (string): DOB licence number of the permittee, exact, with or without leading zeros or a type prefix (603349, 0603349, GC-603349); from a record's contractors or from contractor_activity. Example: `<contractor_license>`
- `cursor` (string): next_cursor from the previous page; repeat the same filters with it. Pattern: ^[0-9]+$. Example: `<cursor>`
- `issued_since` (string): Only permits issued on or after this day, YYYY-MM-DD. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<issued_since>`
- `issued_until` (string): Only permits issued on or before this day, YYYY-MM-DD. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$. Example: `<issued_until>`
- `limit` (number): Rows per page. Example: `25`
- `min_valuation` (number): source dob_now only: estimated job cost of at least this many USD. Example: `10`
- `parcel_id` (string): Borough-Block-Lot, exact: 10 digits (1008350041) or borough-block-lot (1-835-41). resolve_address returns it as bbl. Example: `<parcel_id>`
- `permit_type` (string): Case-insensitive substring over the permit type and permit class. DOB NOW: work type and filing reason (plumbing, sidewalk shed, demolition, solar, renewal). BIS: decoded permit type, subtype and job type (plumbing, new building, sidewalk shed, alteration type 1), the codes themselves (EW, A2), or filing status (renewal). Example: `<permit_type>`
- `sort` (string): issued_desc (default): newest issue date first. applied_desc (bis): newest filing first. updated_desc (dob_now): most recently added or changed first. valuation_desc (dob_now): largest estimated job cost first. Example: `issued_desc`
- `source` (string): dob_now (default): DOB NOW: Build – Approved Permits (rbx6-tga4), every permit issued through DOB NOW since 2016 except electrical, elevator and limited alteration, about 1 million rows. bis: DOB Permit Issuance (ipu4-2q9a), legacy BIS permits since 1989, about 4 million rows, still updated for permits that stay in BIS. Example: `dob_now`
- `status` (string): Case-insensitive substring of the permit status: issued, signed-off (DOB NOW); issued, re-issued, in process, revoked (BIS). Example: `<status>`
- `updated_since` (string): source dob_now only: rows a daily load added or changed at or after this time (Socrata :updated_at), YYYY-MM-DD (midnight UTC) or RFC 3339. Use it with sort updated_desc to poll for new and changed permits; each record's updated_at is the watermark for the next poll. Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}([Tt ][0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2}))?$. Example: `<updated_since>`
- `zip` (string): 5-digit ZIP code of the building. Pattern: ^[0-9]{5}$. Example: `<zip>`

Response schema example:
```json
{
  "count": 5,
  "dataset": {
    "id": "rbx6-tga4",
    "name": "DOB NOW: Build – Approved Permits",
    "portal": "data.cityofnewyork.us",
    "updated_at": "2026-10-27T18:42:04Z",
    "url": "https://data.cityofnewyork.us/d/rbx6-tga4"
  },
  "jurisdiction": {
    "county": null,
    "name": "New York City",
    "state": "NY"
  },
  "license": {
    "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
    "name": "NYC Open Data Terms of Use",
    "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
  },
  "next_cursor": "5",
  "observed_at_ms": 1793146431154,
  "records": [
    {
      "address": "350 FIFTH AVENUE",
      "applied_date": null,
      "bin": "1015862",
      "city": "Manhattan",
      "completed_date": null,
      "contractors": [
        {
          "company": "CROSS MANAGEMENT CORP",
          "license_number": "027399",
          "name": "BRYAN SUCHANYC",
          "phone": null,
          "role": "Permittee (General Contractor)"
        }
      ],
      "description": "MECHANICAL MODIFICATIONS TO THE 78TH AND 79TH FLOORS AS PLANS FILED HEREWITH. NO CHANGE IN USE, EGRESS, OR OCCUPANCY.",
      "expires_date": "2025-12-12",
      "housing_units": null,
      "issued_date": "2024-12-12",
      "job_number": "M01129367-I1",
      "latitude": 40.747878,
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "longitude": -73.984979,
      "parcel_id": "1008350041",
      "permit_class": "Initial Permit",
      "permit_number": "M01129367-I1-MS",
      "permit_type": "Mechanical Systems",
      "sequence": 1,
      "source": "dob_now",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01129367-I1-MS&sequence_number=1&work_type=Mechanical+Systems",
      "square_feet": null,
      "state": "NY",
      "status": "Permit Issued",
      "updated_at": "2025-09-29T18:41:53.609Z",
      "valuation_usd": 750000,
      "work_class": null,
      "zip": "10118"
    },
    {
      "address": "350 FIFTH AVENUE",
      "applied_date": null,
      "bin": "1015862",
      "city": "Manhattan",
      "completed_date": null,
      "contractors": [
        {
          "company": "CROSS MANAGEMENT CORP",
          "license_number": "027399",
          "name": "BRYAN SUCHANYC",
          "phone": null,
          "role": "Permittee (General Contractor)"
        }
      ],
      "description": "GENERAL COSTRUCTION ON THE 78TH AND 79TH FLOORS AS PLANS FILED HEREWITH. NO CHANGE IN USE, EGRESS, OR OCCUPANCY.",
      "expires_date": "2025-12-12",
      "housing_units": null,
      "issued_date": "2024-12-12",
      "job_number": "M01129344-I1",
      "latitude": 40.747878,
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "longitude": -73.984979,
      "parcel_id": "1008350041",
      "permit_class": "Initial Permit",
      "permit_number": "M01129344-I1-GC",
      "permit_type": "General Construction",
      "sequence": 1,
      "source": "dob_now",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01129344-I1-GC&sequence_number=1&work_type=General+Construction",
      "square_feet": null,
      "state": "NY",
      "status": "Permit Issued",
      "updated_at": "2025-09-29T18:41:53.609Z",
      "valuation_usd": 1700000,
      "work_class": null,
      "zip": "10118"
    },
    {
      "address": "350 FIFTH AVENUE",
      "applied_date": null,
      "bin": "1015862",
      "city": "Manhattan",
      "completed_date": null,
      "contractors": [
        {
          "company": "MAC FELDER INC",
          "license_number": "002308",
          "name": "SETH A BRESLAW",
          "phone": null,
          "role": "Permittee (P)"
        }
      ],
      "description": "PLUMBING WORK ON THE 32ND FLOOR AS PLANS FILED HEREWITH. NO CHANGE IN USE, EGRESS, OR OCCUPANCY.",
      "expires_date": "2025-12-12",
      "housing_units": null,
      "issued_date": "2024-12-12",
      "job_number": "M01113444-I1",
      "latitude": 40.747878,
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "longitude": -73.984979,
      "parcel_id": "1008350041",
      "permit_class": "Initial Permit",
      "permit_number": "M01113444-I1-PL",
      "permit_type": "Plumbing",
      "sequence": 1,
      "source": "dob_now",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01113444-I1-PL&sequence_number=1&work_type=Plumbing",
      "square_feet": null,
      "state": "NY",
      "status": "Signed-off",
      "updated_at": "2026-05-07T18:43:09.807Z",
      "valuation_usd": 148500,
      "work_class": null,
      "zip": "10118"
    },
    {
      "address": "350 FIFTH AVENUE",
      "applied_date": null,
      "bin": "1015862",
      "city": "Manhattan",
      "completed_date": null,
      "contractors": [
        {
          "company": "CROSS MANAGEMENT CORP",
          "license_number": "027399",
          "name": "BRYAN SUCHANYC",
          "phone": null,
          "role": "Permittee (General Contractor)"
        }
      ],
      "description": "STRUCTURAL MODIFICATIONS ON THE 78TH AND 79TH FLOORS AS PLANS FILED HEREWITH. NO CHANGE IN USE, EGRESS, OR OCCUPANCY.",
      "expires_date": "2025-12-05",
      "housing_units": null,
      "issued_date": "2024-12-05",
      "job_number": "M01122353-I1",
      "latitude": 40.747878,
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "longitude": -73.984979,
      "parcel_id": "1008350041",
      "permit_class": "Initial Permit",
      "permit_number": "M01122353-I1-ST",
      "permit_type": "Structural",
      "sequence": 1,
      "source": "dob_now",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01122353-I1-ST&sequence_number=1&work_type=Structural",
      "square_feet": null,
      "state": "NY",
      "status": "Permit Issued",
      "updated_at": "2025-09-29T18:41:53.609Z",
      "valuation_usd": 100000,
      "work_class": null,
      "zip": "10118"
    },
    {
      "address": "350 FIFTH AVENUE",
      "applied_date": null,
      "bin": "1015862",
      "city": "Manhattan",
      "completed_date": null,
      "contractors": [
        {
          "company": "REIDY CONTRACTING GROUP",
          "license_number": "604484",
          "name": "DANIEL MONTEIRO",
          "phone": null,
          "role": "Permittee (General Contractor)"
        }
      ],
      "description": "GENERAL CONSTRUCTION TAKING PLACE ON 57TH & 58TH FLOORS AS PER PLANS FILED HEREWITH. NO CHANGE IN USE, EGRESS, OR OCCUPANCY.",
      "expires_date": "2025-04-07",
      "housing_units": null,
      "issued_date": "2024-11-26",
      "job_number": "M01138981-I1",
      "latitude": 40.747878,
      "license": {
        "attribution": "NYC Department of Buildings (DOB), via NYC Open Data",
        "name": "NYC Open Data Terms of Use",
        "url": "https://opendata.cityofnewyork.us/overview/#termsofuse"
      },
      "longitude": -73.984979,
      "parcel_id": "1008350041",
      "permit_class": "Initial Permit",
      "permit_number": "M01138981-I1-GC",
      "permit_type": "General Construction",
      "sequence": 1,
      "source": "dob_now",
      "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?work_permit=M01138981-I1-GC&sequence_number=1&work_type=General+Construction",
      "square_feet": null,
      "state": "NY",
      "status": "Signed-off",
      "updated_at": "2025-09-29T18:41:53.609Z",
      "valuation_usd": 49000,
      "work_class": null,
      "zip": "10118"
    }
  ],
  "source_url": "https://data.cityofnewyork.us/resource/rbx6-tga4.json?%24select=*%2C+%3Aupdated_at&%24where=issued_date+IS+NOT+NULL+AND+work_permit+IS+NOT+NULL+AND+work_permit+%21%3D+%27Permit+is+not+yet+issued%27+AND+bin+%3D+%271015862%27+AND+issued_date+%3E%3D+%272024-01-01T00%3A00%3A00%27+AND+issued_date+%3C%3D+%272024-12-31T23%3A59%3A59.999%27&%24order=issued_date+DESC+NULL+LAST%2C+%3Aid&%24limit=5"
}
```
