{
  "openapi": "3.0.1",
  "info": {
    "title": "wlw.de Supplier Scraper — Phone, VAT ID & Contacts (DACH)",
    "description": "Industrial suppliers from wlw.de (Wer liefert was) by German product keyword: phone, website, address, VAT id, named contact persons, employee band, founding year, supplier type, certificates, products. Filter by DE/AT/CH, city, type. Deduped on wlw's id. $1.10 per 1,000 suppliers.",
    "version": "0.1",
    "x-build-id": "ztDHXLPkzFCO5xxpC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~wlw-supplier-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-wlw-supplier-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/scrapersdelight~wlw-supplier-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-wlw-supplier-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/scrapersdelight~wlw-supplier-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-wlw-supplier-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": {
          "keywords": {
            "title": "Product keywords (German)",
            "type": "array",
            "description": "What the suppliers make, sell or do — in German, as a buyer types it on wlw.de: \"CNC-Fräsen\", \"Schrauben\", \"Metallbau\", \"Drehteile\", \"Verpackungsmaschinen\", \"Kunststoffspritzguss\". Each keyword is one wlw search. Spaces are fine.",
            "default": [
              "CNC-Fräsen"
            ],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Supplier country (optional)",
            "type": "array",
            "description": "Only suppliers located in these countries: DE (Germany), AT (Austria), CH (Switzerland). Leave empty for every supplier wlw lists for the keyword (mostly DACH, a few elsewhere). Each country is its own wlw search.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "CH"
              ],
              "enumTitles": [
                "Germany",
                "Austria",
                "Switzerland"
              ]
            },
            "default": []
          },
          "supplierTypes": {
            "title": "Supplier type (optional)",
            "type": "array",
            "description": "Only suppliers of these types, using wlw's own filter (wlw labels in brackets): production (Hersteller/Fabrikant), customer_specific_manufacturing (Kundenspezifische Fertigung), distribution (Lieferant), service (Dienstleister), wholesaler (Großhändler). Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "production",
                "customer_specific_manufacturing",
                "distribution",
                "service",
                "wholesaler"
              ],
              "enumTitles": [
                "Hersteller/Fabrikant (manufacturer)",
                "Kundenspezifische Fertigung (custom manufacturing)",
                "Lieferant (supplier)",
                "Dienstleister (service provider)",
                "Großhändler (wholesaler)"
              ]
            },
            "default": []
          },
          "city": {
            "title": "City (optional)",
            "type": "string",
            "description": "Suppliers in and around one city, as wlw's own city pages do (e.g. \"München\", \"Bremen\", \"Stuttgart\"). wlw includes neighbouring towns within its own radius. Leave empty for the whole area."
          },
          "startUrls": {
            "title": "wlw URLs (optional)",
            "type": "array",
            "description": "Instead of (or as well as) keywords: wlw search pages copied from the browser (https://www.wlw.de/de/suche/schrauben/bremen, …/supplier-type/wholesaler, …/country/austria) or single supplier profiles (https://www.wlw.de/de/firma/<name>-<id>). wlw.at and wlw.ch URLs work too.",
            "items": {
              "type": "string"
            }
          },
          "employeeBands": {
            "title": "Employee band (optional)",
            "type": "array",
            "description": "Only suppliers whose wlw profile states one of these employee bands (Mitarbeiter). Suppliers that state no band are skipped when this is set. Applied to the rows wlw returns, so the search pages are still read.",
            "items": {
              "type": "string",
              "enum": [
                "1-4",
                "5-9",
                "10-19",
                "20-49",
                "50-99",
                "100-199",
                "200-499",
                "500-999",
                "1000+"
              ]
            },
            "default": []
          },
          "requirePhone": {
            "title": "Require a phone number",
            "type": "boolean",
            "description": "Deliver only suppliers that publish a phone number. Others are skipped and never charged.",
            "default": false
          },
          "requireWebsite": {
            "title": "Require a website",
            "type": "boolean",
            "description": "Deliver only suppliers that publish a website. Others are skipped and never charged.",
            "default": false
          },
          "includeProfileDetails": {
            "title": "Read each supplier's profile",
            "type": "boolean",
            "description": "On (default): also read each supplier's wlw profile for the VAT id (USt-IdNr.), certificates, named contact persons with their role, main business area, product categories and catalogue link. Off: search-page fields only (name, phone, website, address, employee band, founding year, supplier type, products) — faster.",
            "default": true
          },
          "maxResults": {
            "title": "Max suppliers",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many suppliers (you are charged per supplier delivered). 0 = no limit. wlw shows at most 3,000 suppliers per search; with 'Split large searches' on, bigger searches are split by country and supplier type to reach past that.",
            "default": 50
          },
          "splitLargeSearches": {
            "title": "Split large searches",
            "type": "boolean",
            "description": "When a search holds more than wlw's 3,000-row window and you asked for more rows than that, walk it per country (DE/AT/CH) and then per supplier type, de-duplicated on wlw's company id. Only used on very large pulls.",
            "default": true
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "How many wlw pages are read at the same time.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Default: Apify RESIDENTIAL proxy (Germany), a fresh IP per request. wlw's firewall blocks any single IP after about 20 page requests (CAPTCHA, then 403), so a rotating residential pool is what keeps a run going; without a proxy a run can read only ~18 pages.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "DE"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}