{
  "openapi": "3.0.1",
  "info": {
    "title": "AVM API - Automated Valuation Model for Property Values",
    "description": "Value US residential property with a lending-grade automated valuation model. Get the estimate with its high and low range, forecast standard deviation and confidence score, the comparable sales and listings behind it, and a what-if mode that re-values a home against characteristics you supply.",
    "version": "0.1",
    "x-build-id": "YuY7ziXZ663NGUqA8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~automated-valuation-model-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-automated-valuation-model-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~automated-valuation-model-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-automated-valuation-model-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~automated-valuation-model-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-automated-valuation-model-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 to run",
            "enum": [
              "full",
              "valueOnly",
              "interactive",
              "retrieve"
            ],
            "type": "string",
            "description": "Full runs the lending-grade model and can return the comparables behind it. Value only returns the number alone, which is the cheap way to price a long list. Interactive re-values a property against characteristics you supply. Retrieve fetches a valuation you already paid for by its id.",
            "default": "full"
          },
          "addresses": {
            "title": "Property addresses",
            "type": "array",
            "description": "One address per line. Each needs a street address plus either a five digit ZIP or both a city and a two letter state. The ZIP gives the best address match, so include it where you have it.",
            "items": {
              "type": "string"
            }
          },
          "valuationIds": {
            "title": "Valuation ids",
            "type": "array",
            "description": "Retrieve mode. One valuation id per line, each taken from the avmId column of an earlier run. Retrieving a valuation you already paid for does not run the model again.",
            "items": {
              "type": "string"
            }
          },
          "includeComparables": {
            "title": "Include comparable sales and listings",
            "type": "boolean",
            "description": "Full valuation mode. Returns the comparable properties the model reasoned from, each as its own row with its address, distance from the subject, size, beds, baths, year built, list price and sold price. Without this you get the value and the property characteristics only.",
            "default": true
          },
          "tryMultipleModels": {
            "title": "Cascade through several models",
            "type": "boolean",
            "description": "Full valuation mode. Tries several lending-grade models in turn until one returns a value, which raises the hit rate on properties a single model cannot price. The model that answered is recorded on every row. Turning this on disables the confidence ceiling and the data source setting, which apply to a single model only.",
            "default": false
          },
          "modelOrder": {
            "title": "Model order",
            "type": "array",
            "description": "Full valuation mode with the cascade on. Which models to try, in order. Leave empty for the provider's default order. Only models included in your agreement will answer.",
            "items": {
              "type": "string",
              "enum": [
                "CLEAR_CAPITAL_CLEARAVM",
                "VEROS_VEROVALUE",
                "COLLATERAL_ANALYTICS_CAVALUE",
                "BLACK_KNIGHT_SITEXVALUE",
                "BLACK_KNIGHT_VALUESURE"
              ]
            }
          },
          "maxForecastStdDev": {
            "title": "Maximum forecast standard deviation",
            "minimum": 0.01,
            "maximum": 0.99,
            "type": "number",
            "description": "Full valuation mode without the cascade. The widest error the model may report, as a fraction between 0 and 1 with at most two decimal places. 0.3 means the model must expect to land within about 30 percent. Note this is a fraction, not a percentage. Leave empty for the provider's default of 0.3."
          },
          "dataSourceType": {
            "title": "Data source",
            "enum": [
              "PUBLIC_RECORDS",
              "PUBLIC_RECORDS_AND_MLS"
            ],
            "type": "string",
            "description": "Full valuation mode without the cascade. Whether the model may use MLS listing data alongside public records, or public records only. Leave empty for the provider's default, which includes MLS."
          },
          "asOfDate": {
            "title": "Value as of date",
            "type": "string",
            "description": "Returns a backdated valuation as of this date, written as YYYY-MM-DD. Useful for auditing a past decision. Availability depends on which model answers."
          },
          "livingAreaSqFt": {
            "title": "Living area (sq ft)",
            "minimum": 1,
            "type": "integer",
            "description": "Interactive mode. The gross living area to value the property at, instead of the one on record."
          },
          "lotSizeSqFt": {
            "title": "Lot size (sq ft)",
            "minimum": 1,
            "type": "integer",
            "description": "Interactive mode. The lot size to value the property at, instead of the one on record."
          },
          "bedrooms": {
            "title": "Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Interactive mode. The bedroom count to value the property at, instead of the one on record."
          },
          "fullBathrooms": {
            "title": "Full bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Interactive mode. The full bathroom count to value the property at."
          },
          "halfBathrooms": {
            "title": "Half bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Interactive mode. The half bathroom count to value the property at."
          },
          "yearBuilt": {
            "title": "Year built",
            "minimum": 1600,
            "type": "integer",
            "description": "Interactive mode. The year built to value the property at, instead of the one on record."
          },
          "condition": {
            "title": "Condition rating",
            "enum": [
              "C1",
              "C2",
              "C3",
              "C4",
              "C5",
              "C6"
            ],
            "type": "string",
            "description": "Interactive mode. The condition to value the property at, on the standard appraisal scale from C1 newly built to C6 substantial damage."
          },
          "savePdf": {
            "title": "Save a PDF report",
            "type": "boolean",
            "description": "Full valuation mode. Asks the provider to store the valuation and return a link to a PDF report, which appears in the pdfLink column. The provider may charge extra for stored results.",
            "default": false
          },
          "trackingIds": {
            "title": "Your reference ids",
            "type": "array",
            "description": "Optional. Up to three of your own reference ids, echoed back on every valuation so you can tie results to a loan file or an order. One per line.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "The most rows this run will save and charge for. Comparables count towards this, and a full valuation can return many, so allow room when they are turned on.",
            "default": 500
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "How fast to call the provider. Lower this if your agreement rate limits the run.",
            "default": 60
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own API key for the valuation provider. This actor is bring your own key: it never uses anyone else's credentials, and the key is stored as a secret and sent in the provider's x-api-key header."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}