{
  "openapi": "3.0.1",
  "info": {
    "title": "NYC Landlord Registry Lead List — HPD Portfolio Contacts",
    "description": "Bulk NYC landlord & managing-agent contact lead lists from HPD building registrations. Killer filter: portfolio size — target owners of 5-50 Bronx buildings. Rolls up buildings per contact with business address, boroughs, ZIPs & samples. For prop-mgmt, insurance, lender & proptech sales.",
    "version": "1.1",
    "x-build-id": "cQhqIaE9uwcLhTCLc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/malonestar~nyc-landlord-registry-lead-list/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-malonestar-nyc-landlord-registry-lead-list",
        "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/malonestar~nyc-landlord-registry-lead-list/runs": {
      "post": {
        "operationId": "runs-sync-malonestar-nyc-landlord-registry-lead-list",
        "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/malonestar~nyc-landlord-registry-lead-list/run-sync": {
      "post": {
        "operationId": "run-sync-malonestar-nyc-landlord-registry-lead-list",
        "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": {
          "borough": {
            "title": "Borough",
            "enum": [
              "",
              "MANHATTAN",
              "BRONX",
              "BROOKLYN",
              "QUEENS",
              "STATEN ISLAND"
            ],
            "type": "string",
            "description": "Limit leads to landlords/agents of buildings in one NYC borough. Leave empty for all five boroughs (city-wide runs fetch far more data and take longer).",
            "default": "BRONX"
          },
          "zip": {
            "title": "Building ZIP code",
            "type": "string",
            "description": "Optional 5-digit ZIP code of the BUILDINGS (not the contact's business address). Narrows the portfolio scan to buildings in this ZIP."
          },
          "contactTypes": {
            "title": "Contact types",
            "type": "array",
            "description": "Which HPD registration contact roles to return. Common values: HeadOfficer, Agent, CorporateOwner, IndividualOwner, Officer, SiteManager. Leave empty for all types. HeadOfficer + Agent are the highest-value decision-maker leads.",
            "default": [
              "HeadOfficer",
              "Agent"
            ],
            "items": {
              "type": "string"
            }
          },
          "minPortfolioBuildings": {
            "title": "Min portfolio size (buildings)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Only return contacts linked to at least this many distinct buildings. The killer filter: set 5 to skip mom-and-pop owners, e.g. 'owners of 5-50 Bronx buildings'.",
            "default": 1
          },
          "maxPortfolioBuildings": {
            "title": "Max portfolio size (buildings)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Only return contacts linked to at most this many distinct buildings. Use with the minimum to target a portfolio band (e.g. 5-50). Leave empty for no upper bound."
          },
          "entityOnly": {
            "title": "Entities only",
            "type": "boolean",
            "description": "When true, only return corporate/LLC contacts (records with a corporation name) and drop individual-person leads.",
            "default": false
          },
          "includeExpired": {
            "title": "Include expired registrations",
            "type": "boolean",
            "description": "By default only CURRENT registrations are scanned (registration end date on/after the dataset's own latest filing date). Set true to also include lapsed/expired registrations.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of lead records (one per unique landlord/agent contact) to push to the dataset. Leads are sorted by portfolio size, largest first, before the cap is applied.",
            "default": 500
          },
          "runBudgetSeconds": {
            "title": "Run time budget (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Optional wall-clock budget for the whole run. If data.cityofnewyork.us is slow and the budget runs out before every HPD contact batch is fetched, the run returns an honest PARTIAL instead of timing out: every row carries run_deadline_hit=true and portfolio_counts_complete=false, and buildings_count is then a lower bound. Leave empty for no budget (the run takes as long as the source needs)."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}