{
  "openapi": "3.0.1",
  "info": {
    "title": "HomeAdvisor scraper",
    "description": "Scrape HomeAdvisor search pages by category. Extracts business name, address, phone, website, ratings (quality, value, punctuality & more), review counts, licenses, payment methods, photos, response rates and years in business. Export leads to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "cI0VSexqnada2Befh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ovaimerali~homeadvisor-search-page-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ovaimerali-homeadvisor-search-page-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/ovaimerali~homeadvisor-search-page-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ovaimerali-homeadvisor-search-page-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/ovaimerali~homeadvisor-search-page-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ovaimerali-homeadvisor-search-page-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",
        "properties": {
          "categoryIds": {
            "title": "1. What type of business?",
            "type": "array",
            "description": "Pick one or more service categories, e.g. Plumbing or Roofing. Tip: always pick at least one - if you leave this empty, only a default category is searched.",
            "items": {
              "type": "string",
              "enum": [
                "-12001",
                "-12002",
                "-12003",
                "-12004",
                "-12005",
                "-12006",
                "-12007",
                "-12008",
                "-12009",
                "-12010",
                "-12011",
                "-12012",
                "-12014",
                "-12015",
                "-12016",
                "-12017",
                "-12019",
                "-12022",
                "-12023",
                "-12024",
                "-12025",
                "-12026",
                "-12028",
                "-12029",
                "-12030",
                "-12031",
                "-12032",
                "-12033",
                "-12034",
                "-12035",
                "-12036",
                "-12037",
                "-12038",
                "-12039",
                "-12040",
                "-12041",
                "-12043",
                "-12045",
                "-12046",
                "-12047",
                "-12049",
                "-12072",
                "-12050",
                "-12052",
                "-12053",
                "-12054",
                "-12055",
                "-12057",
                "-12058",
                "-12059",
                "-14980",
                "-12061",
                "-12081",
                "-12063",
                "-12064",
                "-12066",
                "-14820",
                "-12070",
                "-12073",
                "-12074",
                "-12076",
                "-12077",
                "-12079",
                "-12080"
              ],
              "enumTitles": [
                "Additions & Remodeling",
                "Air Conditioning",
                "Appliances",
                "Appraiser",
                "Architects & Engineers",
                "Audio/Visual & Computers",
                "Awnings",
                "Brick & Stone",
                "Cabinets",
                "Carpenters",
                "Carpet & Upholstery Cleaning",
                "Ceilings",
                "Cleaning & Maid Services",
                "Concrete",
                "Countertops",
                "Decks",
                "Designers & Decorators",
                "Disaster Recovery Services",
                "Docks",
                "Doors",
                "Drywall & Plaster",
                "Electrical",
                "Excavation",
                "Fans",
                "Fences",
                "Fireplace & Wood Stoves",
                "Flooring",
                "Foundations",
                "Fountains & Ponds",
                "Furniture Repair & Refinish",
                "Garage & Garage Doors",
                "Glass & Mirrors",
                "Gutters",
                "Handyman Services",
                "Heating & Furnace Systems",
                "Home Inspection",
                "Home Security Services",
                "Insulation",
                "Landscaping",
                "Lawn & Garden Care",
                "Metal Fabrication",
                "Mold & Asbestos Services",
                "Moving",
                "Organizers",
                "Outdoor Playgrounds",
                "Painting",
                "Paving",
                "Pest Control",
                "Plumbing",
                "Powdercoating",
                "Power Washing",
                "Roofing",
                "Septic Tanks & Wells",
                "Sheds & Enclosures",
                "Siding",
                "Skylights",
                "Solar",
                "Swimming Pools",
                "Tile",
                "Tree Service",
                "Waste Material Removal",
                "Water Treatment System",
                "Window Coverings",
                "Windows"
              ]
            }
          },
          "states": {
            "title": "2a. Search whole states",
            "type": "array",
            "description": "Easiest option: pick one or more US states and the scraper covers the entire state for you.",
            "items": {
              "type": "string",
              "enum": [
                "AK",
                "AL",
                "AR",
                "AZ",
                "CA",
                "CO",
                "CT",
                "DC",
                "DE",
                "FL",
                "GA",
                "HI",
                "IA",
                "ID",
                "IL",
                "IN",
                "KS",
                "KY",
                "LA",
                "MA",
                "MD",
                "ME",
                "MI",
                "MN",
                "MO",
                "MS",
                "MT",
                "NC",
                "ND",
                "NE",
                "NH",
                "NJ",
                "NM",
                "NV",
                "NY",
                "OH",
                "OK",
                "OR",
                "PA",
                "RI",
                "SC",
                "SD",
                "TN",
                "TX",
                "UT",
                "VA",
                "VT",
                "WA",
                "WI",
                "WV",
                "WY"
              ],
              "enumTitles": [
                "Alaska (AK)",
                "Alabama (AL)",
                "Arkansas (AR)",
                "Arizona (AZ)",
                "California (CA)",
                "Colorado (CO)",
                "Connecticut (CT)",
                "District of Columbia (DC)",
                "Delaware (DE)",
                "Florida (FL)",
                "Georgia (GA)",
                "Hawaii (HI)",
                "Iowa (IA)",
                "Idaho (ID)",
                "Illinois (IL)",
                "Indiana (IN)",
                "Kansas (KS)",
                "Kentucky (KY)",
                "Louisiana (LA)",
                "Massachusetts (MA)",
                "Maryland (MD)",
                "Maine (ME)",
                "Michigan (MI)",
                "Minnesota (MN)",
                "Missouri (MO)",
                "Mississippi (MS)",
                "Montana (MT)",
                "North Carolina (NC)",
                "North Dakota (ND)",
                "Nebraska (NE)",
                "New Hampshire (NH)",
                "New Jersey (NJ)",
                "New Mexico (NM)",
                "Nevada (NV)",
                "New York (NY)",
                "Ohio (OH)",
                "Oklahoma (OK)",
                "Oregon (OR)",
                "Pennsylvania (PA)",
                "Rhode Island (RI)",
                "South Carolina (SC)",
                "South Dakota (SD)",
                "Tennessee (TN)",
                "Texas (TX)",
                "Utah (UT)",
                "Virginia (VA)",
                "Vermont (VT)",
                "Washington (WA)",
                "Wisconsin (WI)",
                "West Virginia (WV)",
                "Wyoming (WY)"
              ]
            }
          },
          "postalCodes": {
            "title": "2b. ...or search specific ZIP codes",
            "type": "array",
            "description": "Type up to 10 US ZIP codes (one per line) to search just those areas. Only used when no state is selected above.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "3. Maximum number of results",
            "minimum": 1,
            "type": "integer",
            "description": "The scraper stops after finding this many businesses. More results = more credits spent. 5000 is fine for most runs.",
            "default": 5000
          },
          "scrapeProfilePages": {
            "title": "4. Also get phone number & website?",
            "type": "boolean",
            "description": "Switch ON to open every business profile and grab its phone number and website. The run takes longer, but your leads come with contact details.",
            "default": false
          },
          "onlyWithContactDetails": {
            "title": "Skip businesses without contact details",
            "type": "boolean",
            "description": "Switch ON to keep only businesses that advertise a phone number and website. You get fewer - but better - leads, and the run is faster and cheaper.",
            "default": false
          },
          "concurrency": {
            "title": "Speed (parallel requests)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many requests run at the same time. Leave at 5. Higher = faster, but more likely to get blocked.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave on 'None' - it works best. Only switch to Residential proxies if runs start failing with blocking errors."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}