{
  "openapi": "3.0.1",
  "info": {
    "title": "Illinois PERC Card & Security Guard License Verification",
    "description": "Verify Illinois PERC cards, security guard registrations, private detective and locksmith licenses in bulk. 258,869 credentials from the official IDFPR Detective Board roster, including firearm control cards. License expiration dates and renewal windows for security hiring.",
    "version": "1.0",
    "x-build-id": "EmuIfXsdmAs4C7TaW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kempdata~il-security-detective-licenses/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kempdata-il-security-detective-licenses",
        "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/kempdata~il-security-detective-licenses/runs": {
      "post": {
        "operationId": "runs-sync-kempdata-il-security-detective-licenses",
        "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/kempdata~il-security-detective-licenses/run-sync": {
      "post": {
        "operationId": "run-sync-kempdata-il-security-detective-licenses",
        "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": {
          "categories": {
            "title": "License categories",
            "type": "array",
            "description": "Which Detective Board license categories to include. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "PERMANENT EMPLOYEE REGISTRATION",
                "FIREARM CONTROL CARD",
                "LICENSED PRIVATE DETECTIVE",
                "LICENSED PRIVATE DETECTIVE AGENCY",
                "LICENSED PRIVATE SECURITY CONTRACTOR",
                "LICENSED PRIVATE SECURITY CONTRACTOR AGENCY",
                "LICENSED PRIVATE ALARM CONTRACTOR",
                "LICENSED PRIVATE ALARM CONTRACTOR AGENCY",
                "LICENSED LOCKSMITH",
                "LICENSED LOCKSMITH AGENCY",
                "LICENSED FINGERPRINT VENDOR",
                "REGISTERED FIREARM INSTRUCTOR",
                "CANINE HANDLER AUTHORIZATION CARD"
              ]
            },
            "default": []
          },
          "recordFilter": {
            "title": "Record filter",
            "enum": [
              "all",
              "expiringSoon",
              "newLicenses"
            ],
            "type": "string",
            "description": "\"Expiring soon\" = licenses coming up for renewal. \"New licenses\" = recently issued (new guards, new agencies - fresh prospects for recruiters and suppliers).",
            "default": "all"
          },
          "expiringWithinMonths": {
            "title": "\"Expiring soon\" window (months)",
            "minimum": 1,
            "maximum": 36,
            "type": "integer",
            "description": "For the expiring-soon filter: include licenses that expire within this many months.",
            "default": 6
          },
          "newWithinMonths": {
            "title": "\"New license\" window (months)",
            "minimum": 1,
            "maximum": 36,
            "type": "integer",
            "description": "For the new-licenses filter: include licenses first issued within this many months.",
            "default": 6
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Limit to one Illinois city (e.g. CHICAGO). Leave empty for statewide.",
            "default": ""
          },
          "includeBusinesses": {
            "title": "Include agencies & businesses",
            "type": "boolean",
            "description": "Include agency/business records in the results.",
            "default": true
          },
          "includeIndividuals": {
            "title": "Include individuals",
            "type": "boolean",
            "description": "Include individual license records in the results.",
            "default": true
          },
          "onlyActive": {
            "title": "Active licenses only",
            "type": "boolean",
            "description": "Skip expired, lapsed, and revoked licenses.",
            "default": true
          },
          "maxRecords": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Stop after this many results. You are only charged for records actually returned.",
            "default": 1000
          },
          "socrataAppToken": {
            "title": "Socrata app token (optional)",
            "type": "string",
            "description": "Optional app token for the state open-data API. Not required for normal use."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}