{
  "openapi": "3.0.1",
  "info": {
    "title": "USA HVAC Leads Scraper — Verified Emails (AC, Heating)",
    "description": "Scrape HVAC, AC repair, heating & air conditioning contractor contacts from Google Maps with verified emails, phones, services & 24/7 emergency flag. Real-time data from HVAC websites. Export to HubSpot, Salesforce, or CSV. Built for home services SaaS sales & marketing.",
    "version": "1.0",
    "x-build-id": "go24I3ZTKOc3JIJm3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/muhammadafzal~hvac-lead-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-muhammadafzal-hvac-lead-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/muhammadafzal~hvac-lead-scraper/runs": {
      "post": {
        "operationId": "runs-sync-muhammadafzal-hvac-lead-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/muhammadafzal~hvac-lead-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-muhammadafzal-hvac-lead-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": {
          "businessType": {
            "title": "HVAC Business Type",
            "enum": [
              "HVAC Company",
              "AC Repair Service",
              "Heating Contractor",
              "Air Conditioning Contractor",
              "Furnace Repair Service",
              "Duct Cleaning Service",
              "Commercial HVAC Contractor",
              "Refrigeration Service",
              "Indoor Air Quality Company",
              "Custom"
            ],
            "type": "string",
            "description": "Select the HVAC sub-niche to search on Google Maps. The actor builds the query automatically — e.g., 'HVAC Company' finds full-service heating, cooling, and air conditioning contractors; 'AC Repair Service' targets air conditioning repair specialists; 'Heating Contractor' finds heating/furnace experts; 'Furnace Repair Service' targets furnace repair shops; 'Duct Cleaning Service' finds air duct cleaning companies; 'Commercial HVAC Contractor' targets commercial-grade HVAC installers; 'Refrigeration Service' finds commercial refrigeration repair; 'Indoor Air Quality Company' targets IAQ specialists. Choose 'Custom' to write your own search query.",
            "default": "HVAC Company"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "The city, state, or ZIP code to search for HVAC contractors in. Use 'City, ST' format for best results (e.g., 'Dallas, TX', 'Phoenix, AZ', 'Chicago, IL'). ZIP codes and neighborhoods also work. For multi-city coverage, run the actor once per location and merge datasets — each run fully covers one market."
          },
          "searchQuery": {
            "title": "Custom Search Query",
            "type": "string",
            "description": "A raw Google Maps search query — only used when Business Type is set to 'Custom'. Use this to target HVAC niches not in the dropdown, such as 'commercial HVAC contractors in Denver, CO', 'mini-split installers near Orlando, FL', or 'boiler repair companies in Seattle, WA'. Write the query exactly as you would type it into Google Maps."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of HVAC leads to return. The prefill is 3 for a quick quality test — increase to 50–200 for production prospecting. Google Maps caps at ~120 results per search; run multiple locations to build larger datasets. Start small to verify results match your target trade and geography before scaling.",
            "default": 50
          },
          "enrichEmails": {
            "title": "Find Email Addresses",
            "type": "boolean",
            "description": "When enabled, the actor visits each HVAC contractor's website and scans contact pages, footers, and service pages to extract email addresses. Disable if you only need phone numbers and addresses, or to run faster without website crawling. Most HVAC company sites publish a contact email in the footer or on a Contact page.",
            "default": true
          },
          "verifyEmails": {
            "title": "Verify Email Deliverability",
            "type": "boolean",
            "description": "When enabled, each extracted email is checked via DNS/MX lookup and SMTP handshake to confirm the mailbox exists and can receive mail — without sending any actual message. Adds ~1 minute per batch but significantly reduces bounce rates on outreach campaigns. Only applies when 'Find Email Addresses' is enabled. Verified emails are flagged with email_verified: true in the output.",
            "default": true
          },
          "enrichSocials": {
            "title": "Find Social Media Links",
            "type": "boolean",
            "description": "When enabled, the actor scans each HVAC website for social media profile links: Facebook, Instagram, LinkedIn, and Twitter/X. Useful for multi-channel outreach, ad targeting (Facebook Custom Audiences), and account research before contacting. Many HVAC companies are active on Facebook even when they lack a strong website.",
            "default": true
          },
          "outputFormat": {
            "title": "Output Format",
            "enum": [
              "full",
              "hubspot",
              "salesforce"
            ],
            "type": "string",
            "description": "Controls the structure of the output dataset. 'Full' returns all fields for custom pipelines. 'HubSpot Import' maps columns to HubSpot Contact and Company import properties for direct CSV upload with zero remapping. 'Salesforce Import' aligns to the Salesforce Lead object with LeadSource pre-filled. All formats are downloadable from Apify as CSV, JSON, or Excel.",
            "default": "full"
          },
          "proxyUrl": {
            "title": "Custom Proxy URL (optional)",
            "type": "string",
            "description": "Optional HTTP proxy URL for using third-party residential proxies instead of Apify's built-in proxies. Format: http://username:password@host:port. Compatible with IPRoyal, Smartproxy, Bright Data, and other rotating proxy services. Leave empty to use Apify's default residential proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}