{
  "openapi": "3.0.1",
  "info": {
    "title": "🏠 Zillow Agents Finder",
    "description": "Zillow Agents Finder extracts real estate agent profiles from Zillow. Collect agent names, brokerages, phone numbers, ratings, reviews, profile URLs, service areas, and more. Ideal for lead generation, market research, recruitment, and competitive analysis.",
    "version": "0.1",
    "x-build-id": "bwvS31GufHDcuZvKB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~zillow-agents-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-zillow-agents-finder",
        "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/api-empire~zillow-agents-finder/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-zillow-agents-finder",
        "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/api-empire~zillow-agents-finder/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-zillow-agents-finder",
        "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": {
          "urls": {
            "title": "🔗 URLs / Screen Names / Agent Names (bulk)",
            "uniqueItems": true,
            "type": "array",
            "description": "Bulk input — each item can be:\n• Full profile URL — `https://www.zillow.com/profile/REMAX EDGE`\n• Profile sub-tab URL — `https://www.zillow.com/profile/<name>/sales|rentals|sold|reviews`\n• Screen name with `@` prefix — `@REMAX EDGE` (optionally `@REMAX EDGE/reviews`)\n• Agent or lender name (free text) — runs a directory search\n\nSub-tab behavior (agents, full detail only): `sales`/`rentals`/`sold` return that agent's real active-listing / rental-listing / sold-listing data (`forSaleListingsSummary` / `forRentListingsSummary` / `soldListingsSummary`, up to 5 items + a real total each) pulled from the agent's own profile page — Zillow no longer serves these as separate pages. `reviews` fetches the live reviews page and includes a short `reviewsPreview` (up to 3 individual reviews); full paginated review extraction is a separate actor.\n\nLeave empty to run a pure location-based crawl.",
            "items": {
              "type": "string"
            }
          },
          "operation": {
            "title": "📋 Operation",
            "enum": [
              "agents",
              "lenders"
            ],
            "type": "string",
            "description": "Which Zillow directory to target.",
            "default": "agents"
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "City / state used as the geo seed for every directory search (e.g. `New York`, `Los Angeles, CA`). Required unless every URL entry is a direct profile URL or `@screenName`.",
            "default": "New York"
          },
          "limit": {
            "title": "🔢 Max Records",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of profiles returned across all queries. Set `0` for unlimited.",
            "default": 20
          },
          "agent_detail_info": {
            "title": "🧾 Full Agent Detail",
            "type": "boolean",
            "description": "When ✅ — return the full agent profile (sales stats, licenses, service areas, address, phones, email, …). When ❌ — return the compact card shape (id, name, screenName, url, avatar, business, location, phone, rating, reviews.count).",
            "default": false
          },
          "specialty": {
            "title": "🎯 Specialty Filter",
            "enum": [
              "",
              "first-time-home-buyers",
              "foreclosure",
              "investment-properties",
              "lot-or-land",
              "luxury-homes",
              "military-or-veterans",
              "new-construction",
              "property-management",
              "relocation",
              "rentals",
              "senior-communities",
              "vacation-short-term-rentals"
            ],
            "type": "string",
            "description": "Single specialty filter for the agents directory. Accepts a numeric code or a Zillow slug.",
            "default": ""
          },
          "language": {
            "title": "🗣️ Language Filter",
            "enum": [
              "",
              "english",
              "arabic",
              "bengali",
              "cantonese",
              "farsi",
              "french",
              "german",
              "greek",
              "hebrew",
              "hindi",
              "hungarian",
              "italian",
              "japanese",
              "korean",
              "mandarin",
              "polish",
              "portuguese",
              "russian",
              "spanish",
              "filipino",
              "thai",
              "turkish",
              "vietnamese"
            ],
            "type": "string",
            "description": "Single language filter (display name).",
            "default": ""
          },
          "is_top_agent": {
            "title": "⭐ Top Agents only",
            "type": "boolean",
            "description": "Filter to Zillow-flagged top agents (agents only).",
            "default": false
          },
          "is_buying": {
            "title": "🛒 Specializes in buying",
            "type": "boolean",
            "description": "Filter to agents who focus on buyers (agents only).",
            "default": false
          },
          "is_selling": {
            "title": "💸 Specializes in selling",
            "type": "boolean",
            "description": "Filter to agents who focus on sellers (agents only).",
            "default": false
          },
          "sort_lenders": {
            "title": "📊 Lender Sort Order",
            "enum": [
              "relevance",
              "location",
              "rating"
            ],
            "type": "string",
            "description": "Sort order for the lender directory (lenders only).",
            "default": "relevance"
          },
          "lender_fields": {
            "title": "🧮 Lender Field Allowlist",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick which fields to keep on each lender record. Leave empty to return every field. Values map to keys on Zillow's lender profile (`displayUser`) payload.",
            "items": {
              "type": "string",
              "enum": [
                "aboutMe",
                "address",
                "cellPhone",
                "companyName",
                "confirmedReviews",
                "contactLenderFormDisclaimer",
                "employerMemberFDIC",
                "employerScreenName",
                "equalHousingLogo",
                "faxPhone",
                "hideCellPhone",
                "individualName",
                "languagesSpoken",
                "memberFDIC",
                "nmlsType",
                "officePhone",
                "rating",
                "recentReviews",
                "stateLicenses",
                "stateSponsorships",
                "title",
                "totalReviews"
              ]
            }
          },
          "proxyConfiguration": {
            "title": "Proxy settings",
            "type": "object",
            "description": "By default the actor sends requests **without a proxy**. If Zillow blocks the request, the actor automatically falls back to **Apify datacenter** → **Apify residential** (with 3 retries on residential). Override here to force a specific group.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}