{
  "openapi": "3.0.1",
  "info": {
    "title": "Florida License Leads Scraper - Contractors, Realtors & Pros",
    "description": "Scrape Florida DBPR licensed professionals & businesses: contractors, real estate agents/brokers, CAMs, vets, cosmetologists, architects & more. Name, address, license number, type, status & expiration date. Filter by profession, city, type, status & renewal date. Export CSV/JSON.",
    "version": "1.0",
    "x-build-id": "2q55nzy32m0Tm1QP7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~florida-license-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-florida-license-leads-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/scrapesage~florida-license-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-florida-license-leads-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/scrapesage~florida-license-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-florida-license-leads-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": {
          "divisions": {
            "title": "License divisions / professions",
            "type": "array",
            "description": "Which Florida DBPR license rosters to pull. Each division downloads its full official extract file, so add only what you need (bandwidth scales with selection). Real estate (individuals) and construction are the largest files.",
            "items": {
              "type": "string",
              "enum": [
                "construction",
                "electrical-contractors",
                "home-inspectors",
                "building-code-administrators",
                "real-estate",
                "real-estate-firms",
                "real-estate-schools",
                "appraisers",
                "community-association-managers",
                "cosmetology",
                "barbers",
                "veterinary",
                "architecture",
                "landscape-architecture",
                "geologists",
                "auctioneers",
                "employee-leasing",
                "harbor-pilots"
              ],
              "enumTitles": [
                "Construction Contractors (GC, building, roofing, plumbing, HVAC, electrical…)",
                "Electrical & Alarm Contractors",
                "Home Inspectors",
                "Building Code Administrators & Inspectors",
                "Real Estate — Sales Associates & Brokers",
                "Real Estate — Brokerages / Corporations",
                "Real Estate — Schools",
                "Real Estate Appraisers",
                "Community Association Managers & Firms (CAM)",
                "Cosmetologists & Salons",
                "Barbers & Barbershops",
                "Veterinarians & Veterinary Establishments",
                "Architects & Interior Designers",
                "Landscape Architects",
                "Professional Geologists",
                "Auctioneers & Auction Businesses",
                "Employee Leasing Companies (PEOs)",
                "Harbor Pilots"
              ]
            },
            "default": [
              "construction"
            ]
          },
          "statusFilter": {
            "title": "License status",
            "enum": [
              "active",
              "all",
              "inactive"
            ],
            "type": "string",
            "description": "Which licenses to keep based on status.",
            "default": "active"
          },
          "recordTypes": {
            "title": "Record type",
            "type": "array",
            "description": "Keep only individuals, only businesses/firms, or both (default).",
            "items": {
              "type": "string",
              "enum": [
                "individual",
                "business"
              ],
              "enumTitles": [
                "Individuals",
                "Businesses / firms"
              ]
            }
          },
          "licenseTypeCodes": {
            "title": "License type codes",
            "type": "array",
            "description": "Filter to specific DBPR license-type codes, e.g. CGC, CBC (general/building contractor), CCC (roofing), CPC (plumbing), CAC (A/C), VM (veterinarian), CAM. Leave empty for all types in the selected divisions.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Keep only licensees in these cities (case-insensitive), e.g. Miami, Orlando, Tampa, Jacksonville.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties (real-estate divisions only)",
            "type": "array",
            "description": "Keep only licensees in these counties. County names are available for the real-estate divisions; other divisions expose a raw county code (use cities / zip codes instead).",
            "items": {
              "type": "string"
            }
          },
          "zipCodes": {
            "title": "ZIP codes",
            "type": "array",
            "description": "Keep only licensees in these 5-digit ZIP codes.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "Keep only licensees with these state codes (most are FL; some hold Florida licenses from out of state).",
            "items": {
              "type": "string"
            }
          },
          "nameQuery": {
            "title": "Name contains",
            "type": "string",
            "description": "Keep only records whose licensee name, full name or business name contains this text."
          },
          "businessNameQuery": {
            "title": "Business name contains",
            "type": "string",
            "description": "Keep only records whose business / firm name contains this text (e.g. a franchise or company name)."
          },
          "withBusinessNameOnly": {
            "title": "Only records with a business / firm name",
            "type": "boolean",
            "description": "Keep only licensees that have an associated company name (B2B firms).",
            "default": false
          },
          "withStreetAddressOnly": {
            "title": "Only records with a street address",
            "type": "boolean",
            "description": "Drop records that only have a city/ZIP (no street).",
            "default": false
          },
          "expiringWithinDays": {
            "title": "License expiring within N days",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only licenses that expire within this many days — ideal for renewal-timing and CE / insurance prospecting."
          },
          "issuedAfter": {
            "title": "Originally licensed after (YYYY-MM-DD)",
            "type": "string",
            "description": "Keep only licenses originally issued on/after this date — find newly-licensed pros and new businesses."
          },
          "minLeadScore": {
            "title": "Minimum lead score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only records with a lead score (0–100) at or above this value."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "leadScore",
              "expirationSoon",
              "newestIssued",
              "name",
              "source"
            ],
            "type": "string",
            "description": "Ordering of the (capped) output.",
            "default": "leadScore"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of license records to output (after filtering & sorting).",
            "default": 1000
          },
          "deduplicateResults": {
            "title": "Deduplicate",
            "type": "boolean",
            "description": "Collapse duplicate rows by license number + name (recommended).",
            "default": true
          },
          "includeRawFields": {
            "title": "Include raw source fields",
            "type": "boolean",
            "description": "Attach the raw DBPR record (sourceFields) to each output item for full transparency.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitor mode (only new / changed)",
            "type": "boolean",
            "description": "Remember licenses across runs and emit only NEW or CHANGED ones (status, expiration or address change). Great for tracking newly-issued and just-renewed licenses. Works independently of Apify Schedules — use a Schedule to run it on a cadence.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Namespace for monitor memory. Use a distinct key per saved search so their states don't collide.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Florida DBPR blocks datacenter IPs — keep the default Apify Residential (US) proxy so the official extract files download reliably.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}