{
  "openapi": "3.0.1",
  "info": {
    "title": "Imenik.eu Croatia Business Directory Scraper",
    "description": "Scrape Imenik.eu, Croatia's business directory. Search by keyword, browse by city or category, list newest or most popular businesses, or fetch business detail pages directly. Get name, category, address, phone, email, website, rating, opening hours and more - no login required.",
    "version": "1.0",
    "x-build-id": "A0NYJQBzCAVei1k97"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~imenik-hr-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-imenik-hr-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~imenik-hr-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-imenik-hr-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~imenik-hr-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-imenik-hr-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",
              "byCity",
              "byCategory",
              "latest",
              "popular",
              "byUrl"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Free-text keyword — business name, trade, city, or service (e.g. \"marketing\", \"vodoinstalater\", \"zagreb\").",
            "default": "marketing"
          },
          "city": {
            "title": "City (mode=byCity only)",
            "enum": [
              "zagreb",
              "split",
              "rijeka",
              "osijek",
              "zadar",
              "velika-gorica",
              "slavonski-brod",
              "pula",
              "karlovac",
              "sisak",
              "varazdin",
              "sibenik",
              "dubrovnik",
              "bjelovar",
              "vinkovci",
              "vukovar",
              "koprivnica",
              "dakovo",
              "pozega",
              "virovitica",
              "cakovec",
              "zapresic",
              "samobor",
              "solin",
              "rovinj",
              "porec",
              "umag",
              "metkovic",
              "ploce",
              "makarska",
              "imotski",
              "sinj",
              "knin",
              "gospic",
              "otocac",
              "delnice",
              "krk",
              "cres",
              "trogir",
              "kastela",
              "opatija",
              "crikvenica",
              "novi-vinodolski",
              "ivanic-grad",
              "dugo-selo",
              "slatina",
              "durdevac",
              "kutina",
              "nova-gradiska",
              "vrbovec",
              "labin",
              "buje",
              "vodnjan",
              "vis",
              "hvar",
              "korcula",
              "supetar",
              "novska",
              "krizevci",
              "ludbreg",
              "kastav",
              "viskovo",
              "matulji",
              "donja-stubica",
              "krapina",
              "ozalj",
              "ogulin",
              "senj",
              "benkovac",
              "biograd-na-moru",
              "drnis",
              "vrgorac",
              "ston",
              "cavtat",
              "pag",
              "novalja",
              "cabar",
              "vrbovsko",
              "cazma",
              "garesnica",
              "daruvar",
              "grubisno-polje",
              "ilok",
              "zupanja",
              "otok",
              "pakrac",
              "lipik",
              "donji-miholjac"
            ],
            "type": "string",
            "description": "88 curated Croatian cities/towns confirmed live on imenik.eu. Only used to select which city's businesses to browse for mode=byCity -- it carries a schema default so the daily-test prefill always works, so it is intentionally NOT applied as a post-fetch filter on other modes (that would silently narrow every search/byCategory/latest/popular run to just this city even when never touched). To filter any mode (including byCity/byCategory) by city, use `cityFilter` below instead. Use `citySlug` below to target any of imenik.eu's ~3200 city/town slugs not listed here.",
            "default": "zagreb"
          },
          "citySlug": {
            "title": "Custom city slug override",
            "type": "string",
            "description": "Free-text override for `city` above — any imenik.eu city/town URL slug, e.g. `nin`, `vrsar`, `funtana` (find the exact slug by browsing imenik.eu/statistika or imenik.eu/grad/{slug}). Takes precedence over the `city` dropdown when non-empty."
          },
          "cityFilter": {
            "title": "City filter (all modes)",
            "type": "string",
            "description": "Optional post-fetch filter: only keep businesses located in this city/town (matches the business's own address, case- and diacritics-insensitive). Independent of `city`/`citySlug` above — leave blank for no city restriction. Works with every mode, including mode=byCity/byCategory for a further narrowed result."
          },
          "category": {
            "title": "Category (mode=byCategory only)",
            "enum": [
              "vodoinstalater",
              "frizer",
              "restoran",
              "servis",
              "gradevinarstvo",
              "arhitektura",
              "graficki-dizajn",
              "dizajn-interijera",
              "uredenje-interijera",
              "racunalno-programiranje",
              "web-hosting",
              "ai-alati",
              "3d-vizualizacije",
              "fotografske-djelatnosti",
              "audiovizualne-djelatnosti",
              "knjigovodstveni-poslovi",
              "racunovodstveni-poslovi",
              "poslovno-posrednistvo",
              "poslovanje-nekretninama",
              "iznajmljivanje-nekretnina",
              "taksi-prijevoz",
              "autotaksi-prijevoz",
              "kurirske-usluge",
              "skladistenje-robe",
              "medunarodno-otpremnistvo",
              "ostali-kopneni-prijevoz",
              "bravar-hitne-intervencije",
              "djelatnosti-ciscenja",
              "odrzavanje-cistoce",
              "osnovno-ciscenje-zgrada",
              "djelatnosti-masaze",
              "pruzanje-usluga-masaze",
              "veterinarske-djelatnosti",
              "pruzanje-usluga-smjestaja",
              "geodetska-djelatnost",
              "izdavacka-djelatnost",
              "pogrebnicka-djelatnost",
              "poljoprivredna-djelatnost",
              "proizvodnja-hrane-i-pica",
              "proizvodnja-odjece",
              "proizvodnja-tekstila",
              "proizvodnja-metala",
              "trgovina-na-malo-cvijecem",
              "kupnja-i-prodaja-robe",
              "ugradnja-stolarije",
              "sportska-poduka",
              "sigurnost",
              "ustanova",
              "zadruga",
              "dionicko-drustvo",
              "javno-trgovacko-drustvo",
              "komanditno-drustvo",
              "drustvo-s-ogranicenom-odgovornoscu",
              "jednostavno-drustvo-s-ogranicenom-odgovornoscu"
            ],
            "type": "string",
            "description": "54 curated imenik.eu categories — a mix of real trades/services (e.g. `vodoinstalater` = plumber, `frizer` = hairdresser) and registered legal-entity forms (e.g. `drustvo-s-ogranicenom-odgovornoscu` = LLC), both genuine per-company categories on the site. Only used to select which category to browse for mode=byCategory -- it carries a schema default so the daily-test prefill always works, so it is intentionally NOT applied as a post-fetch filter on other modes (that would silently narrow every search/byCity/latest/popular run to just this category even when never touched). To filter any mode (including byCity/byCategory) by category, use `categoryFilter` below instead. Use `categorySlug` below to target any of imenik.eu's ~540 category slugs not listed here.",
            "default": "vodoinstalater"
          },
          "categorySlug": {
            "title": "Custom category slug override",
            "type": "string",
            "description": "Free-text override for `category` above — any imenik.eu category URL slug (see the ~540 options at imenik.eu/sitemap.php?t=categories or a company's own category badge). Takes precedence over the `category` dropdown when non-empty."
          },
          "categoryFilter": {
            "title": "Category filter (all modes)",
            "type": "string",
            "description": "Optional post-fetch filter: only keep businesses whose category matches this text (case- and diacritics-insensitive substring match). Independent of `category`/`categorySlug` above — leave blank for no category restriction. Works with every mode, including mode=byCity/byCategory for a further narrowed result."
          },
          "urls": {
            "title": "Business detail URLs (mode=byUrl)",
            "type": "array",
            "description": "Full imenik.eu detail-page URLs, e.g. `https://imenik.eu/tvrtka/brumac-usluge`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword filter",
            "type": "string",
            "description": "Only keep results whose business name, description, or category 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."
          },
          "websiteOnly": {
            "title": "Only businesses with a website",
            "type": "boolean",
            "description": "Only emit businesses that have a website URL listed on imenik.eu.",
            "default": false
          },
          "emailOnly": {
            "title": "Only businesses with an email",
            "type": "boolean",
            "description": "Only emit businesses that have an email address listed on imenik.eu.",
            "default": false
          },
          "phoneOnly": {
            "title": "Only businesses with a phone number",
            "type": "boolean",
            "description": "Only emit businesses that have a phone number listed on imenik.eu.",
            "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 — imenik.eu 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}