{
  "openapi": "3.0.1",
  "info": {
    "title": "NYC DOB Permits: Approved Permits with Contractor & Owner",
    "description": "Daily feed of approved NYC Department of Buildings construction permits from DOB NOW: contractor (permittee) business, licence type and number, owner name and business, work type, address, BIN, block and lot, and approval, issue and expiry dates. Filter by date, borough, work type, ZIP, BIN.",
    "version": "0.1",
    "x-build-id": "2OVEMNm4ayGQsoVyk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jserle~nyc-dob-permits-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jserle-nyc-dob-permits-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/jserle~nyc-dob-permits-feed/runs": {
      "post": {
        "operationId": "runs-sync-jserle-nyc-dob-permits-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/jserle~nyc-dob-permits-feed/run-sync": {
      "post": {
        "operationId": "run-sync-jserle-nyc-dob-permits-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "issuedFrom": {
            "title": "Issued on or after",
            "type": "string",
            "description": "ISO date, for example 2026-08-01. Permits issued on or after this date. If both dates are blank the window is the last 7 days."
          },
          "issuedTo": {
            "title": "Issued on or before",
            "type": "string",
            "description": "ISO date, for example 2026-08-15. Permits issued on or before this date."
          },
          "borough": {
            "title": "Borough",
            "enum": [
              "any",
              "Manhattan",
              "Brooklyn",
              "Queens",
              "Bronx",
              "Staten Island"
            ],
            "type": "string",
            "description": "One of the five boroughs, or any.",
            "default": "any"
          },
          "workType": {
            "title": "Work type",
            "enum": [
              "any",
              "General Construction",
              "Plumbing",
              "Sidewalk Shed",
              "Mechanical Systems",
              "Construction Fence",
              "Structural",
              "Sprinklers",
              "Supported Scaffold",
              "Sign",
              "Foundation",
              "Solar",
              "Protection and Mechanical Methods",
              "Suspended Scaffold",
              "Earth Work",
              "Standpipe",
              "Boiler Equipment",
              "Curb Cut",
              "Antenna",
              "Support of Excavation",
              "Full Demolition",
              "Green Roof"
            ],
            "type": "string",
            "description": "The DOB NOW work type on the permit. One of the 21 types the City publishes, or any.",
            "default": "any"
          },
          "filingReason": {
            "title": "Filing reason",
            "enum": [
              "any",
              "Initial Permit",
              "Renewal Permit Without Changes",
              "Renewal Permit with Changes",
              "No Work Permit"
            ],
            "type": "string",
            "description": "Initial permits only, renewals only, or any. Renewals re-issue an existing permit and carry a higher sequence number.",
            "default": "any"
          },
          "permitStatus": {
            "title": "Permit status",
            "enum": [
              "any",
              "Permit Issued",
              "Signed-off"
            ],
            "type": "string",
            "description": "Permit Issued (work may be in progress) or Signed-off (work complete), or any.",
            "default": "any"
          },
          "zip": {
            "title": "ZIP code",
            "pattern": "^[0-9]{5}$",
            "type": "string",
            "description": "Five-digit ZIP of the job site, for example 11201."
          },
          "bin": {
            "title": "BIN (Building Identification Number)",
            "pattern": "^[0-9]{7}$",
            "type": "string",
            "description": "Seven-digit NYC BIN of the job site, for example 1001389. Returns every permit on that building."
          },
          "permitteeBusinessContains": {
            "title": "Contractor (permittee) business contains",
            "type": "string",
            "description": "Case-insensitive substring matched against the permittee's business name, for example: plumbing"
          },
          "ownerBusinessContains": {
            "title": "Owner business contains",
            "type": "string",
            "description": "Case-insensitive substring matched against the owner's business name, for example: housing authority"
          },
          "maxResults": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "How many permit records to deliver, newest issue date first. You are charged per delivered record, so this is also your cost cap.",
            "default": 100
          },
          "includeRaw": {
            "title": "Include the raw source row",
            "type": "boolean",
            "description": "Attach a `raw` object with the Socrata row this record was built from, under the City's column names. Useful for auditing the normalization; roughly doubles item size.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}