{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Records API - Owner, Sales, AVM, Tax Assessment",
    "description": "Look up US property records by address, parcel number or property id and read the full record: owner and mailing address, beds, baths, size, year built, lot, assessed and market value, tax, full sale history, AVM estimate with confidence, rental value and home equity. Bring your own key.",
    "version": "0.1",
    "x-build-id": "k9iBZXjeefHVBnUy6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~property-records-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-property-records-data-api",
        "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/nabeelbaghoor~property-records-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-property-records-data-api",
        "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/nabeelbaghoor~property-records-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-property-records-data-api",
        "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": {
          "mode": {
            "title": "What this run does",
            "enum": [
              "basicProfile",
              "expandedProfile",
              "detailOwner",
              "detailMortgage",
              "detailMortgageOwner",
              "avm",
              "rentalAvm",
              "homeEquity",
              "saleDetail",
              "salesHistory",
              "assessment",
              "assessmentHistory",
              "buildingPermits",
              "allEvents",
              "search",
              "searchDetail",
              "radius",
              "saleSearch",
              "assessmentSearch",
              "avmSearch",
              "preforeclosure",
              "salesTrend",
              "schools",
              "community"
            ],
            "type": "string",
            "description": "A run answers one question. The profile, owner, mortgage, valuation, equity and event modes read properties you already have an identifier for. The search modes return everything in a postcode, geography or radius that matches the filters. The history modes return one row per recorded sale, assessment or permit. Schools and neighbourhood describe the place rather than the property. Fields belonging to another mode are ignored rather than causing an error.",
            "default": "basicProfile"
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own account's API key, from your provider account. Bring your own key: nothing is shared between runs and the key is never written to the dataset or the log."
          },
          "properties": {
            "title": "Properties",
            "type": "array",
            "description": "The properties to read, one per line, in any of three forms. A full address with a comma before the city, such as 4529 Winona Court, Denver, CO 80212. The provider's own numeric property id. An assessor parcel number and its five digit county code joined with a bar, such as 2353-23-001|08031. An all digit value is read as a property id, so pair a numeric parcel number with its county code rather than sending it alone.",
            "items": {
              "type": "string"
            }
          },
          "postalCode": {
            "title": "Postcode",
            "type": "string",
            "description": "Search every property in this postcode. Used by the search, sale search, assessment search, AVM search and pre-foreclosure modes. For example 80212."
          },
          "geoIdV4": {
            "title": "Geography id",
            "type": "string",
            "description": "Search inside one of the provider's geographies: a census block or tract, a neighbourhood, a school district, a flood zone or a place. This is also how the neighbourhood and sales trend modes name the area they describe. For example 9df3a2df15d1ba7de0f4f1c4dfa42ba5."
          },
          "coordinate": {
            "title": "Coordinate",
            "type": "string",
            "description": "A latitude and longitude pair written latitude first, for example 39.7710, -105.0436. Used by radius and schools modes, and usable by the search modes with the radius below."
          },
          "radiusMiles": {
            "title": "Radius in miles",
            "minimum": 0,
            "maximum": 50,
            "type": "number",
            "description": "How far around the coordinate to search, in miles, up to 50. Defaults to one mile when a coordinate is set without it."
          },
          "propertyType": {
            "title": "Property type",
            "type": "string",
            "description": "Keep only properties of this type, written the way the provider classifies them, for example SFR for a single family residence, CONDOMINIUM, APARTMENT or COMMERCIAL (GENERAL)."
          },
          "minBeds": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only properties with at least this many bedrooms."
          },
          "maxBeds": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only properties with at most this many bedrooms."
          },
          "minBaths": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep only properties with at least this many bathrooms in total, counting half baths as a half."
          },
          "maxBaths": {
            "title": "Maximum bathrooms",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep only properties with at most this many bathrooms in total."
          },
          "minYearBuilt": {
            "title": "Built no earlier than",
            "minimum": 1600,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only properties built in this year or later."
          },
          "maxYearBuilt": {
            "title": "Built no later than",
            "minimum": 1600,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only properties built in this year or earlier."
          },
          "minLotAcres": {
            "title": "Minimum lot acres",
            "minimum": 0,
            "type": "number",
            "description": "Keep only properties on a lot of at least this many acres."
          },
          "maxLotAcres": {
            "title": "Maximum lot acres",
            "minimum": 0,
            "type": "number",
            "description": "Keep only properties on a lot of at most this many acres."
          },
          "minBuildingSize": {
            "title": "Minimum building square feet",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties with at least this much floor space, measured on the provider's comparable size basis."
          },
          "maxBuildingSize": {
            "title": "Maximum building square feet",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties with at most this much floor space."
          },
          "minSaleAmount": {
            "title": "Minimum sale amount",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties whose recorded sale price is at least this much, in dollars."
          },
          "maxSaleAmount": {
            "title": "Maximum sale amount",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties whose recorded sale price is at most this much, in dollars."
          },
          "minAvmValue": {
            "title": "Minimum estimated value",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties the automated valuation model puts at or above this figure, in dollars."
          },
          "maxAvmValue": {
            "title": "Maximum estimated value",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties the automated valuation model puts at or below this figure, in dollars."
          },
          "minMarketValue": {
            "title": "Minimum assessor market value",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties whose total market value on the assessment roll is at least this much. This is the assessor's figure rather than the model's."
          },
          "maxMarketValue": {
            "title": "Maximum assessor market value",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only properties whose total market value on the assessment roll is at most this much."
          },
          "saleDateFrom": {
            "title": "Sold on or after",
            "type": "string",
            "description": "Keep only sales recorded on or after this date, written as YYYY/MM/DD, which is the format the provider uses. For example 2024/01/01."
          },
          "saleDateTo": {
            "title": "Sold on or before",
            "type": "string",
            "description": "Keep only sales recorded on or before this date, written as YYYY/MM/DD. For example 2024/12/31."
          },
          "orderBy": {
            "title": "Sort results by",
            "type": "string",
            "description": "How to order a search, using the provider's own sort fields. Add a direction after the field, for example saleamt+desc, avmvalue+desc, beds+asc, calendardate+desc or distance+asc when searching a radius."
          },
          "pageSize": {
            "title": "Records per page",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many records to ask for per request. A larger page means fewer round trips; the provider caps a single search at 10000 results however it is paged.",
            "default": 100
          },
          "maxResults": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run may store, and so the most it can charge for. A postcode search can match tens of thousands of properties, so this is the cap that keeps a run predictable.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "How fast this run calls the provider. Lower it if your plan is rate limited more tightly than the default.",
            "default": 60
          },
          "baseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Overrides the API host. Only needed if the provider has given your account a different endpoint."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}