{
  "openapi": "3.0.1",
  "info": {
    "title": "Illinois Insurance License Lookup (NPN, NAIC SBS)",
    "description": "Bulk Illinois insurance producer & agency license verification via the NAIC SBS API. Paste or upload NPNs to check active status, license type, lines of authority & expiration dates — for appointment audits, E&O reviews & license monitoring. $0.005/record.",
    "version": "0.1",
    "x-build-id": "af8FJ1pYYCnTZFS1p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ws_tony~illinois-insurance-license/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ws_tony-illinois-insurance-license",
        "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/ws_tony~illinois-insurance-license/runs": {
      "post": {
        "operationId": "runs-sync-ws_tony-illinois-insurance-license",
        "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/ws_tony~illinois-insurance-license/run-sync": {
      "post": {
        "operationId": "run-sync-ws_tony-illinois-insurance-license",
        "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": [
          "jurisdiction"
        ],
        "properties": {
          "npnList": {
            "title": "NPN List (paste here — easiest)",
            "type": "string",
            "description": "Paste your NPN column straight from Excel or CSV — the header row and any non-numeric characters are stripped automatically, so no cleanup is needed. One NPN per line or comma-separated. NPNs are up to 10-digit numbers found on a producer's license certificate, on NIPR.com, or in your AMS. (Pre-filled with a sample Illinois NPN so you can run it right away — replace it with your own list.) 100 NPNs ≈ 60 seconds and ~$0.50. For very large or scheduled lists, use the Spreadsheet URL field below instead."
          },
          "npnFileUrl": {
            "title": "NPN Spreadsheet URL (optional — for large/scheduled lists)",
            "type": "string",
            "description": "Direct download URL to a CSV or Excel file (.csv, .xlsx, .xls) containing your producer NPNs. The actor auto-detects any column named NPN, National Producer Number, or Producer NPN (case-insensitive). Works with Google Sheets (File → Share → Publish to web → CSV), Dropbox (change ?dl=0 to ?dl=1 in your share link), or any publicly accessible file URL. NPNs from the file are combined with any NPNs typed in the NPN List field above."
          },
          "entityType": {
            "title": "Entity Type",
            "enum": [
              "IND",
              "BUS",
              "BOTH"
            ],
            "type": "string",
            "description": "Whose licenses to look up. Individual = producers. Business / Agency = agency licensees. Both = checks every NPN as an individual AND as an agency in a single run — use this if your list mixes producers and agencies, or if you're not sure which an NPN is. Individuals and agencies share the same NPN, so no separate list is needed. Note: Both makes two lookups per NPN, so it can cost up to 2× per NPN (you are only charged for records actually returned).",
            "default": "IND"
          },
          "activeOnly": {
            "title": "Active licenses only",
            "type": "boolean",
            "description": "When checked, only records with an Active license status are returned. Expired, Inactive, Terminated, Cancelled, and Surrendered licenses are excluded. Recommended for most compliance workflows. Turn off only if you need a full license history. Note: NOT FOUND and QUERY FAILED sentinel records are always included regardless of this setting — they represent verification outcomes, not license statuses.",
            "default": true
          },
          "lastName": {
            "title": "Last Name (single lookup)",
            "type": "string",
            "description": "Search by last name instead of NPN. The API returns at most 25 results per name search — use NPN List above for bulk verification."
          },
          "firstName": {
            "title": "First Name",
            "type": "string",
            "description": "Optional. Narrows a last-name search."
          },
          "licenseNumber": {
            "title": "License Number",
            "type": "string",
            "description": "Optional. Direct lookup by state license number."
          },
          "jurisdiction": {
            "title": "State (Jurisdiction)",
            "enum": [
              "AL",
              "AK",
              "AR",
              "CT",
              "DC",
              "ID",
              "IL",
              "IA",
              "KS",
              "MO",
              "MT",
              "NH",
              "NJ",
              "NM",
              "NC",
              "ND",
              "OK",
              "OR",
              "RI",
              "SD",
              "TN",
              "VT",
              "WV",
              "WI"
            ],
            "type": "string",
            "description": "Two-letter state code. Pre-filled for this actor's state. Each state in this portfolio has its own dedicated actor — if you need a different state, find that state's actor on the Apify Store instead of changing this field.",
            "default": "IL"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}