{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Price Drop Monitor | $0.50/1K | Price Changes",
    "description": "Track Zillow price drops and status changes with automatic complete-scan baselines for scheduled runs. Export property checks to CSV; unchanged checks are billed.",
    "version": "0.7",
    "x-build-id": "I8diQL6RZGi33Q75J"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/x_guru~zillow-price-drop-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-x_guru-zillow-price-drop-monitor",
        "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/x_guru~zillow-price-drop-monitor/runs": {
      "post": {
        "operationId": "runs-sync-x_guru-zillow-price-drop-monitor",
        "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/x_guru~zillow-price-drop-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-x_guru-zillow-price-drop-monitor",
        "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": {
          "locations": {
            "title": "📍 Cities or ZIP codes",
            "maxItems": 100,
            "type": "array",
            "description": "US city and state or five-digit ZIP, one per entry. Leave empty when using URLs only. If both are supplied, both are collected up to the shared result limit.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "sale",
              "rent",
              "sold"
            ],
            "type": "string",
            "description": "Keep this selection unchanged when continuing a collection.",
            "default": "sale"
          },
          "maxResults": {
            "title": "Maximum results this run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum NEW property-check rows saved in this run (1–100,000). Free: 100 rows per collection across continuation batches. Source availability, time and Max total charge can stop earlier. Includes unchanged checks. Narrow the search until the whole scan completes before using it as a baseline.",
            "default": 100
          },
          "autoBaseline": {
            "title": "🔄 Automatically update comparison baseline",
            "type": "boolean",
            "description": "Use the latest complete scan for your account and these filters. The first complete scan starts monitoring. Incomplete scans preserve the previous baseline.",
            "default": true
          },
          "startUrls": {
            "title": "Zillow search URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Paste a Zillow search URL. This actor applies its selected listing type. Property detail, agent and building URLs are not supported here.",
            "items": {
              "type": "object"
            }
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "minSquareFeet": {
            "title": "Min square feet",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "maxSquareFeet": {
            "title": "Max square feet",
            "minimum": 0,
            "type": "number",
            "description": "Optional Zillow search filter. Prices are USD; rental prices are monthly. Living area is in square feet."
          },
          "previousMonitorRunId": {
            "title": "Compare with a specific complete run",
            "pattern": "^[A-Za-z0-9]{17}$",
            "type": "string",
            "description": "Optional finished COMPLETE run from this same actor/account with the same query. Overrides autoBaseline for a fixed comparison and does not update the automatic baseline. Leave blank for normal scheduled monitoring. Partial scans are rejected."
          },
          "resumeFromRunId": {
            "title": "↪ Continue unfinished collection",
            "pattern": "^[A-Za-z0-9]{17}$",
            "type": "string",
            "description": "Optional finished run ID from this actor and your account. Copy the full PAGINATION.nextInput to continue from the latest batch. Keep query filters unchanged; change maxResults or advanced limits if needed. Saved rows are skipped. Continuation does not renew the Free allowance or guarantee recovery from a 403."
          },
          "advanced": {
            "title": "Advanced collection limits",
            "type": "object",
            "description": "Request, time and download ceilings. Automatic access recovery is included and requires no additional setup.",
            "properties": {
              "maxRequests": {
                "title": "Maximum HTTP requests",
                "type": "integer",
                "editor": "number",
                "default": 300,
                "minimum": 1,
                "maximum": 10000,
                "description": "Attempts including retries."
              },
              "maxRunSeconds": {
                "title": "Maximum collection seconds",
                "type": "integer",
                "editor": "number",
                "default": 600,
                "minimum": 10,
                "maximum": 3600,
                "description": "Collection time ceiling."
              },
              "maxDownloadMegabytes": {
                "title": "Maximum downloaded MB",
                "type": "integer",
                "editor": "number",
                "default": 50,
                "minimum": 1,
                "maximum": 1000,
                "description": "Checked between responses; one response can exceed the remaining allowance."
              },
              "requestTimeoutSeconds": {
                "title": "Request timeout (seconds)",
                "type": "integer",
                "editor": "number",
                "default": 25,
                "minimum": 5,
                "maximum": 60,
                "description": "Per request."
              },
              "maxRetries": {
                "title": "Temporary retries",
                "type": "integer",
                "editor": "number",
                "default": 2,
                "minimum": 0,
                "maximum": 3,
                "description": "Bounded retries."
              },
              "maxSplitDepth": {
                "title": "Maximum split depth",
                "type": "integer",
                "editor": "number",
                "default": 4,
                "minimum": 0,
                "maximum": 8,
                "description": "Splitting capped search areas."
              },
              "requestDelaySeconds": {
                "title": "Delay between requests",
                "description": "Seconds between attempts.",
                "editor": "number",
                "type": "number",
                "minimum": 0,
                "maximum": 10,
                "default": 0.3
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}