{
  "openapi": "3.0.1",
  "info": {
    "title": "Zefix Switzerland Company Search Scraper",
    "description": "Search zefix.ch - the Swiss Central Business Names Index (Zentraler Firmenindex). Find companies by name, UID/CHE number, or FCRO-ID, and get legal form, registered address, canton, status, SOGC/SHAB publication history, auditors, branches, and merger history.",
    "version": "1.0",
    "x-build-id": "BSDOrETlemkgKxwKm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~zefix-company-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-zefix-company-search-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/crawlerbros~zefix-company-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-zefix-company-search-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/crawlerbros~zefix-company-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-zefix-company-search-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byUid",
              "byEhraid"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Company name (mode=search)",
            "type": "string",
            "description": "Free-text company name query.",
            "default": "Nestle"
          },
          "searchType": {
            "title": "Search type (mode=search)",
            "enum": [
              "contains",
              "starts",
              "exact"
            ],
            "type": "string",
            "description": "How the company name query is matched.",
            "default": "contains"
          },
          "uids": {
            "title": "UIDs / CHE numbers (mode=byUid)",
            "type": "array",
            "description": "Swiss business identification numbers, e.g. `CHE-191.546.434` or `CHE191546434`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "ehraids": {
            "title": "FCRO-IDs / EHRAIDs (mode=byEhraid)",
            "type": "array",
            "description": "Zefix internal firm IDs (FCRO-ID / EHRAID), e.g. `1009345`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "legalFormIds": {
            "title": "Legal form filter (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict search results to one or more legal forms. Empty = no filter. Applied client-side after fetching results.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16",
                "17",
                "18"
              ],
              "enumTitles": [
                "Sole proprietorship (SP)",
                "General Partnership (GP)",
                "Corporation (Ltd)",
                "Limited Liability Company (LLC)",
                "Cooperative (Coop)",
                "Association (Asso)",
                "Foundation (Found)",
                "Public sector institution (PSI)",
                "Branch (Bran)",
                "Limited Partnership (LP)",
                "Foreign branch (FB)",
                "Corporation with unlimited partners (CUP)",
                "Special legal form (SPEC)",
                "Ownership in undivided shares (OUS)",
                "Limited Partnership for collective investment schemes with a fixed capital (SICAF)",
                "Limited Partnership for collective investment schemes with a variable capital (SICAV)",
                "Limited Partnership for collective investment schemes (LPCI)",
                "Non commercial power of attorney (PNC)"
              ]
            },
            "default": []
          },
          "cantons": {
            "title": "Canton filter (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict search results to one or more cantons (registry office). Empty = no filter. Applied client-side after fetching results.",
            "items": {
              "type": "string",
              "enum": [
                "AG",
                "AI",
                "AR",
                "BE",
                "BL",
                "BS",
                "FR",
                "GE",
                "GL",
                "GR",
                "JU",
                "LU",
                "NE",
                "NW",
                "OW",
                "SG",
                "SH",
                "SO",
                "SZ",
                "TG",
                "TI",
                "UR",
                "VD",
                "VS",
                "ZG",
                "ZH"
              ],
              "enumTitles": [
                "AG — Aargau",
                "AI — Appenzell Innerrhoden",
                "AR — Appenzell Ausserrhoden",
                "BE — Bern",
                "BL — Basel-Landschaft",
                "BS — Basel-Stadt",
                "FR — Freiburg",
                "GE — Geneva",
                "GL — Glarus",
                "GR — Graubünden",
                "JU — Jura",
                "LU — Luzern",
                "NE — Neuchâtel",
                "NW — Nidwalden",
                "OW — Obwalden",
                "SG — St. Gallen",
                "SH — Schaffhausen",
                "SO — Solothurn",
                "SZ — Schwyz",
                "TG — Thurgau",
                "TI — Ticino",
                "UR — Uri",
                "VD — Vaud",
                "VS — Valais",
                "ZG — Zug",
                "ZH — Zürich"
              ]
            },
            "default": []
          },
          "statuses": {
            "title": "Status filter (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict search results to one or more registration statuses. Empty = no filter. Note: Zefix's name-search index only covers active (EXISTIEREND) and in-liquidation (IN_AUFLOESUNG) companies — deleted (GELOESCHT) companies never appear via name search and can only be retrieved directly via mode=byUid or mode=byEhraid.",
            "items": {
              "type": "string",
              "enum": [
                "EXISTIEREND",
                "GELOESCHT",
                "IN_AUFLOESUNG"
              ],
              "enumTitles": [
                "Active",
                "Deleted",
                "In liquidation"
              ]
            },
            "default": []
          },
          "legalSeatQuery": {
            "title": "Municipality / legal seat filter (mode=search)",
            "type": "string",
            "description": "Restrict search results to companies whose registered municipality (legal seat) contains this text, e.g. `Zurich` or `Genève`. Case-insensitive; accented and unaccented forms both match. Empty = no filter. Applied client-side after fetching results.",
            "default": ""
          },
          "includeFullDetails": {
            "title": "Include full company details (mode=search)",
            "type": "boolean",
            "description": "Fetch the full detail record (address, purpose, auditors, branches, SOGC/SHAB publication history) for each matched company. Slower (1 extra request per result) but much richer output. byUid and byEhraid modes always return full details.",
            "default": false
          },
          "shabPublicationLimit": {
            "title": "Max SOGC/SHAB publications per company",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many of the most recent SOGC/SHAB (Swiss Official Gazette of Commerce) publications to include per company, when full details are fetched. Only applies to records with detail data (byUid, byEhraid, or search with includeFullDetails=true).",
            "default": 30
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}