{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Companies House Scraper",
    "description": "Stream the full UK Companies House data snapshot and filter 5M+ companies by SIC code, status, location, and incorporation date. Fast, free, server-side filtering at scale.",
    "version": "1.0",
    "x-build-id": "8fowy3BZuBOYTtfAw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~uk-companies-house-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-uk-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/parsebird~uk-companies-house-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-uk-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/parsebird~uk-companies-house-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-uk-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": {
          "snapshotMonth": {
            "title": "Snapshot month",
            "type": "string",
            "description": "Which monthly Companies House snapshot to use, format YYYY-MM. Leave blank to use the latest available snapshot. Companies House only keeps the current month's snapshot online — an older value throws an error listing which snapshot dates are actually available.",
            "default": ""
          },
          "companyStatuses": {
            "title": "Company status",
            "type": "array",
            "description": "Keep only companies with these statuses (exact values used by Companies House — this snapshot only contains companies still on the register, so there is no 'Dissolved' status). 'Active' is almost always the right choice for lead generation. Leave empty to include every status.",
            "items": {
              "type": "string",
              "enum": [
                "Active",
                "Active - Proposal to Strike off",
                "Liquidation",
                "In Administration",
                "Live but Receiver Manager on at least one charge",
                "Voluntary Arrangement",
                "In Administration/Administrative Receiver",
                "RECEIVERSHIP",
                "ADMINISTRATION ORDER",
                "ADMINISTRATIVE RECEIVER",
                "In Administration/Receiver Manager"
              ],
              "enumTitles": [
                "Active",
                "Active - Proposal to Strike off",
                "Liquidation",
                "In Administration",
                "Live but Receiver Manager on at least one charge",
                "Voluntary Arrangement",
                "In Administration/Administrative Receiver",
                "Receivership",
                "Administration order",
                "Administrative receiver",
                "In Administration/Receiver Manager"
              ]
            },
            "default": [
              "Active"
            ]
          },
          "companyCategories": {
            "title": "Company type",
            "type": "array",
            "description": "Keep only these legal entity types (exact values used by Companies House). Leave empty to include every type.",
            "items": {
              "type": "string",
              "enum": [
                "Private Limited Company",
                "PRI/LTD BY GUAR/NSC (Private, limited by guarantee, no share capital)",
                "Limited Partnership",
                "Limited Liability Partnership",
                "Community Interest Company",
                "Charitable Incorporated Organisation",
                "PRI/LBG/NSC (Private, Limited by guarantee, no share capital, use of 'Limited' exemption)",
                "Overseas Entity",
                "Other company type",
                "Registered Society",
                "Scottish Charitable Incorporated Organisation",
                "Private Unlimited Company",
                "Public Limited Company",
                "Royal Charter Company",
                "Investment Company with Variable Capital",
                "United Kingdom Economic Interest Grouping",
                "Scottish Partnership",
                "Industrial and Provident Society",
                "Private Unlimited",
                "Investment Company with Variable Capital(Umbrella)"
              ],
              "enumTitles": [
                "Private Limited Company (Ltd)",
                "Private, limited by guarantee, no share capital",
                "Limited Partnership",
                "Limited Liability Partnership (LLP)",
                "Community Interest Company (CIC)",
                "Charitable Incorporated Organisation",
                "Private, limited by guarantee (Limited exemption)",
                "Overseas Entity",
                "Other company type",
                "Registered Society",
                "Scottish Charitable Incorporated Organisation",
                "Private Unlimited Company",
                "Public Limited Company (PLC)",
                "Royal Charter Company",
                "Investment Company with Variable Capital",
                "United Kingdom Economic Interest Grouping",
                "Scottish Partnership",
                "Industrial and Provident Society",
                "Private Unlimited",
                "Investment Company with Variable Capital (Umbrella)"
              ]
            },
            "default": []
          },
          "sicCodePrefixes": {
            "title": "SIC code prefixes",
            "type": "array",
            "description": "Filter by SIC industry code prefix, matched against the numeric start of each company's SIC codes (up to 4 per company). Multiple values are OR-ed, e.g. [\"62\", \"63\"] for IT and information services. Leave empty to skip. See the README for a full prefix reference.",
            "items": {
              "type": "string"
            }
          },
          "sicKeywords": {
            "title": "SIC keywords",
            "type": "array",
            "description": "Case-insensitive substring match against the SIC description text (e.g. 'software', 'consulting'). Multiple values are OR-ed. Combines with SIC code prefixes using AND logic. Leave empty to skip.",
            "items": {
              "type": "string"
            }
          },
          "nameContains": {
            "title": "Company name contains",
            "type": "string",
            "description": "Case-insensitive substring match on the registered company name, e.g. 'TECH' or 'GROUP'. Leave blank to include all names.",
            "default": ""
          },
          "postCodePrefixes": {
            "title": "Postcode prefixes",
            "type": "array",
            "description": "Filter by UK postcode outward-code prefix, e.g. [\"EC\", \"SW1\"] for parts of London, or [\"M\"] for all of Manchester. Multiple values are OR-ed. Leave empty to skip.",
            "items": {
              "type": "string"
            }
          },
          "postTowns": {
            "title": "Post towns",
            "type": "array",
            "description": "Exact (case-insensitive) match on the registered post town, e.g. [\"LONDON\"] or [\"MANCHESTER\", \"SALFORD\"]. Leave empty to skip.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "Case-insensitive substring match on the registered county, e.g. [\"GREATER LONDON\"]. Leave empty to skip.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Case-insensitive substring match on the registered country: England, Scotland, Wales, or Northern Ireland. Leave empty to skip.",
            "items": {
              "type": "string"
            }
          },
          "incorporatedSince": {
            "title": "Incorporated on or after",
            "type": "string",
            "description": "Only keep companies incorporated on or after this date, format YYYY-MM-DD. Useful for finding new businesses. Leave blank for no lower bound.",
            "default": ""
          },
          "incorporatedBefore": {
            "title": "Incorporated on or before",
            "type": "string",
            "description": "Only keep companies incorporated on or before this date, format YYYY-MM-DD. Useful for finding established businesses. Leave blank for no upper bound.",
            "default": ""
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Stop once this many matching companies have been saved. The actor still has to scan the snapshot from the start, so a low value here also makes the run finish faster. Set to 0 to scan the full snapshot and save every match (can be 3,000,000+ rows with no filters — expect 15-25 minutes).",
            "default": 0
          },
          "logEveryNRows": {
            "title": "Log progress every N rows",
            "minimum": 1000,
            "maximum": 1000000,
            "type": "integer",
            "description": "How often (in CSV rows scanned) to log progress to the run console. The snapshot has 5M+ rows; lower values give more frequent updates but noisier logs.",
            "default": 100000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}