{
  "openapi": "3.0.1",
  "info": {
    "title": "Firmy.cz Business Directory Scraper",
    "description": "Scrape Firmy.cz, the leading Czech business directory. Search by keyword, browse by category and region, or fetch business detail pages directly. Get name, address, phone, email, website, opening hours, IČO, rating and more - no login required.",
    "version": "1.0",
    "x-build-id": "KT5dlXYBCcklA8bJ8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~firmy-cz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-firmy-cz-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~firmy-cz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-firmy-cz-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~firmy-cz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-firmy-cz-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",
              "byCategory",
              "byUrl"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Free-text keyword, e.g. business name, trade, or service (\"instalater\", \"restaurace Praha\", \"kadeřnictví\").",
            "default": "instalater"
          },
          "city": {
            "title": "City filter",
            "type": "string",
            "description": "Only keep results whose address/city/district contains this text (case- and diacritics-insensitive), e.g. `Praha`, `Brno`, `Plzeň`, `České Budějovice`. Works with any mode."
          },
          "category": {
            "title": "Category (mode=byCategory)",
            "type": "string",
            "description": "A Firmy.cz category path. Type any category path you find while browsing the site (e.g. `Remesla-a-sluzby/Astrologicke-sluzby`), or copy one of the 41 curated examples below into the field.\n\nCurated examples:\n`Remesla-a-sluzby/Remesla/Instalaterstvi-a-topenarstvi/Instalaterstvi` (Instalatérství a topenářství), `Remesla-a-sluzby/Remesla/Servisy-a-opravarstvi` (Servisy a opravárenství), `Remesla-a-sluzby/Stavebni-sluzby` (Stavební služby), `Remesla-a-sluzby/Reality` (Reality), `Remesla-a-sluzby/Pravni-sluzby` (Právní služby), `Remesla-a-sluzby/Sluzby-pece-o-telo` (Péče o tělo), `Remesla-a-sluzby/Pocitacove-a-internetove-sluzby` (Počítačové a internetové služby), `Remesla-a-sluzby/Uklidove-a-cistici-sluzby` (Úklidové a čisticí služby), `Remesla-a-sluzby/Bezpecnostni-sluzby` (Bezpečnostní služby), `Remesla-a-sluzby/Fotograficke-sluzby` (Fotografické služby), `Remesla-a-sluzby/Vyukove-sluzby` (Výukové služby), `Remesla-a-sluzby/Krejcovske-a-strihove-sluzby` (Krejčovské a střihové služby), `Remesla-a-sluzby/Jazykove-sluzby` (Jazykové služby), `Remesla-a-sluzby/Pujcovny` (Půjčovny), `Restauracni-a-pohostinske-sluzby/Restaurace` (Restaurace), `Restauracni-a-pohostinske-sluzby/Hospody-a-hostince` (Hospody a hostince), `Restauracni-a-pohostinske-sluzby/Kavarny` (Kavárny), `Restauracni-a-pohostinske-sluzby/Rychla-obcerstveni` (Rychlé občerstvení), `Restauracni-a-pohostinske-sluzby/Cukrarny` (Cukrárny), `Restauracni-a-pohostinske-sluzby/Bary` (Bary), `Restauracni-a-pohostinske-sluzby/Vinarny` (Vinárny), `Restauracni-a-pohostinske-sluzby/Hotelove-restaurace` (Hotelové restaurace), `Auto-moto/Auto-moto-sluzby` (Auto-moto služby), `Auto-moto/Auto-moto-prodejci` (Auto-moto prodejci), `Banky-a-financni-sluzby/Ucetni-sluzby` (Účetní služby), `Banky-a-financni-sluzby/Pojistovaci-sluzby` (Pojišťovací služby), `Banky-a-financni-sluzby/Bankovni-a-sporitelni-sluzby` (Bankovní a spořitelní služby), `Cestovni-sluzby/Cestovni-kancelare-a-agentury` (Cestovní kanceláře a agentury), `Cestovni-sluzby/Ubytovaci-sluzby` (Ubytovací služby), `Dum-byt-a-zahrada/Sluzby-pro-dum-byt-a-zahradu` (Služby pro dům, byt a zahradu), `Dum-byt-a-zahrada/Prodejci-vybaveni-domu` (Prodejci vybavení domu), `Obchody-a-obchudky/Prodejci-potravin` (Prodejci potravin), `Obchody-a-obchudky/Prodejci-textilu-odevu-a-obuvi` (Textil, oděvy a obuv), `Obchody-a-obchudky/Prodejci-drogerie` (Drogerie), `Obchody-a-obchudky/Prodejci-nabytku` (Nábytek), `Obchody-a-obchudky/Knihy-a-tiskoviny` (Knihy a tiskoviny), `Obchody-a-obchudky/Prodejci-klenotu-a-hodinek` (Klenoty a hodinky), `Prvni-pomoc-a-zdravotnictvi/Zdravotnicke-sluzby` (Zdravotnické služby), `Prvni-pomoc-a-zdravotnictvi/Prodejci-zdravotnickeho-zbozi-a-leciv` (Zdravotnické zboží a léčiva), `Elektro-mobily-a-pocitace/Prodejci-vypocetni-techniky` (Výpočetní technika), `Vse-pro-firmy/Sluzby-pro-firmy/Administrativni-sluzby` (Administrativní služby pro firmy), `Vse-pro-firmy/Sluzby-pro-firmy/Reklamni-a-marketingove-sluzby` (Reklamní a marketingové služby)",
            "default": "Restauracni-a-pohostinske-sluzby/Restaurace"
          },
          "region": {
            "title": "Region / kraj (mode=byCategory)",
            "enum": [
              "praha",
              "stredocesky",
              "jihocesky",
              "plzensky",
              "karlovarsky",
              "ustecky",
              "liberecky",
              "kralovehradecky",
              "pardubicky",
              "vysocina",
              "jihomoravsky",
              "olomoucky",
              "zlinsky",
              "moravskoslezsky"
            ],
            "type": "string",
            "description": "Restrict the category browse to one of the 14 Czech regions (kraje). Leave empty for nationwide."
          },
          "district": {
            "title": "District (mode=byCategory, requires region)",
            "type": "string",
            "description": "Optional district/city slug within the chosen region, e.g. `praha-1`, `brno-mesto`, `plzen-mesto`. Only applied when `region` is also set."
          },
          "urls": {
            "title": "Business detail URLs (mode=byUrl)",
            "type": "array",
            "description": "Full firmy.cz detail-page URLs, e.g. `https://www.firmy.cz/detail/12918549-a-k-servis-praha-stare-mesto.html`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword filter",
            "type": "string",
            "description": "Only keep results whose name, description, or categories contain this text (case- and diacritics-insensitive)."
          },
          "minRating": {
            "title": "Minimum rating (0-5)",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Drop businesses with a review rating below this value."
          },
          "openNowOnly": {
            "title": "Open now only",
            "type": "boolean",
            "description": "Only emit businesses currently marked as open on firmy.cz.",
            "default": false
          },
          "fetchDetails": {
            "title": "Fetch full detail page per business",
            "type": "boolean",
            "description": "For search/byCategory modes: visit each business's detail page to also collect email, IČO, per-day opening hours, and website. Slower (1 extra request per business).",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy settings. Leave empty to use no proxy — firmy.cz is publicly accessible without one. The actor automatically escalates to the free AUTO datacenter proxy group if it hits a 403/429."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}