{
  "openapi": "3.0.1",
  "info": {
    "title": "US Property Owner & Parcel Records Scraper",
    "description": "Look up who owns a US property on the public assessment roll. Search by address, owner name, city, postal code or parcel id across thirteen jurisdictions and about 7.6 million parcels: New York City, all of Connecticut, Vermont and Montana, Philadelphia, Nashville and more.",
    "version": "0.1",
    "x-build-id": "Y9MSN10Jh5tkNtKoI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~us-property-ownership-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-us-property-ownership-scraper",
        "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/dami_studio~us-property-ownership-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-us-property-ownership-scraper",
        "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/dami_studio~us-property-ownership-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-us-property-ownership-scraper",
        "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": {
          "jurisdictions": {
            "title": "Where to search",
            "minItems": 0,
            "maxItems": 13,
            "type": "array",
            "description": "The places this Actor covers. Pick one or more. Every extra place you tick is another lookup, and the row budget below is shared between them - so for a single address, tick only the place it is in.",
            "items": {
              "type": "string",
              "enum": [
                "nyc",
                "connecticut",
                "cook-county-il",
                "philadelphia",
                "collin-county-tx",
                "williamson-county-tx",
                "norfolk-va",
                "cambridge-ma",
                "montana",
                "wake-county-nc",
                "vermont",
                "nashville-tn",
                "washington-dc"
              ],
              "enumTitles": [
                "New York City, NY - all five boroughs (858,284 lots)",
                "Connecticut - every town in the state (1,347,910 parcels)",
                "Cook County, IL - Chicago and suburbs (1,863,562 parcels)",
                "Philadelphia, PA (583,779 properties)",
                "Collin County, TX - Plano, Frisco, McKinney (479,364 parcels)",
                "Williamson County, TX - Round Rock, Georgetown (291,076 parcels)",
                "Norfolk, VA (74,329 parcels)",
                "Cambridge, MA (30,156 parcels)",
                "Montana - every county in the state (921,301 parcels)",
                "Wake County, NC - Raleigh, Cary, Apex (438,403 parcels)",
                "Vermont - every town in the state (344,019 parcels)",
                "Nashville and Davidson County, TN (287,112 parcels)",
                "Washington, DC - the whole District (137,400 lots)"
              ]
            }
          },
          "address": {
            "title": "Street address",
            "type": "string",
            "description": "A street address, written the way you would write it: \"2125 Bruckner Blvd\". The house number has to start the address, and after that the words are matched however the local roll happens to spell them - Blvd finds BOULEVARD, Ave finds AV. Leave off apartment and unit numbers; most rolls keep those in a separate column. A street name on its own, with no number, returns the whole street."
          },
          "ownerName": {
            "title": "Owner name",
            "type": "string",
            "description": "Part of an owner name. Word order does not matter - \"John Smith\" finds a roll that writes \"SMITH JOHN\". Every word you type has to appear, so fewer words finds more. Useful for tracking one landlord or LLC across a whole city."
          },
          "city": {
            "title": "City or town",
            "type": "string",
            "description": "A city or town name, for the places that cover more than one. In New York City this is the borough - Brooklyn, Queens, Manhattan, Bronx, Staten Island. A place that cannot honour it is skipped with a note rather than quietly handing you a different city's parcels."
          },
          "zipCode": {
            "title": "Postal code",
            "type": "string",
            "description": "A five-digit postal code of the PROPERTY, not of the owner's mailing address. Connecticut, Vermont and Cambridge publish no property postal code at all - only the owner's - so those three are skipped with a note when you use this rather than answering with the wrong one."
          },
          "parcelIds": {
            "title": "Parcel ids",
            "minItems": 0,
            "maxItems": 200,
            "type": "array",
            "description": "Look up parcels directly by their identifier. Every place uses its own and calls it its own thing: a New York BBL, a Cook County PIN, a Philadelphia OPA account number, a Vermont SPAN, a Montana geocode, a Washington DC square-suffix-lot, a Texas property id. Up to 200 per run. Type a DC SSL with single spaces - \"1077 0130\" finds the record however the roll pads it. Ids that do not look like they belong to a place you ticked are skipped there with a note.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many parcels to return in total, across every place you ticked. The budget is shared between them. Keep it low while you are trying things out - you pay per row. Hard ceiling 5,000."
          },
          "proxyUrls": {
            "title": "Your own proxy servers (optional)",
            "minItems": 0,
            "maxItems": 50,
            "type": "array",
            "description": "Leave this empty. The run brings its own egress and it costs you nothing per gigabyte. Fill it in only if you specifically want the traffic to leave through servers you already pay for, as http://user:pass@host:port.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}