{
  "openapi": "3.0.1",
  "info": {
    "title": "Real Estate Actor Suite",
    "description": "Scrape public property, accommodation, and marketplace listing pages through isolated portal adapters with detailed structured output.",
    "version": "1.0",
    "x-build-id": "IrgrFvXUWlcGW3gOs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapeai~realestate-actor-suite/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapeai-realestate-actor-suite",
        "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/scrapeai~realestate-actor-suite/runs": {
      "post": {
        "operationId": "runs-sync-scrapeai-realestate-actor-suite",
        "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/scrapeai~realestate-actor-suite/run-sync": {
      "post": {
        "operationId": "run-sync-scrapeai-realestate-actor-suite",
        "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": {
          "actors": {
            "title": "Actors",
            "type": "array",
            "description": "Actor names to run. Use [\"all\"] to run every configured adapter.",
            "items": {
              "type": "string"
            },
            "default": [
              "all"
            ]
          },
          "startUrls": {
            "title": "Shared Start URLs",
            "type": "array",
            "description": "Default public listing/search URLs for the configured portals. URLs are routed to the matching portal adapter. Replace them with authorized public URLs for the locations and searches you need. Skip Trace intentionally requires user-supplied authorized public URLs.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "description": "A public listing, detail, or search URL.",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ]
            },
            "default": [
              {
                "url": "https://www.zillow.com/san-francisco-ca/"
              },
              {
                "url": "https://www.auction.com/residential"
              },
              {
                "url": "https://www.loopnet.com/for-sale/"
              },
              {
                "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska"
              },
              {
                "url": "https://www.cian.ru/cat.php?deal_type=sale&object_type%5B0%5D=1&offer_type=flat"
              },
              {
                "url": "https://www.funda.nl/zoeken/koop/"
              },
              {
                "url": "https://www.seloger.com/list.htm?projects=2&types=1"
              },
              {
                "url": "https://www.immobiliare.it/vendita-case/"
              },
              {
                "url": "https://www.immowelt.de/suche/kaufen/wohnung/berlin/ad04de11"
              },
              {
                "url": "https://www.immobilienscout24.de/Suche/de/wohnung-kaufen.html"
              },
              {
                "url": "https://flatmates.com.au/rooms"
              },
              {
                "url": "https://www.domain.com.au/sale/"
              },
              {
                "url": "https://hotpads.com/san-francisco-ca/apartments-for-rent"
              },
              {
                "url": "https://www.propertyfinder.ae/en/search?l=1&c=2&t=1"
              },
              {
                "url": "https://www.centris.ca/en/condos~for-sale~montreal"
              },
              {
                "url": "https://www.homes.com/"
              },
              {
                "url": "https://www.99.co/singapore/sale"
              },
              {
                "url": "https://www.trulia.com/CA/San_Francisco/"
              },
              {
                "url": "https://www.trip.com/hotels/list?city=359"
              },
              {
                "url": "https://www.agoda.com/city/bangkok-th.html"
              },
              {
                "url": "https://www.tripadvisor.com/Hotels"
              },
              {
                "url": "https://www.vrbo.com/en-ca/vacation-rentals/united-states/california/san-francisco-county/san-francisco"
              },
              {
                "url": "https://www.rightmove.co.uk/property-for-sale/London.html"
              },
              {
                "url": "https://www.realtor.ca/on/toronto/real-estate"
              },
              {
                "url": "https://dubai.dubizzle.com/en/property-for-sale/residential/apartment/"
              },
              {
                "url": "https://www.realestate.com.au/buy"
              },
              {
                "url": "https://www.idealista.com/en/"
              },
              {
                "url": "https://www.apartments.com/san-francisco-ca/"
              },
              {
                "url": "https://www.bayut.com/for-sale/apartments/dubai/"
              },
              {
                "url": "https://www.zoopla.co.uk/for-sale/property/london/"
              },
              {
                "url": "https://www.realtor.com/realestateandhomes-search/San-Francisco_CA"
              }
            ]
          },
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "Optional query metadata passed to adapters. Use explicit public startUrls when the portal requires a concrete route or search identifier.",
            "default": ""
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional city, postcode, state, country, or neighbourhood.",
            "default": ""
          },
          "listingType": {
            "title": "Listing Type",
            "enum": [
              "sale",
              "rent",
              "sold",
              "auction",
              "stay",
              "all"
            ],
            "type": "string",
            "description": "Preferred transaction or accommodation mode where supported.",
            "default": "sale"
          },
          "propertyType": {
            "title": "Property Type",
            "type": "string",
            "description": "Optional portal-specific property type filter.",
            "default": ""
          },
          "maxItemsPerActor": {
            "title": "Max Items per Actor",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum detailed records emitted by each selected adapter.",
            "default": 10
          },
          "maxPagesPerActor": {
            "title": "Max Pages per Actor",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum search/list pages followed per actor.",
            "default": 2
          },
          "includeDetails": {
            "title": "Open Detail Pages",
            "type": "boolean",
            "description": "Open each listing detail page to enrich the output.",
            "default": true
          },
          "includeRawData": {
            "title": "Include Raw Data",
            "type": "boolean",
            "description": "Keep selected JSON-LD, metadata, card data, and JSON responses under rawData.",
            "default": true
          },
          "scrollCount": {
            "title": "Scroll Count",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Number of incremental scrolls used for lazy-loaded results.",
            "default": 3
          },
          "requestTimeoutSecs": {
            "title": "Request Timeout",
            "minimum": 10,
            "maximum": 180,
            "type": "integer",
            "description": "Maximum seconds allowed for one page.",
            "default": 45
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Concurrent browser pages. Keep low for public portals.",
            "default": 2
          },
          "maxRequestRetries": {
            "title": "Max Request Retries",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for transient HTTP blocks and navigation failures. Retries use session rotation and backoff.",
            "default": 3
          },
          "sameDomainDelaySecs": {
            "title": "Same-Domain Delay",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Minimum delay between requests to the same portal, in seconds.",
            "default": 3
          },
          "proxyEnabled": {
            "title": "Enable Authorized Proxy",
            "type": "boolean",
            "description": "Use an authorized Apify or user-supplied proxy route when available. This does not bypass access controls and may incur proxy costs.",
            "default": false
          },
          "proxyUrls": {
            "title": "Custom Proxy URLs",
            "type": "array",
            "description": "Optional custom proxy URLs (http://user:pass@host:port) to route requests through.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "serpApiKey": {
            "title": "SerpApi API Key",
            "type": "string",
            "description": "Optional SerpApi API key used as fallback data provider when portals are blocked.",
            "default": ""
          },
          "captchaApiKey": {
            "title": "CAPTCHA Solver API Key",
            "type": "string",
            "description": "Optional CapSolver, 2Captcha, or Anti-Captcha API key to automatically solve challenge pages.",
            "default": ""
          },
          "headless": {
            "title": "Headless Browser",
            "type": "boolean",
            "description": "Run Chromium without a visible window.",
            "default": true
          },
          "testMode": {
            "title": "Fixture Smoke Test",
            "type": "boolean",
            "description": "Run an offline fixture smoke test for every selected adapter instead of visiting websites.",
            "default": false
          },
          "actorInputs": {
            "title": "Per-Actor Inputs",
            "type": "object",
            "description": "Optional per-actor overrides. Explicit startUrls are filtered to that adapter's configured source hosts. Example: {\"zillow-scrape-address-url-zpid\": {\"startUrls\": [{\"url\": \"https://www.zillow.com/...\"}], \"maxItemsPerActor\": 20}}.",
            "default": {},
            "additionalProperties": true
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional Apify proxy configuration used when proxyEnabled is true.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}