{
  "openapi": "3.0.1",
  "info": {
    "title": "Trulia.com Real Estate Scraper",
    "description": "Trulia.com Real Estate Scraper is an Apify actor that scrapes property listings across US cities, extracting prices, addresses, beds, baths, sqft, property types, and listing URLs with filtering, deduplication, and residential proxy support.",
    "version": "0.0",
    "x-build-id": "0eff0dlzXdO7fOKOT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/moving_beacon-owner1~trulia-com-real-estate-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-moving_beacon-owner1-trulia-com-real-estate-scraper",
        "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/moving_beacon-owner1~trulia-com-real-estate-scraper/runs": {
      "post": {
        "operationId": "runs-sync-moving_beacon-owner1-trulia-com-real-estate-scraper",
        "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/moving_beacon-owner1~trulia-com-real-estate-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-moving_beacon-owner1-trulia-com-real-estate-scraper",
        "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",
        "required": [
          "state",
          "city",
          "listing_type"
        ],
        "properties": {
          "state": {
            "title": "State (2-letter code)",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "US state abbreviation, e.g. CA, NY, TX, FL",
            "default": "CA"
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name. Use underscores or spaces between words (e.g. 'San Francisco' or 'San_Francisco'). Trulia is case-sensitive on cities.",
            "default": "San Francisco"
          },
          "listing_type": {
            "title": "Listing type",
            "enum": [
              "sale",
              "rent",
              "sold"
            ],
            "type": "string",
            "description": "What kind of listings to scrape",
            "default": "sale"
          },
          "max_pages": {
            "title": "Max Pages",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum number of result pages to scrape (~40 listings each)",
            "default": 3
          },
          "start_page": {
            "title": "Start Page",
            "minimum": 1,
            "type": "integer",
            "description": "Page number to start scraping from (1-indexed)",
            "default": 1
          },
          "max_listings": {
            "title": "Max Listings (cap)",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on total listings (0 = unlimited)",
            "default": 0
          },
          "min_price_usd": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Filter out listings below this price. 0 = no filter.",
            "default": 0
          },
          "max_price_usd": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Filter out listings above this price. 0 = no filter.",
            "default": 0
          },
          "min_bedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Filter out listings with fewer beds. 0 = no filter.",
            "default": 0
          },
          "property_type_filter": {
            "title": "Property type filter (optional)",
            "type": "array",
            "description": "Keep only listings whose type matches one of these (substring, case-insensitive). Examples: 'single family', 'condo', 'townhouse', 'multi family', 'land', 'mobile'.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "include_raw": {
            "title": "Include raw JSON",
            "type": "boolean",
            "description": "Include the raw Trulia object in each record (large)",
            "default": false
          },
          "request_delay_seconds": {
            "title": "Delay between pages (seconds)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "How long to pause between paginated requests. Trulia rate-limits aggressively — keep ≥2.",
            "default": 3
          },
          "proxy_configuration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. STRONGLY RECOMMENDED for Trulia: enable Apify Proxy → group RESIDENTIAL → country US. Trulia (owned by Zillow) blocks most datacenter IP ranges. If you enable Apify Proxy without choosing a group, this actor auto-upgrades to RESIDENTIAL+US.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}