{
  "openapi": "3.0.1",
  "info": {
    "title": "Impressum Scraper - German Company Imprint (GmbH, HRB, VAT)",
    "description": "Impressum scraper for company websites in Germany, Austria and Switzerland: legal name and form (GmbH, UG, AG, KG), managing directors, HRB/HRA or FN register, VAT id and address from the legal imprint. $0.006 per company, only when found.",
    "version": "0.1",
    "x-build-id": "toqQrd1vgTSFMYurA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lukehunter~impressum-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lukehunter-impressum-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/lukehunter~impressum-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lukehunter-impressum-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/lukehunter~impressum-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lukehunter-impressum-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": {
          "websites": {
            "title": "Company websites (domains or URLs)",
            "type": "array",
            "description": "REQUIRED unless websitesFileUrl or datasetId is given. Company websites whose imprint (Impressum, Legal notice, Mentions légales, Note legali) to read, as domains or URLs, e.g. [\"heise.de\", \"https://www.example-firma.de\"]. One per line or a pasted column. De-duplicated by domain; up to 5,000 per run. Unusable entries are listed in INPUT_REPORT, never an error.",
            "items": {
              "type": "string"
            }
          },
          "websitesFileUrl": {
            "title": "Website list file URL (optional)",
            "type": "string",
            "description": "Optional https link to a public .csv or .txt file of company websites, e.g. \"https://example.com/companies.csv\" (a Google Sheets \"Publish to web\" CSV link, Dropbox shared link or GitHub Raw link works). Max 5 MB / 20,000 lines; every cell is read like an entry of the list above, and the result is merged and de-duplicated with it. Must open without signing in."
          },
          "datasetId": {
            "title": "Enrich a dataset: dataset ID (optional)",
            "type": "string",
            "description": "Optional. ID of an Apify dataset whose rows have a `website` field, typically a Google Maps Scraper run (defaultDatasetId), e.g. \"AbCdEf123456\". Each row's website is read for its imprint; `source` carries the row's fields (title, placeId ...) to join back. To chain, set it to {{resource.defaultDatasetId}} in the source Actor's Integrations tab. Up to 20,000 rows. Merged with Websites and the file URL."
          },
          "datasetWebsiteField": {
            "title": "Dataset: website column (optional)",
            "type": "string",
            "description": "Name of the dataset column holding the website, exactly as spelled, e.g. \"website\". Only used with a dataset. Leave empty to auto-detect (website, websiteUrl, web, url, domain, homepage, companyWebsite, company_website, site; the first non-empty wins). Google Maps, social network and marketplace links are never read as a website."
          },
          "datasetPassthroughFields": {
            "title": "Dataset: columns to copy into `source` (optional)",
            "type": "array",
            "description": "Optional, only with datasetId. Extra dataset columns to copy into each result's `source` object, e.g. [\"title\", \"placeId\"], max 15 columns. Leave empty for the common Google Maps columns (title, placeId, address, city, countryCode, phone, categoryName, totalScore, reviewsCount, url). Values are cut at 2,000 characters. datasetRow, sourceRowCount and otherRows are always added and reserved.",
            "items": {
              "type": "string"
            }
          },
          "outputFormat": {
            "title": "Output size: full or compact",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "\"full\" (default): every field. \"compact\": a much smaller row for AI agents, with only domain, status, legalName, legalForm, managingDirectors, registerCourt, registerNumber, vatId, a one-line address, phone, email and imprintUrl. Charging is identical in both formats. Example: \"compact\" when the result is read into an LLM context.",
            "default": "full"
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Page requests per website (home page included), integer 1-6, default 4. The imprint is nearly always the second or third page: first the links on the home page, then /impressum, /imprint, /legal-notice and the sitemap. Raise to 6 for sites with unusual imprint paths, e.g. 6. Each site is read at about one page per second.",
            "default": 4
          },
          "maxItems": {
            "title": "Maximum companies",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum companies to return, integer 1-5000, default 100. Also your cost cap: at most maxItems x $0.006, charged only for companies where a legal entity was found. For a quick test use 5 (e.g. maxItems 5). Sites with no imprint, blocked, unreachable or disallowed by robots.txt are delivered free and count toward the cap.",
            "default": 100
          },
          "onlyChangedSinceLastRun": {
            "title": "Only changed imprints (change mode)",
            "type": "boolean",
            "description": "true returns a company only if its legal data (name, directors, register, VAT id, address, contacts) changed since the previous scheduled run. Default false: a normal one-off run returns every company. Agents making one-off calls should leave it false. Example: run monthly on a Schedule with true; the first run delivers everything, later runs only changes (`changedFields`); unchanged companies are not charged.",
            "default": false
          },
          "stateStoreName": {
            "title": "Change mode: state store name",
            "type": "string",
            "description": "Only used when change mode is on. Name of the key-value store that remembers each company's last legal data between scheduled runs, e.g. \"company-imprint-scraper-state\". Letters, numbers and hyphens only. Leave the default unless several tasks need separate histories.",
            "default": "company-imprint-scraper-state"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}