{
  "openapi": "3.0.1",
  "info": {
    "title": "Businesses Without Website & Bad Website Leads",
    "description": "Find local businesses that need a new website. Searches Google Maps, then audits each site for dead or parked domains, expired plans, no HTTPS, poor mobile support, outdated tech and slow pages. Returns a 0-100 score, a ready-to-paste pitch and contacts.",
    "version": "0.1",
    "x-build-id": "CjMKassHciloDrH3p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/aiden_boudreau~website-redesign-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-aiden_boudreau-website-redesign-leads",
        "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/aiden_boudreau~website-redesign-leads/runs": {
      "post": {
        "operationId": "runs-sync-aiden_boudreau-website-redesign-leads",
        "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/aiden_boudreau~website-redesign-leads/run-sync": {
      "post": {
        "operationId": "run-sync-aiden_boudreau-website-redesign-leads",
        "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": {
          "searchTerms": {
            "title": "Business types to search on Google Maps",
            "type": "array",
            "description": "Business types to look up on Google Maps, one per entry, e.g. \"dentist\", \"plumber\", \"hair salon\". Each term is searched in the location below. Leave empty to only audit your own websites or an existing Google Maps dataset.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City and state or country where to search, e.g. \"Boise, ID\" or \"Leeds, UK\". Required when searchTerms is used."
          },
          "maxPlacesPerSearch": {
            "title": "Max businesses per search term",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "How many Google Maps businesses to collect for each search term (1-2000). Cost scales with this number: about $4 per 1,000 for Google Maps plus up to $0.01 per audited site. Use 20 for a quick test.",
            "default": 100
          },
          "maxMapsCostUsd": {
            "title": "Max Google Maps cost (USD)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap on what the Google Maps Scraper step may charge. Google Maps discovery runs Apify's Google Maps Scraper (compass/crawler-google-places) in your account at its own price, roughly $4 per 1,000 places."
          },
          "websites": {
            "title": "Websites to audit",
            "type": "array",
            "description": "Full URLs of business websites to audit directly, e.g. \"https://example.com\". Use instead of, or in addition to, a Google Maps search.",
            "items": {
              "type": "string"
            }
          },
          "mapsDatasetId": {
            "title": "Google Maps Scraper dataset",
            "type": "string",
            "description": "A dataset from an earlier Google Maps Scraper run (pick it, or paste its ID). Every place in it is audited, so you don't pay to scrape Google Maps twice."
          },
          "includeNoWebsite": {
            "title": "Include businesses with no website",
            "type": "boolean",
            "description": "If true (default), also return Google Maps businesses that have no website at all, the hottest leads for a web designer. Set false to only get businesses whose existing website is bad.",
            "default": true
          },
          "minScore": {
            "title": "Minimum opportunity score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only return (and pay for) businesses scoring at least this much. 0 returns everything; 25+ is \"needs work\"; 45+ is \"outdated\"; 85+ is dead, parked, expired or no real website.",
            "default": 0
          },
          "includeChains": {
            "title": "Include chain-store location pages",
            "type": "boolean",
            "description": "Chain locations (e.g. a store-locator page on a national brand's site) are poor web design leads and are skipped free of charge unless you turn this on.",
            "default": false
          },
          "includeUnauditable": {
            "title": "Include sites that block audits (free)",
            "type": "boolean",
            "description": "Some sites block automated checks (e.g. Cloudflare challenges). They are never charged; turn this on to see them anyway.",
            "default": false
          },
          "findContactPage": {
            "title": "Look for emails on the contact page",
            "type": "boolean",
            "description": "If the homepage has no email address, also check the site's contact page.",
            "default": true
          },
          "measurePageWeight": {
            "title": "Measure page weight and image sizes",
            "type": "boolean",
            "description": "Checks the size of images, scripts and styles on the homepage to flag slow, heavy pages.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel audits",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many websites to audit at once.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}