{
  "openapi": "3.0.1",
  "info": {
    "title": "Companies House [$4💰] UK Companies, Directors, PSCs + Emails",
    "description": "Scrape UK Companies House: company profiles, directors, PSCs (owners), filing history, charges, overdue flags and a lead score. Search by keyword, SIC code, location or incorporation date, or paste company numbers. Optional confirmed website and email, director rows, new-company monitoring.",
    "version": "0.0",
    "x-build-id": "7j7UPLd3yQsXqHdvK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~companies-house-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-companies-house-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/memo23~companies-house-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-companies-house-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/memo23~companies-house-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-companies-house-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Words matched against the company name (e.g. 'packaging', 'solar', 'consulting'). Each keyword runs its own Companies House advanced search with the filters below. Leave empty to search on the filters alone. Example: [\"packaging\", \"solar\"]. Default: [\"packaging\"].",
            "items": {
              "type": "string"
            }
          },
          "companyNumbers": {
            "title": "Company numbers",
            "type": "array",
            "description": "Exact UK company numbers to fetch directly: 8 digits (00445790) or 2 letters + 6 digits (SC311560, NI036672, OC301540). Leading zeros lost in a spreadsheet are restored (445790 becomes 00445790). The fastest and cheapest input when you already have a list. Example: [\"00445790\", \"SC311560\"].",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Companies House URLs (optional)",
            "type": "array",
            "description": "Pages on find-and-update.company-information.service.gov.uk: company pages (/company/00445790), keyword search pages (/search/companies?q=solar) or advanced-search result pages (/advanced-search/get-results?...). Bare company numbers are accepted here too. Other hosts are skipped with a warning.",
            "items": {
              "type": "string"
            }
          },
          "companyNameExcludes": {
            "title": "Exclude company names containing",
            "type": "string",
            "description": "Drop companies whose name contains this text. Example: 'holdings'. Leave empty to keep all."
          },
          "status": {
            "title": "Company status",
            "type": "array",
            "description": "Keep only companies with these statuses. Allowed values: active, dissolved, open, closed, converted-closed, receivership, liquidation, administration, insolvency-proceedings, voluntary-arrangement. Unknown values are ignored. Example: [\"active\"]. Leave empty for every status.",
            "items": {
              "type": "string"
            }
          },
          "companyType": {
            "title": "Company type",
            "type": "array",
            "description": "Keep only these company types. Allowed values: ltd, plc, llp, limited-partnership, private-unlimited, old-public-company, private-limited-guarant-nsc, private-limited-guarant-nsc-limited-exemption, private-limited-shares-section-30-exemption, community-interest-company, royal-charter, other. Example: [\"ltd\"]. Leave empty for every type.",
            "items": {
              "type": "string"
            }
          },
          "sicCodes": {
            "title": "SIC codes (industry)",
            "type": "array",
            "description": "Keep only companies registered under these Standard Industrial Classification codes, 4 or 5 digits. A company matches when any of its codes is listed. Example: [\"62012\"] for business software development, [\"43220\"] for plumbing. Leave empty for every industry.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Registered office location",
            "type": "string",
            "description": "Keep only companies whose registered office address contains this text: a town, county or postcode. Example: 'Manchester' or 'EC1'. Leave empty for anywhere in the UK."
          },
          "incorporatedFrom": {
            "title": "Incorporated from (YYYY-MM-DD)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep only companies incorporated on or after this date, format YYYY-MM-DD. Example: '2026-01-01'. With monitoring mode on and a daily schedule, this gives a feed of new incorporations."
          },
          "incorporatedTo": {
            "title": "Incorporated to (YYYY-MM-DD)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep only companies incorporated on or before this date, format YYYY-MM-DD. Example: '2018-12-31'."
          },
          "dissolvedFrom": {
            "title": "Dissolved from (YYYY-MM-DD)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep only companies dissolved on or after this date, format YYYY-MM-DD. Combine with status 'dissolved'. Example: '2026-01-01'."
          },
          "dissolvedTo": {
            "title": "Dissolved to (YYYY-MM-DD)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep only companies dissolved on or before this date, format YYYY-MM-DD."
          },
          "includeOfficers": {
            "title": "Include officers (directors and secretaries)",
            "type": "boolean",
            "description": "Adds an `officers` array: name, officer id, role, active/resigned, appointed and resigned dates, month and year of birth, nationality, place of residence, correspondence address and identity-verification status. Also adds officer, director and resignation counts. Reads up to 'Officer pages per company' pages. Default: true.",
            "default": true
          },
          "maxOfficerPages": {
            "title": "Officer pages per company",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Companies House lists 35 officers per page, active officers first. 3 pages cover 105 appointments, which is every officer of almost any company. The register totals in `officersOnRegister` and `resignationsOnRegister` are always complete. Default: 3.",
            "default": 3
          },
          "includePscs": {
            "title": "Include persons with significant control (PSCs)",
            "type": "boolean",
            "description": "Adds a `pscs` array with the company's owners: individuals, corporate entities and legal persons, each with nature of control as text and as the register's codes (e.g. ownership-of-shares-75-to-100-percent), notified and ceased dates, identity-verification status, and for companies their legal form, governing law and registration number. PSC statements (e.g. 'no registrable person') are kept apart in `pscStatements`. Default: true.",
            "default": true
          },
          "includeFilingHistory": {
            "title": "Include filing history",
            "type": "boolean",
            "description": "Adds a `filingHistory` array (date, form type, description, PDF link, document id, page count) plus `lastFilingDate` and `lastFilingType`. Costs one extra page per 25 filings. Default: false.",
            "default": false
          },
          "maxFilings": {
            "title": "Filings per company",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "How many of the most recent filings to keep when filing history is on. Default: 25.",
            "default": 25
          },
          "includeCharges": {
            "title": "Include charges (mortgages and secured loans)",
            "type": "boolean",
            "description": "Adds a `charges` array (title, status, created, delivered and satisfied dates, persons entitled, particulars, link) and totals: charges registered, outstanding, satisfied and part satisfied. Only fetched for companies that have charges; `hasCharges` is on every row either way. Default: false.",
            "default": false
          },
          "emitOfficerRecords": {
            "title": "Also output one row per active officer",
            "type": "boolean",
            "description": "Adds a flat `type: \"officer\"` row for every active director and secretary, with the company's name, number, status, link, and its website and email when found. Ready for CRM import. These rows are billed per row. Needs 'Include officers' on. Default: false.",
            "default": false
          },
          "enrichEmails": {
            "title": "Find company website and contact email",
            "type": "boolean",
            "description": "For each active company, finds its own website and reads contact emails and phone numbers from it. A website is used only when it shows the company's registered number, its registered-office postcode or its full registered name, so a namesake's site never supplies an email. An unconfirmed site is reported in `websiteCandidate` with no email. Billed per confirmed email found, never for a miss. Best-effort: many small companies have no website. Default: false.",
            "default": false
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new companies)",
            "type": "boolean",
            "description": "Remembers every company this search has returned (in a named key-value store in your account, 'companies-house-monitoring') and outputs only companies not seen before. Companies already seen are skipped before they are fetched, so they cost nothing. Each distinct search (keywords, numbers and filters) keeps its own memory. Pair with a daily Apify schedule and an 'Incorporated from' date for a feed of new incorporations. Default: false.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum companies",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on company rows across all keywords and numbers. Officer rows do not count toward it. Use it to control cost. Default: 1000.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Companies processed in parallel. Default: 10.",
            "default": 10
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Minimum number of requests processed in parallel. Default: 1.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "type": "integer",
            "description": "Retries before a failed request is given up. Default: 5.",
            "default": 5
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Companies House is a public GOV.UK service reachable without a proxy. A UK residential proxy is the safe default for large runs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "GB"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}