{
  "openapi": "3.0.1",
  "info": {
    "title": "Illinois License Leads Scraper - Realtors, Doctors, CPAs & Pros",
    "description": "Scrape 4M+ Illinois IDFPR licensed pros across 60+ boards: realtors, doctors, nurses, dentists, CPAs, engineers, cosmetologists, vets, contractors & more. Get name, city/county/ZIP, license number, type, status, issue & expiration dates plus disciplinary history. Filter by profession & location.",
    "version": "0.1",
    "x-build-id": "Z0qpkKCKM43yFskkH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~illinois-license-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-illinois-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~illinois-license-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-illinois-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~illinois-license-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-illinois-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": {
          "licenseTypes": {
            "title": "Professions / boards",
            "type": "array",
            "description": "Which Illinois IDFPR boards to pull. Each value is one of the 60+ official license-type categories. Leave a single profession for fast, focused lead pulls; add several to merge them into one dataset.",
            "items": {
              "type": "string",
              "enum": [
                "REAL ESTATE",
                "APPRAISAL",
                "COMM ASSOC MGR",
                "HOME INSPECTOR",
                "TIME SHARE LAND SALES",
                "MEDICAL BOARD",
                "NURSING BOARD",
                "ADV PRACTICE NURSE",
                "PHYSICIAN ASSISTANT",
                "DENTAL",
                "PHARMACY",
                "OPTOMETRY",
                "PODIATRY",
                "VETERINARY",
                "PHYSICAL THERAPY",
                "OCCUPATIONAL THERAPY",
                "RESPIRATORY CARE",
                "SPEECH-LANGUAGE PATH",
                "ACUPUNCTURE",
                "DIETETIC AND NUTRITION",
                "ATHLETIC TRAINER",
                "NURSING HOME ADMIN",
                "SURGICAL ASSIST-TECH",
                "PERFUSION",
                "ORTHO,PROST.,PEDORTH",
                "NAPRAPATHY",
                "MIDWIFERY BOARD",
                "MUSIC THERAPY BOARD",
                "ENVIRON. HLTH PRACT",
                "HME AND SERVICES PROV",
                "MEDICAL CORP",
                "CLIN PSYCHOLOGIST",
                "SOCIAL WORKER",
                "PROF. COUNSELOR",
                "MAR AND FAM THERAPIST",
                "SEX OFFENDER PROVIDER",
                "ADVISORY BD OF BEHAV",
                "COSMO",
                "MASSAGE LICENSING BD",
                "ROOFING CONTRACTOR",
                "PROF. ENGINEER",
                "STRUCTURAL ENGINEER",
                "ARCHITECT",
                "LANDSCAPE ARCHITECT",
                "LAND SURVEYOR BOARD",
                "GEOLOGY",
                "INTERIOR DESIGN",
                "DESIGN FIRM",
                "PUBLIC ACCOUNTANT",
                "COLLECTION AGENCY",
                "AUCTIONEER",
                "SHORTHAND REPORTER",
                "DETECT. DECEPTION",
                "ATHLETE AGENT",
                "ATHLETICS",
                "DETECTIVE BOARD",
                "FUNERAL AND EMBALMER",
                "CEMETERY OVERSIGHT",
                "ADULT USE CANNABIS BD",
                "MEDICAL CANNABIS BD",
                "PROF SERVICE CORP",
                "LIMITED LIABILITY CO",
                "IDPR"
              ],
              "enumTitles": [
                "Real Estate — Brokers, Salespersons, Leasing Agents & Firms",
                "Real Estate Appraisers & AMCs",
                "Community Association (HOA) Managers",
                "Home Inspectors",
                "Time Share & Land Sales Agents",
                "Physicians & Surgeons (Medical Board)",
                "Nurses — RN, LPN & CNA",
                "Advanced Practice Registered Nurses",
                "Physician Assistants",
                "Dentists & Dental Hygienists",
                "Pharmacists, Techs & Pharmacies",
                "Optometrists",
                "Podiatric Physicians",
                "Veterinarians & Vet Techs",
                "Physical Therapists",
                "Occupational Therapists",
                "Respiratory Care Practitioners",
                "Speech-Language Pathologists & Audiologists",
                "Acupuncturists",
                "Dietitians & Nutrition Counselors",
                "Athletic Trainers",
                "Nursing Home Administrators",
                "Surgical Assistants & Technologists",
                "Perfusionists",
                "Orthotists, Prosthetists & Pedorthists",
                "Naprapaths",
                "Certified Professional Midwives",
                "Music Therapists",
                "Environmental Health Practitioners",
                "Home Medical Equipment & Services Providers",
                "Medical Corporations",
                "Clinical Psychologists",
                "Social Workers (LSW/LCSW)",
                "Professional Counselors (LPC/LCPC)",
                "Marriage & Family Therapists",
                "Sex Offender Evaluators & Treatment Providers",
                "Behavior Analysts",
                "Cosmetologists, Barbers, Nail, Esthetics & Salons",
                "Massage Therapists",
                "Roofing Contractors",
                "Professional Engineers",
                "Structural Engineers",
                "Architects",
                "Landscape Architects",
                "Professional Land Surveyors",
                "Professional Geologists",
                "Registered Interior Designers",
                "Professional Design Firms",
                "Certified Public Accountants (CPA) & Firms",
                "Collection Agencies",
                "Auctioneers & Auction Firms",
                "Certified Shorthand Reporters",
                "Polygraph (Detection of Deception) Examiners",
                "Athlete Agents",
                "Athletics — Boxing/MMA",
                "Private Detectives, Security & Alarm (PERC)",
                "Funeral Directors & Embalmers",
                "Cemetery Authorities & Sales Staff",
                "Adult Use Cannabis — Dispensaries & Agents",
                "Medical Cannabis — Dispensaries & Agents",
                "Professional Service Corporations",
                "Professional LLCs",
                "IDFPR Department & Misc."
              ]
            },
            "default": [
              "REAL ESTATE"
            ]
          },
          "descriptionContains": {
            "title": "License description contains",
            "type": "string",
            "description": "Optional keyword to target a specific license within the selected board(s) — matched against the granular license description. E.g. \"BROKER\", \"MANAGING BROKER\", \"REGISTERED NURSE\", \"DISPENSARY\", \"SALON\"."
          },
          "statusFilter": {
            "title": "License status",
            "enum": [
              "active",
              "all",
              "inactive"
            ],
            "type": "string",
            "description": "Active = currently active licenses only (best for outreach). Inactive = everything not active (not renewed, expired, cancelled, etc.). All = no status filter.",
            "default": "active"
          },
          "licenseStatuses": {
            "title": "Exact license statuses (advanced)",
            "type": "array",
            "description": "Optional. Target one or more exact raw status values (overrides the simple status filter). Examples: ACTIVE, NOT RENEWED, EXPIRED, SUSPENDED, REVOKED, PROBATION.",
            "items": {
              "type": "string"
            }
          },
          "entityType": {
            "title": "Individual or business",
            "enum": [
              "any",
              "individual",
              "business"
            ],
            "type": "string",
            "description": "Limit to individual licensees, business/firm licensees, or both.",
            "default": "any"
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Optional list of cities to include (e.g. CHICAGO, NAPERVILLE, SPRINGFIELD). Case-insensitive. Clear it to pull statewide.",
            "default": [
              "CHICAGO"
            ],
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "Optional list of counties to include (e.g. COOK, DUPAGE, LAKE, WILL).",
            "items": {
              "type": "string"
            }
          },
          "zipCodes": {
            "title": "ZIP codes",
            "type": "array",
            "description": "Optional list of 5-digit ZIP codes to include.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "Optional. Most licensees are in IL; some live out of state. Restrict to specific 2-letter state codes if needed (e.g. IL, IN, WI).",
            "items": {
              "type": "string"
            }
          },
          "onlyDisciplined": {
            "title": "Only licensees with disciplinary history",
            "type": "boolean",
            "description": "Return only licenses that have at least one disciplinary action on record (compliance, risk, legal & journalism use cases).",
            "default": false
          },
          "excludeEducationRecords": {
            "title": "Exclude CE / pre-license course records",
            "type": "boolean",
            "description": "Drop continuing-education sponsor/course/instructor and pre-license course records (kept on by default so you only get real professional leads).",
            "default": true
          },
          "nameQuery": {
            "title": "Name contains",
            "type": "string",
            "description": "Optional case-insensitive substring match on licensee or business name."
          },
          "businessNameQuery": {
            "title": "Business name contains",
            "type": "string",
            "description": "Optional case-insensitive substring match on the business / DBA name only."
          },
          "expiringWithinDays": {
            "title": "Expiring within N days",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Keep only licenses whose expiration date is within the next N days — perfect renewal-timing prospecting (insurance, CE providers, software)."
          },
          "issuedAfter": {
            "title": "Issued after (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional. Keep only licenses originally issued on or after this date — surface freshly-licensed professionals."
          },
          "minLeadScore": {
            "title": "Minimum lead score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional 0-100 floor on the computed lead score."
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "leadScore",
              "newestIssued",
              "oldestIssued",
              "expiringSoon",
              "recentlyDisciplined",
              "name",
              "source"
            ],
            "type": "string",
            "description": "Ordering of the emitted leads.",
            "default": "newestIssued"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of license lead records to return (each is one billed result).",
            "default": 100
          },
          "includeDisciplinaryDetails": {
            "title": "Include full disciplinary actions",
            "type": "boolean",
            "description": "Include the per-license array of disciplinary actions (case number, action, reason, dates). Summary fields are always included.",
            "default": true
          },
          "includeRawFields": {
            "title": "Include raw source fields",
            "type": "boolean",
            "description": "Attach the original IDFPR source row(s) for each record under sourceFields.",
            "default": true
          },
          "scanLimit": {
            "title": "Source-row scan limit",
            "minimum": 1000,
            "maximum": 300000,
            "type": "integer",
            "description": "Maximum number of source rows to scan before ranking (bounds run time on very large boards). Increase for exact ranking across an entire huge board; narrow your filters instead when possible.",
            "default": 30000
          },
          "monitorMode": {
            "title": "Monitor mode (only new / changed)",
            "type": "boolean",
            "description": "Remember licenses across runs and emit only NEW or CHANGED ones (status, expiration, last-modified or disciplinary change). Runs independently of Apify Schedules.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Namespace for monitor state so different saved searches track their own history. Use a short label (letters, numbers, hyphens).",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "The Illinois open-data API is clean; the default Apify proxy simply rotates IPs across pages. You can disable it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}