{
  "openapi": "3.0.1",
  "info": {
    "title": "German Impressum & Imprint Scraper",
    "description": "Fast, automated scraper to find and extract Impressum (legal notice & imprint) data from German websites. Extracts company names, decision-makers (Geschäftsführer), addresses, emails, phones, Handelsregister numbers (HRB), tax IDs, and social links with AI or Regex.",
    "version": "0.0",
    "x-build-id": "c8vPZwbzwGPZZFlkN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/codescraper~german-imprint-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-codescraper-german-imprint-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/codescraper~german-imprint-scraper/runs": {
      "post": {
        "operationId": "runs-sync-codescraper-german-imprint-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/codescraper~german-imprint-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-codescraper-german-imprint-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "🌐 Website URLs",
            "type": "array",
            "description": "Add one website per line. Any format works: <code>marley.de</code>, <code>www.marley.de</code>, <code>https://www.marley.de</code>. The URL is shown in the results exactly as you entered it.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "enableAi": {
            "title": "🤖 Enable AI extraction (Premium)",
            "type": "boolean",
            "description": "Use AI to read the Impressum like a human for cleaner, more accurate results (names, roles, addresses). Only the Impressum part of the page is analysed. If the AI is unavailable, the scraper automatically falls back to Regex extraction and you are charged the cheaper Regex price.",
            "default": false
          },
          "aiModel": {
            "title": "🧠 AI model",
            "enum": [
              "openai/gpt-oss-20b",
              "openai/gpt-oss-120b",
              "qwen/qwen3.8-27b"
            ],
            "type": "string",
            "description": "Model used when AI extraction is enabled. The default is the best balance of speed, accuracy and reliability for Impressum data.",
            "default": "openai/gpt-oss-20b"
          },
          "socialPlatforms": {
            "title": "Social Platforms to Extract",
            "uniqueItems": true,
            "type": "array",
            "description": "Select the social media channels you want to extract. Both DACH platforms (Xing, Kununu) and international networks are supported.",
            "items": {
              "type": "string",
              "enum": [
                "facebook",
                "x",
                "linkedin",
                "xing",
                "instagram",
                "youtube",
                "tiktok",
                "whatsapp",
                "telegram",
                "threads",
                "pinterest",
                "github",
                "discord",
                "bluesky"
              ],
              "enumTitles": [
                "Facebook",
                "Twitter (X)",
                "LinkedIn",
                "XING / Kununu",
                "Instagram",
                "YouTube",
                "TikTok",
                "WhatsApp",
                "Telegram",
                "Threads",
                "Pinterest",
                "GitHub",
                "Discord",
                "Bluesky"
              ]
            },
            "default": [
              "facebook",
              "instagram",
              "linkedin",
              "youtube",
              "tiktok",
              "x"
            ]
          },
          "excludeMainUrl": {
            "title": "Exclude Main URL",
            "type": "boolean",
            "description": "Remove the website URL you entered from the output."
          },
          "excludeImpressumUrl": {
            "title": "Exclude Impressum URL",
            "type": "boolean",
            "description": "Remove the URL of the Impressum page from the output."
          },
          "excludeAddress": {
            "title": "Exclude Address",
            "type": "boolean",
            "description": "Remove the full address and its parts (street, house number, postal code, city, country)."
          },
          "excludePhones": {
            "title": "Exclude Phones",
            "type": "boolean",
            "description": "Remove phone numbers."
          },
          "excludeEmails": {
            "title": "Exclude Emails",
            "type": "boolean",
            "description": "Remove email addresses."
          },
          "excludeDecisionMaker": {
            "title": "Exclude Decision Maker",
            "type": "boolean",
            "description": "Remove decision maker name and role (Geschäftsführer, Inhaber, Vorstand …)."
          },
          "excludeRegisterNumber": {
            "title": "Exclude Register Number",
            "type": "boolean",
            "description": "Remove the Handelsregister number (e.g. HRB 12345)."
          },
          "excludeRegisterCourt": {
            "title": "Exclude Register Court",
            "type": "boolean",
            "description": "Remove the register court (e.g. Amtsgericht München)."
          },
          "excludeTaxId": {
            "title": "Exclude Tax ID",
            "type": "boolean",
            "description": "Remove the VAT ID (Umsatzsteuer-ID)."
          },
          "excludeSocial": {
            "title": "Exclude All Social Links",
            "type": "boolean",
            "description": "Remove all extracted social media links completely."
          },
          "excludeMeta": {
            "title": "Exclude Meta Title / Description",
            "type": "boolean",
            "description": "Remove the page meta title and meta description."
          },
          "maxConcurrency": {
            "title": "⚡ Max parallel browsers",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "How many websites are processed at the same time. Leave the default unless you know what you are doing.",
            "default": 40
          },
          "userAgent": {
            "title": "🕵️ Custom User-Agent",
            "type": "string",
            "description": "Optional. Browser user-agent string used for requests.",
            "default": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}