{
  "openapi": "3.0.1",
  "info": {
    "title": "Handelsregister Scraper: German Company Register",
    "description": "Search the official German company register (handelsregister.de) by company name, keywords or register number. Returns registered name, legal form, court, register type and number, seat, status and former names. No officers, no sole traders, and never more than the portal's 60 requests an hour.",
    "version": "0.1",
    "x-build-id": "fhXf9iufYH6NE1izA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/enisbodlli~handelsregister-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-enisbodlli-handelsregister-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/enisbodlli~handelsregister-scraper/runs": {
      "post": {
        "operationId": "runs-sync-enisbodlli-handelsregister-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/enisbodlli~handelsregister-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-enisbodlli-handelsregister-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": {
          "queries": {
            "title": "Company names or keywords",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "One search per line: a company name such as \"Zalando SE\" or keywords such as \"Brauerei Bamberg\". Each line is searched once in the official register portal and returns up to \"Results per search\" companies. Repeated lines are searched once. Up to 1,000 lines per run; to stay inside the portal's hourly limit the Actor runs about 27 searches an hour, so a long list waits (see \"Requests per hour\"). Leave empty to look up a register number alone.",
            "items": {
              "type": "string"
            }
          },
          "searchMode": {
            "title": "How to match the words",
            "enum": [
              "allWords",
              "anyWord",
              "exactName"
            ],
            "type": "string",
            "description": "allWords: the registered name contains every word (the portal's default). anyWord: it contains at least one of the words. exactName: it is exactly this company name; use this to look up one company by its full registered name, legal form included.",
            "default": "allWords"
          },
          "maxResultsPerQuery": {
            "title": "Results per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "The most company records returned for one search, 1 to 100. The portal shows 10, 25, 50 or 100 matches per page and one search reads one page: the Actor asks for the smallest page that holds this number and keeps the first ones. Use 1 to get only the best match. The portal never lists more than 100 matches for a search.",
            "default": 10
          },
          "registerType": {
            "title": "Register type",
            "enum": [
              "all",
              "HRA",
              "HRB",
              "GnR",
              "PR",
              "VR",
              "GsR"
            ],
            "type": "string",
            "description": "Limit the search to one register. HRB: companies with share capital (GmbH, UG, AG, SE). HRA: partnerships (KG, OHG) and sole traders, which this Actor leaves out. GnR: cooperatives. PR: professional partnerships. VR: associations. GsR: registered civil-law partnerships (eGbR). Needed for a precise lookup by register number.",
            "default": "all"
          },
          "registerNumber": {
            "title": "Register number",
            "pattern": "^[0-9]{1,10}$",
            "type": "string",
            "description": "The number of the register entry, digits only, for example 158855 for \"HRB 158855\". Works without a company name: together with \"Register type\" and \"Register court\" it finds one entry. The same number exists at many courts, so a number alone can return several companies."
          },
          "registerCourt": {
            "title": "Register court",
            "maxLength": 100,
            "type": "string",
            "description": "The local court (Amtsgericht) that keeps the register, as the portal names it: for example \"München\", \"Köln\", \"Hamburg\" or \"Berlin (Charlottenburg)\". \"Berlin\" or \"Muenchen\" work too. A name the portal does not list stops the run before any request is sent, with the nearest names in the message."
          },
          "city": {
            "title": "Seat (city)",
            "maxLength": 30,
            "type": "string",
            "description": "Only companies whose registered seat or branch is in this place, for example \"Bamberg\". At most 30 characters, as in the portal's form."
          },
          "includeDeleted": {
            "title": "Include closed entries",
            "type": "boolean",
            "description": "Also return entries whose register sheet is closed (deleted companies and entries moved to another court). Their \"status\" is \"closed\". Off by default, as in the portal.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum records in total",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The run stops when this many company records are stored, and starts no further search. Protects against a long keyword list returning more than you want to pay for.",
            "default": 1000
          },
          "maxRequestsPerHour": {
            "title": "Requests per hour",
            "minimum": 10,
            "maximum": 60,
            "type": "integer",
            "description": "The terms of handelsregister.de allow at most 60 searches or company retrievals an hour. The Actor is stricter and counts every request it sends over a rolling hour, waits when this number is reached and says so in the status message. One search is two requests, so the default of 55 gives about 27 searches an hour. Lower it when other runs of yours use the portal in the same hour. It cannot be set above 60.",
            "default": 55
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}