{
  "openapi": "3.0.1",
  "info": {
    "title": "Find Local Businesses With No Website - Web Designer Leads",
    "description": "Find US local businesses on Google Maps with no website or weak web presence (social-only, free Wix, GMB-only, parked). Per-record quality score, 50-vertical inference, per-vertical intent signals. URL-pattern classification, no live fetches. For web designers and SEO agencies.",
    "version": "0.1",
    "x-build-id": "D6PE9d6aRY9x9YFfj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/seibs.co~local-leads-without-websites/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-seibs.co-local-leads-without-websites",
        "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/seibs.co~local-leads-without-websites/runs": {
      "post": {
        "operationId": "runs-sync-seibs.co-local-leads-without-websites",
        "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/seibs.co~local-leads-without-websites/run-sync": {
      "post": {
        "operationId": "run-sync-seibs.co-local-leads-without-websites",
        "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": [
          "locations"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "all_businesses",
              "vertical_filter"
            ],
            "type": "string",
            "description": "all_businesses: scrape any business type in the location, then classify by Maps category. vertical_filter: restrict to the verticals you select below.",
            "default": "all_businesses"
          },
          "verticals": {
            "title": "Verticals (used when mode = vertical_filter)",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to these business verticals. Ignored when mode = all_businesses. Leave empty to include every supported vertical.",
            "items": {
              "type": "string",
              "enum": [
                "restaurants",
                "cafes",
                "bars",
                "retail_clothing",
                "retail_general",
                "beauty_salon",
                "hair_salon",
                "barber",
                "nail_salon",
                "spa",
                "gym_fitness",
                "yoga_studio",
                "dental",
                "medical_practice",
                "chiropractor",
                "veterinarian",
                "pet_services",
                "daycare",
                "auto_repair",
                "auto_dealer",
                "home_services_hvac",
                "home_services_plumbing",
                "home_services_electrical",
                "home_services_roofing",
                "home_services_landscaping",
                "painter",
                "contractor_general",
                "contractor_remodeler",
                "locksmith",
                "cleaning_service",
                "accounting_tax",
                "law_firm",
                "real_estate",
                "insurance",
                "mortgage",
                "financial_advisor",
                "marketing_agency",
                "photographer",
                "event_venue",
                "catering",
                "florist",
                "jewelry",
                "furniture_retail",
                "bookstore",
                "music_store",
                "bakery",
                "butcher",
                "liquor_store",
                "dry_cleaner",
                "tailor"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "description": "US locations to search. Accepts city + state (e.g. 'Austin, TX') OR a 5-digit ZIP (e.g. '78701'). Up to 25 locations per run.",
            "default": [
              "Austin, TX"
            ],
            "items": {
              "type": "string"
            }
          },
          "radius_miles": {
            "title": "Radius (miles) per location",
            "minimum": 5,
            "maximum": 50,
            "type": "integer",
            "description": "Approximate radius (miles) applied to each location. Compass uses this as a soft hint; the actual area depends on Google Maps zoom logic.",
            "default": 25
          },
          "weak_website_filter": {
            "title": "Weak-website filter",
            "enum": [
              "include_weak_websites",
              "exclude_weak_websites",
              "only_zero_website"
            ],
            "type": "string",
            "description": "include_weak_websites: emit prospects with no website AND prospects with weak web presence (social-only, free Wix, GMB-only, etc.). This is the broadest pool. exclude_weak_websites: emit ONLY prospects with no website field on the Maps record. only_zero_website: strictest -- exactly the same as exclude_weak_websites today (kept distinct so a future v2 can split parked vs. fully-absent).",
            "default": "include_weak_websites"
          },
          "min_quality_score": {
            "title": "Minimum quality score (0-1)",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Filter records below this quality score (0.0 to 1.0). 0.0 emits everything; 0.75 is the 'high-quality' threshold; 0.5 is a good middle ground when you want to skip 5-review, unclaimed listings.",
            "default": 0
          },
          "max_results_per_query": {
            "title": "Max results per query",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Cap on records returned per (search_term x location) tuple. Compass enforces a hard ceiling; we cap at 100 to protect compute budget.",
            "default": 50
          },
          "sort_by": {
            "title": "Sort order",
            "enum": [
              "quality_score_desc",
              "reviews_count_desc",
              "rating_desc",
              "name_asc"
            ],
            "type": "string",
            "description": "Order of the emitted records. quality_score_desc is the recommended default for prospecting.",
            "default": "quality_score_desc"
          },
          "search_terms": {
            "title": "Search terms (optional override)",
            "maxItems": 10,
            "type": "array",
            "description": "Free-text Google Maps search terms. Combined with each location. If empty, terms are derived from the mode + verticals selection. Example: ['small business', 'local shop'].",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "exclude_chains": {
            "title": "Exclude national chains and franchises",
            "type": "boolean",
            "description": "When true (default), drops records whose business name matches a national chain or franchise brand (Great Clips, McDonald's, Home Depot, Marriott, etc.). Chains are dropped BEFORE the no-website check, so franchise locations whose Maps listing happens to be missing a website field do NOT leak through. Turn off only if you specifically want chain locations in the output (e.g. you sell to franchisees, not independent businesses). Blocklist covers ~400 common US chains (900+ spelling variants) across fast food, grocery, gas/convenience, big box, auto, hotels, banks, salons, fitness, real estate, etc.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}