{
  "openapi": "3.0.1",
  "info": {
    "title": "Business License Scraper",
    "description": "Newly issued US business licenses from municipal portals. Company, owner, address, industry. Optional phone/email enrichment. Pay per delivered license. No API key.",
    "version": "1.0",
    "x-build-id": "0UGdHLsKBFkQDmL8e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/intelscrape~business-license-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-intelscrape-business-license-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/intelscrape~business-license-scraper/runs": {
      "post": {
        "operationId": "runs-sync-intelscrape-business-license-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/intelscrape~business-license-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-intelscrape-business-license-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",
        "required": [
          "targetState"
        ],
        "properties": {
          "targetState": {
            "title": "📍 State",
            "enum": [
              "All States",
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY"
            ],
            "type": "string",
            "description": "Select the state to search. Example: 'TX' or 'NY'. Required.",
            "default": "TX"
          },
          "targetCity": {
            "title": "🏙️ City (Optional)",
            "type": "string",
            "description": "Optional: Enter a specific city to narrow down the search. If left blank, the scraper will search the entire state.",
            "default": ""
          },
          "sources": {
            "title": "Sources (multi-city / state fanout)",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional maydit-parity source keys. When set, scrapes these public open-data registries (city or statewide) instead of only targetState/targetCity. Only includes sources we can hit via Socrata/open data — no invented portals.",
            "items": {
              "type": "string",
              "enum": [
                "chicago",
                "new_york",
                "san_francisco",
                "seattle",
                "los_angeles",
                "connecticut",
                "colorado"
              ],
              "enumTitles": [
                "Chicago, IL (business licenses)",
                "New York, NY (business licenses)",
                "San Francisco, CA (business registrations)",
                "Seattle, WA (business licenses)",
                "Los Angeles, CA (active businesses)",
                "Connecticut (statewide)",
                "Colorado (statewide)"
              ]
            }
          },
          "verticalPreset": {
            "title": "Vertical preset",
            "enum": [
              "none",
              "contractors",
              "restaurants",
              "home_services"
            ],
            "type": "string",
            "description": "One-click industry focus. Maps to Industry when Industry is 'All Industries'. none = use Industry as-is. contractors → Construction / Contractor; restaurants → Food / Restaurant; home_services → Home Services / HVAC / Plumbing.",
            "default": "none"
          },
          "industryFilter": {
            "title": "🏢 Industry",
            "enum": [
              "All Industries",
              "Retail",
              "Food / Restaurant",
              "Construction / Contractor",
              "Home Services / HVAC / Plumbing",
              "Professional Services",
              "Healthcare",
              "Beauty / Salon",
              "Real Estate",
              "Automotive",
              "Manufacturing"
            ],
            "type": "string",
            "description": "Filter by industry type. 'All Industries' returns everything. Use Vertical preset for one-click contractors / restaurants / home services.",
            "default": "All Industries"
          },
          "timePeriod": {
            "title": "📅 How Recent?",
            "enum": [
              "Last 7 days",
              "Last 30 days",
              "Last 90 days",
              "Last 6 months",
              "Last year",
              "Last 2 years",
              "All time"
            ],
            "type": "string",
            "description": "Only return businesses registered within this time window.",
            "default": "Last 30 days"
          },
          "registeredSince": {
            "title": "Registered since (YYYY-MM-DD)",
            "type": "string",
            "description": "Only businesses registered/licensed on or after this date. Overrides 'How Recent?' when set. Key filter for fresh leads (maydit parity)."
          },
          "registeredUntil": {
            "title": "Registered until (YYYY-MM-DD)",
            "type": "string",
            "description": "Only businesses registered/licensed on or before this date (YYYY-MM-DD)."
          },
          "businessNameContains": {
            "title": "Business name contains",
            "type": "string",
            "description": "Case-insensitive substring match on legal/DBA/business name. Leave empty for all."
          },
          "industryContains": {
            "title": "Industry contains",
            "type": "string",
            "description": "Case-insensitive substring match on industry/license type. When Industry dropdown is 'All Industries', this drives the keyword filter."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "How many business records do you want? Start small (10-50) to test.",
            "default": 50
          },
          "enrichOwners": {
            "title": "Phone & Email enrichment (optional)",
            "type": "boolean",
            "description": "Optional paid enrichment ($0.05/hit when phone or email is delivered). Off by default — raw license rows still include name/address/industry when published by the portal.",
            "default": false
          },
          "includeLicenseSummary": {
            "title": "📊 Include license-summary analytics row",
            "type": "boolean",
            "description": "When on (default), push one license-summary row with Soft CTA and charge PPE event license-summary ($0.01) once per run that delivers ≥1 license.",
            "default": true
          },
          "csvUrl": {
            "title": "📄 Bulk CSV Upload (URL)",
            "type": "string",
            "description": "Provide a link to a raw CSV file (e.g. Google Sheets Export) containing 'City' or 'Query' headers to process huge lists automatically."
          },
          "webhookUrl": {
            "title": "Webhook URL (Zapier / Make.com)",
            "type": "string",
            "description": "Auto-send results to your CRM when the run finishes. Paste your Zapier or Make.com webhook URL here."
          },
          "incrementalMode": {
            "title": "New Businesses Only",
            "type": "boolean",
            "description": "Only return businesses we haven't seen before. Perfect for scheduled daily/weekly runs.",
            "default": false
          },
          "addressFilter": {
            "title": "Street Filter",
            "type": "string",
            "description": "Only return businesses on a specific street (e.g., 'Broadway')."
          },
          "maxCities": {
            "title": "Max Portals",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many city databases to scan when searching broadly.",
            "default": 50
          },
          "maxPerCity": {
            "title": "Max Per City",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum businesses to pull from each city portal.",
            "default": 50
          },
          "extractTop100": {
            "title": "🚀 Autopilot: Top 100 Cities",
            "type": "boolean",
            "description": "Scan the 100 largest US cities automatically. Ignores your city selection above.",
            "default": false
          },
          "extractStateMatrix": {
            "title": "🌎 Autopilot: All 50 States (2,500 Cities)",
            "type": "boolean",
            "description": "Full national sweep across every state. Extremely intensive — may take hours.",
            "default": false
          },
          "demoMode": {
            "title": "Demo mode (sample data)",
            "type": "boolean",
            "description": "Push fictional sample licenses (includes naics, ownerName, expireDate) for wiring tests. No live portal calls. Off by default.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}