{
  "openapi": "3.0.1",
  "info": {
    "title": "Home Value Estimate API - AVM, Rent, Forecast, Market",
    "description": "Get an automated home value estimate with its confidence range, a rental estimate, property characteristics, sales and tax history, flood and hazard risk, and postcode or metro price forecasts. Batches up to 100 addresses in one request. Bring your own key.",
    "version": "0.1",
    "x-build-id": "xAAoteOdCevMSjCda"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~home-value-estimate-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-home-value-estimate-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~home-value-estimate-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-home-value-estimate-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~home-value-estimate-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-home-value-estimate-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": [
              "components",
              "v3Property",
              "marketPulse"
            ],
            "type": "string",
            "description": "A run answers one question. Components reads any combination of the provider's analytics components for a list of properties or geographies in batches of up to a hundred. Version three reads one of the newer single purpose property routes. Market pulse reads listing supply and demand for a place. Fields belonging to another mode are ignored rather than causing an error.",
            "default": "components"
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own account's API key, the user name half of the credential pair, from your account settings. Bring your own key: nothing is shared between runs and the credentials are never written to the dataset or the log."
          },
          "apiSecret": {
            "title": "API secret",
            "type": "string",
            "description": "Your own account's API secret, the password half of the credential pair. Both halves are required: the provider checks them together and returns no explanation when either is wrong."
          },
          "level": {
            "title": "Level",
            "enum": [
              "property",
              "block",
              "blockgroup",
              "zip",
              "metrodiv",
              "msa",
              "state"
            ],
            "type": "string",
            "description": "What each line of the items list names. Property takes an address, a census block takes a fifteen digit block id, a block group takes twelve digits, a postcode takes five, a metropolitan division and a metropolitan statistical area each take a five digit id, and a state takes a two letter code. The level also decides which components are available, because a component name begins with its own level.",
            "default": "property"
          },
          "items": {
            "title": "Items",
            "type": "array",
            "description": "What to read, one per line. At property level write an address followed by a postcode, such as 10216 N Willow Ave, 64157, or an address followed by a city and a two letter state, or the provider's own readable slug. At every other level write the identifier that level takes. A line naming a street with no place is refused with an explanation rather than sent and quietly missed.",
            "items": {
              "type": "string"
            }
          },
          "components": {
            "title": "Components",
            "type": "array",
            "description": "Which analytics to read for every item, used by components mode. Each name begins with the level it belongs to, and a component from another level is refused before the first request rather than after it. The provider's rate limit counts components rather than requests, where one component is one endpoint for one item, so four components across a hundred addresses counts as four hundred even though it is one call.",
            "items": {
              "type": "string",
              "enum": [
                "block/crime",
                "block/hazard_earthquake",
                "block/hazard_hail",
                "block/hazard_hurricane",
                "block/hazard_tornado",
                "block/hazard_wind",
                "block/hcri",
                "block/rental_value_distribution",
                "block/superfund",
                "block/value_distribution",
                "block/value_ts_forecast",
                "block/value_ts_historical",
                "blockgroup/hcri",
                "blockgroup/rental_value_distribution",
                "blockgroup/value_distribution",
                "blockgroup/value_ts_forecast",
                "blockgroup/value_ts_historical",
                "metrodiv/affordability_ts_forecast",
                "metrodiv/affordability_ts_historical",
                "metrodiv/hpi_ts_forecast",
                "metrodiv/hpi_ts_historical",
                "msa/affordability_ts_forecast",
                "msa/affordability_ts_historical",
                "msa/details",
                "msa/hcri",
                "msa/hpi_ts_forecast",
                "msa/hpi_ts_historical",
                "msa/rpi_ts_forecast",
                "msa/rpi_ts_historical",
                "property/block_crime",
                "property/block_hazard_earthquake",
                "property/block_hazard_hail",
                "property/block_hazard_hurricane",
                "property/block_hazard_tornado",
                "property/block_hazard_wind",
                "property/block_hcri",
                "property/block_rental_value_distribution",
                "property/block_superfund",
                "property/block_value_distribution",
                "property/block_value_ts_forecast",
                "property/block_value_ts_historical",
                "property/blockgroup_hcri",
                "property/blockgroup_rental_value_distribution",
                "property/blockgroup_value_distribution",
                "property/blockgroup_value_ts_forecast",
                "property/blockgroup_value_ts_historical",
                "property/census",
                "property/details",
                "property/fema_disaster_area",
                "property/flood",
                "property/geo_features",
                "property/geocode",
                "property/land_value",
                "property/ltv_details",
                "property/ltv_origination",
                "property/metrodiv_affordability_ts_forecast",
                "property/metrodiv_affordability_ts_historical",
                "property/metrodiv_hpi_ts_forecast",
                "property/metrodiv_hpi_ts_historical",
                "property/mortgage_lien",
                "property/mortgage_lien_all",
                "property/msa_affordability_ts_forecast",
                "property/msa_affordability_ts_historical",
                "property/msa_details",
                "property/msa_hcri",
                "property/msa_hpi_ts_forecast",
                "property/msa_hpi_ts_historical",
                "property/msa_rpi_ts_forecast",
                "property/msa_rpi_ts_historical",
                "property/nod",
                "property/owner_occupied",
                "property/rental_value",
                "property/rental_value_forecast",
                "property/rental_value_within_block",
                "property/sales_history",
                "property/school",
                "property/state_affordability_ts_forecast",
                "property/state_affordability_ts_historical",
                "property/state_hcri",
                "property/state_hpi_ts_forecast",
                "property/state_hpi_ts_historical",
                "property/state_rpi_ts_forecast",
                "property/state_rpi_ts_historical",
                "property/tax_history",
                "property/value",
                "property/value_analysis",
                "property/value_by_six_conditions",
                "property/value_details_adjusted",
                "property/value_forecast",
                "property/value_hpi_adjusted",
                "property/value_within_block",
                "property/zip_affordability_ts_forecast",
                "property/zip_affordability_ts_historical",
                "property/zip_details",
                "property/zip_hcri",
                "property/zip_hpi_forecast",
                "property/zip_hpi_historical",
                "property/zip_hpi_ts_forecast",
                "property/zip_hpi_ts_historical",
                "property/zip_market_grade",
                "property/zip_rpi_forecast",
                "property/zip_rpi_historical",
                "property/zip_rpi_ts_forecast",
                "property/zip_rpi_ts_historical",
                "property/zip_volatility",
                "state/affordability_ts_forecast",
                "state/affordability_ts_historical",
                "state/hcri",
                "state/hpi_ts_forecast",
                "state/hpi_ts_historical",
                "state/rpi_ts_forecast",
                "state/rpi_ts_historical",
                "zip/affordability_ts_forecast",
                "zip/affordability_ts_historical",
                "zip/details",
                "zip/hcri",
                "zip/hpi_forecast",
                "zip/hpi_historical",
                "zip/hpi_ts_forecast",
                "zip/hpi_ts_historical",
                "zip/market_grade",
                "zip/rpi_forecast",
                "zip/rpi_historical",
                "zip/rpi_ts_forecast",
                "zip/rpi_ts_historical",
                "zip/volatility"
              ]
            },
            "default": [
              "property/value",
              "property/details"
            ]
          },
          "v3Target": {
            "title": "Version three route",
            "enum": [
              "estimate",
              "details_advanced",
              "historical_value",
              "hoa_est",
              "value_fsd_threshold"
            ],
            "type": "string",
            "description": "Which of the newer single purpose property routes to read, used by version three mode. Estimate is the fast rounded value, details advanced is the fullest characteristics record, historical value is the value over time, HOA estimate is the modelled association fee, and value FSD threshold reports whether the valuation meets a confidence bar.",
            "default": "estimate"
          },
          "marketPulseSeries": {
            "title": "Market pulse series",
            "enum": [
              "sale",
              "rental"
            ],
            "type": "string",
            "description": "Whether to read the for sale market or the rental market, used by market pulse mode. The rental series is published for metropolitan areas and states but not for postcodes.",
            "default": "sale"
          },
          "marketPulseShape": {
            "title": "Market pulse shape",
            "enum": [
              "latest",
              "timeseries"
            ],
            "type": "string",
            "description": "Whether to read the latest reading as one row per place, or a time series as one row per period.",
            "default": "latest"
          },
          "startDate": {
            "title": "Series start date",
            "type": "string",
            "description": "The earliest period a market pulse time series should cover, written as YYYY-MM-DD. Ignored by every other mode and by the latest shape. For example 2025-01-01."
          },
          "endDate": {
            "title": "Series end date",
            "type": "string",
            "description": "The latest period a market pulse time series should cover, written as YYYY-MM-DD. For example 2026-01-01."
          },
          "batchSize": {
            "title": "Items per request",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many items to send in one batched request, up to the provider's maximum of 100. Fewer, larger batches mean fewer round trips; the provider's rate limit counts components rather than requests, so batching does not change what a run costs against it.",
            "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 long market pulse time series produces one row per period per place, so this is the cap that keeps a run predictable.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 240,
            "type": "integer",
            "description": "How fast this run calls the provider. The self serve limit is 250 components a minute rather than 250 requests, so lower this when a run asks for many components per item.",
            "default": 30
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}