{
  "openapi": "3.0.1",
  "info": {
    "title": "Companies House Alerts: Insolvency, Director & PSC Changes",
    "description": "Get alerted when a UK company on your list changes at Companies House: insolvency cases, director and PSC (beneficial owner) changes, new or satisfied charges, filings and status changes. For credit control, KYB and compliance teams. Needs your free Companies House Streaming API key.",
    "version": "0.1",
    "x-build-id": "Yp7dXbxsYyE8R2DpC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plym-actor-factory~uk-companies-house-realtime-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plym-actor-factory-uk-companies-house-realtime-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-companies-house-realtime-monitor/runs": {
      "post": {
        "operationId": "runs-sync-plym-actor-factory-uk-companies-house-realtime-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-companies-house-realtime-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-plym-actor-factory-uk-companies-house-realtime-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",
        "required": [
          "companyNumbers"
        ],
        "properties": {
          "companyNumbers": {
            "title": "Company numbers to watch (example IDs prefilled — replace with yours)",
            "type": "array",
            "description": "UK Companies House numbers to watch (spaces ignored; numeric padded to 8). Invalid entries are skipped with no charge.",
            "default": [
              "00000006",
              "SC123456"
            ],
            "items": {
              "type": "string"
            }
          },
          "streams": {
            "title": "Streams",
            "type": "array",
            "description": "Streaming API paths to catch up in this run. Allowed: companies, filings, officers, persons-with-significant-control, persons-with-significant-control-statements, charges, insolvency-cases. Default: all supported streams. Unknown names are rejected at runtime.",
            "default": [
              "companies",
              "filings",
              "officers",
              "persons-with-significant-control",
              "persons-with-significant-control-statements",
              "charges",
              "insolvency-cases"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxRunSeconds": {
            "title": "Max run seconds",
            "minimum": 5,
            "maximum": 300,
            "type": "integer",
            "description": "Wall-clock budget for this scheduled catch-up (Approach A). Prefer short runs (e.g. 45–90s) on a schedule.",
            "default": 55
          },
          "maxEvents": {
            "title": "Max delivered events",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many unique watchlist change events are delivered (does not include RUN_STATUS health rows).",
            "default": 500
          },
          "resumeFromStoredTimepoints": {
            "title": "Resume from stored timepoints",
            "type": "boolean",
            "description": "If true, resume each stream from the last successfully processed timepoint in the default Key-Value Store.",
            "default": true
          },
          "sourceMode": {
            "title": "Source mode (set to live for real data)",
            "enum": [
              "fixture",
              "live"
            ],
            "type": "string",
            "description": "fixture = local/CI / Apify Store daily auto-test default (no Streaming key; emits RUN_STATUS only unless emitFixtureDemoEvents=true). live = official Streaming API — production users must set this and provide companiesHouseStreamingApiKey.",
            "default": "fixture"
          },
          "emitFixtureDemoEvents": {
            "title": "Emit fixture demo change events",
            "type": "boolean",
            "description": "When sourceMode=fixture, if true push fabricated NDJSON change events (unit/local demos only). Default false so Store daily auto-tests never emit fake CH changes or charge change-event-delivered. Production: leave false and use sourceMode=live. SAMPLE rows only: demo events use placeholder entities (never real companies/IDs), are flagged sample=true / isSample=true, and are NEVER charged. To see them, set Source mode = fixture and put the placeholder IDs SAMPLE01, SAMPLE02 in the watchlist.",
            "default": false
          },
          "companiesHouseStreamingApiKey": {
            "title": "Companies House Streaming API key",
            "type": "string",
            "description": "Secret Streaming API key (Basic auth). NOT the REST API key. Never logged. Required only when sourceMode=live."
          },
          "maxTotalChargeUsd": {
            "title": "Max total charge (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional soft budget hint for delivered change events. Platform ACTOR_MAX_TOTAL_CHARGE_USD also applies when set."
          },
          "maxIdleHeartbeats": {
            "title": "Max idle heartbeats per stream",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Leave a stream after this many consecutive blank heartbeat lines with no data (within the run).",
            "default": 3
          },
          "stateKey": {
            "title": "State key (optional)",
            "type": "string",
            "description": "Optional label that pins this monitor's persistent baseline (named key-value store in YOUR Apify account). Leave empty to derive it automatically from the watchlist (and the saved task, if any), so different watchlists/tasks never share state. Set it (e.g. 'client-acme') if you want to edit the watchlist without re-baselining existing entries. The first live run for a new state key only stores the baseline: no change events, no product charge."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}