{
  "openapi": "3.0.1",
  "info": {
    "title": "North Data Scraper - EU Company Register, Officers & Financials",
    "description": "Scrape northdata.com for European company data: register court and number, LEI, EUID, officers, year-by-year revenue and earnings with their source filing, and the corporate network.",
    "version": "1.0",
    "x-build-id": "i7oirolRd7pfuWSHe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~northdata-company-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-northdata-company-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/sian.agency~northdata-company-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-northdata-company-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/sian.agency~northdata-company-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-northdata-company-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": {
          "operation": {
            "title": "🎯 What to run",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Company Search turns each name or keyword into register rows. Company Profile takes the North Data URLs you already have and returns the full dossier for each.",
            "default": "search"
          },
          "queries": {
            "title": "🔎 Company names or keywords",
            "type": "array",
            "description": "Names or keywords to search, one search per entry. A legal name matches best; a bare keyword matches company names, so 'Solar' returns companies with Solar in the name rather than every solar business. North Data returns at most 45 companies per query, so use several specific queries rather than one broad one.",
            "default": [
              "Bayerische Motoren Werke"
            ],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "🌍 Restrict to countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Limit the search to these countries. Leave empty to search all 26 North Data covers. A country-filtered search runs against North Data's country-aware index, which returns up to 15 companies per query and cannot be paged; an unfiltered search pages to North Data's free ceiling of 45. So filter when you want the right 15, and leave this empty when you want the widest net. Searching one country at a time returns a different 15 for each, which is how you get past either ceiling.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "GB",
                "FR",
                "AT",
                "CH",
                "NL",
                "BE",
                "LU",
                "IE",
                "DK",
                "NO",
                "SE",
                "FI",
                "EE",
                "LT",
                "PL",
                "CZ",
                "SK",
                "HR",
                "RO",
                "GR",
                "PT",
                "ES",
                "CY",
                "MT",
                "IL"
              ],
              "enumTitles": [
                "🇩🇪 Germany",
                "🇬🇧 United Kingdom",
                "🇫🇷 France",
                "🇦🇹 Austria",
                "🇨🇭 Switzerland",
                "🇳🇱 Netherlands",
                "🇧🇪 Belgium",
                "🇱🇺 Luxembourg",
                "🇮🇪 Ireland",
                "🇩🇰 Denmark",
                "🇳🇴 Norway",
                "🇸🇪 Sweden",
                "🇫🇮 Finland",
                "🇪🇪 Estonia",
                "🇱🇹 Lithuania",
                "🇵🇱 Poland",
                "🇨🇿 Czech Republic",
                "🇸🇰 Slovakia",
                "🇭🇷 Croatia",
                "🇷🇴 Romania",
                "🇬🇷 Greece",
                "🇵🇹 Portugal",
                "🇪🇸 Spain",
                "🇨🇾 Cyprus",
                "🇲🇹 Malta",
                "🇮🇱 Israel"
              ]
            },
            "default": []
          },
          "companyUrls": {
            "title": "🔗 North Data company URLs",
            "type": "array",
            "description": "Used by the Company Profile operation: North Data company page URLs to expand, e.g. https://www.northdata.com/Bayerische+Motoren+Werke+Aktiengesellschaft,+M%C3%BCnchen/HRB+42243. Copy them from a search run's northdataUrl column.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResults": {
            "title": "🔢 Max companies",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many companies across all queries. Each search call returns 15 rows and each query tops out at 45, so a run needs roughly one query per 45 companies you want.",
            "default": 50
          },
          "fetchProfiles": {
            "title": "🏛️ Expand each result to a full profile",
            "type": "boolean",
            "description": "Fetch every search hit's company page to add officers, the financial series, register events and publications. Costs one extra request per company and bills the Company Profile event on top of the search row. Leave it off to pay for identity rows only.",
            "default": false
          },
          "includeOfficers": {
            "title": "👔 Include officers",
            "type": "boolean",
            "description": "Return the managing directors, board members and other officers North Data publishes for the company, each with role, city and their own North Data person URL.",
            "default": true
          },
          "includeFinancials": {
            "title": "📊 Include financial series",
            "type": "boolean",
            "description": "Return the year-by-year revenue, earnings, public funding and patent counts, each figure tagged with the filing it came from, its publication date and whether North Data marked it an estimate. Only companies that publish accounts carry these.",
            "default": true
          },
          "includeEvents": {
            "title": "📅 Include register events",
            "type": "boolean",
            "description": "Return the dated register history: registration, capital changes, management changes, liquidation and insolvency entries, each with a link to the official source record.",
            "default": true
          },
          "includeNetwork": {
            "title": "🕸️ Include corporate network",
            "type": "boolean",
            "description": "Return the related companies and people North Data draws on the company's network graph — parent and subsidiary links with the ownership percentage where one is published, plus officer links. Adds one fast request per company and no extra charge.",
            "default": false
          },
          "includePublications": {
            "title": "📰 Include publications",
            "type": "boolean",
            "description": "Return the patent, trademark and register announcements North Data lists for the company, with dates and categories.",
            "default": false
          },
          "language": {
            "title": "🗣️ Output language",
            "enum": [
              "en",
              "de"
            ],
            "type": "string",
            "description": "Language North Data renders role names, event labels and financial metric names in. Register identifiers and numbers are the same in both.",
            "default": "en"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}