{
  "openapi": "3.0.1",
  "info": {
    "title": "UK HSE Asbestos Licence-Holder Portfolio Status Event Monitor",
    "description": "Watch UK HSE asbestos Licence Numbers against the official CONIAC disclosable licence-holder xlsx and emit typed APPEARED/DROPPED/ON_REGISTER/OFF_REGISTER (+ optional attribute) events. Not a national dump billed as rows; not VA contractor-lead twin.",
    "version": "0.1",
    "x-build-id": "KluwxK0Lub5P92CQ5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plym-actor-factory~uk-hse-asbestos-licence-holder-portfolio-status-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plym-actor-factory-uk-hse-asbestos-licence-holder-portfolio-status-monitor",
        "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/plym-actor-factory~uk-hse-asbestos-licence-holder-portfolio-status-monitor/runs": {
      "post": {
        "operationId": "runs-sync-plym-actor-factory-uk-hse-asbestos-licence-holder-portfolio-status-monitor",
        "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/plym-actor-factory~uk-hse-asbestos-licence-holder-portfolio-status-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-plym-actor-factory-uk-hse-asbestos-licence-holder-portfolio-status-monitor",
        "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": {
          "licenceNumbers": {
            "title": "HSE asbestos Licence Numbers (watchlist)",
            "type": "array",
            "description": "HSE asbestos Licence Numbers to monitor against the official CONIAC disclosable list (e.g. 082405279, 242606074, 132605625). Exact digit match after normalize (leading zeros significant). Invalid entries skipped with no charge. Not a national dump bill.",
            "default": [
              "082405279",
              "242606074",
              "132605625",
              "092505404"
            ],
            "items": {
              "type": "string"
            }
          },
          "licenseNumbers": {
            "title": "Licence Number alias (US spelling)",
            "type": "array",
            "description": "Optional alias for licenceNumbers — same keys, merged into the watchlist.",
            "items": {
              "type": "string"
            }
          },
          "licenceIds": {
            "title": "Licence ID alias (optional)",
            "type": "array",
            "description": "Optional alias for licenceNumbers.",
            "items": {
              "type": "string"
            }
          },
          "signalGroups": {
            "title": "Signal groups",
            "type": "array",
            "description": "Which change groups to evaluate: directory (APPEARED/DROPPED), status (LICENCE_ON_REGISTER / LICENCE_OFF_REGISTER), attributes (company / expiry / type / county). Default: directory+status.",
            "default": [
              "directory",
              "status"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxRunSeconds": {
            "title": "Max run seconds",
            "minimum": 5,
            "maximum": 900,
            "type": "integer",
            "description": "Wall-clock budget (CONIAC page + xlsx download/parse + diff).",
            "default": 180
          },
          "maxEvents": {
            "title": "Max delivered change events",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many unique change events are delivered (does not include RUN_STATUS).",
            "default": 500
          },
          "resumeFromCheckpoint": {
            "title": "Resume from stored checkpoint",
            "type": "boolean",
            "description": "If true, resume licence snapshots and seen event_uids from the default Key-Value Store.",
            "default": true
          },
          "sourceMode": {
            "title": "Source mode",
            "enum": [
              "fixture",
              "live"
            ],
            "type": "string",
            "description": "fixture = Store/CI health default (no network; RUN_STATUS only unless emitFixtureDemoEvents=true). live = CONIAC disclosable asbestos licence-holder xlsx (no API key; discovers current dated filename from resource page).",
            "default": "fixture"
          },
          "emitFixtureDemoEvents": {
            "title": "Emit fixture demo change events",
            "type": "boolean",
            "description": "When sourceMode=fixture, if true push fabricated change events from local fixtures. Default false so Store daily auto-tests never emit fake asbestos events or charge asbestos-licence-status-event-delivered.",
            "default": false
          },
          "asOfHint": {
            "title": "as_of hint (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional as_of label for events / RUN_STATUS. Defaults to CONIAC Date Posted / filename date when live."
          },
          "maxTotalChargeUsd": {
            "title": "Max total charge (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional soft budget hint for delivered change events."
          },
          "coniacResourceUrl": {
            "title": "CONIAC resource page override",
            "type": "string",
            "description": "Optional override for the CONIAC current-licensed-asbestos-contractors page used to discover the xlsx href."
          },
          "asbestosXlsxUrl": {
            "title": "Asbestos xlsx URL override",
            "type": "string",
            "description": "Optional direct disclosable xlsx URL (skips page discovery when set). Prefer leaving blank so the Actor follows CONIAC's current dated filename."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}