Skip to content
    ↑↓ to choose · Enter to open

    · 16 min read

    Imenik Serbia Scraper: 23 Data Fields, Up to 1,000 Free Results/Month

    By CrawlerBros Engineering Team

    Each business record from this directory carries 23 output fields, including the business name, address, phone, email, website, and latitude. A thousand results cost $5.00 on the free-plan price, and you can try it free since the Apify free plan covers the first 1,000 results. This tool visits each business's own page to collect website links and working hours that are often omitted elsewhere. It is ideal for developers building B2B lead lists or local search indices, but not for users who need official government tax IDs which the site does not publish.

    Try it: open Imenik Serbia Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Imenik Serbia Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Imenik Serbia Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 20, so a first run returns at most 20 results and costs at most $0.10 in result charges. That is enough to see the real shape of the data before deciding anything.

    Imenik Serbia Scraper was last updated on 2026-07-21. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 716,703 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Imenik Serbia Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The maxItems control has the largest impact on your bill because result charges apply to each record written to the dataset. To test the extraction logic cheaply, keep this cap at 20 results to ensure your result charges do not exceed $0.10 before you scale to larger batches.

    How do you run Imenik Serbia Scraper from the API?

    The schema marks 1 of its 9 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~imenik-rs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","searchQuery":"restoran","city":"","category":"","sortBy":"relevance","minRating":0,"maxItems":20}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "searchQuery": "restoran",
      "city": "",
      "category": "",
      "sortBy": "relevance",
      "minRating": 0,
      "maxItems": 20
    }
    
    run = client.actor("crawlerbros~imenik-rs-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "searchQuery": "restoran",
      "city": "",
      "category": "",
      "sortBy": "relevance",
      "minRating": 0,
      "maxItems": 20
    }
    
    const run = await client.actor('crawlerbros~imenik-rs-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

    Which Imenik Serbia Scraper inputs matter, and which can you skip?

    The mode control is the primary setting, allowing you to choose between keyword search, browsing by city, or browsing by category. Most people should use the city and category dropdowns first, only using the customCity and customSubcategory text fields if their target is not in the curated lists.

    • mode (string): What to fetch: free-text keyword search, browse all businesses in a city, or browse all businesses in a category. Default: "search".
    • searchQuery (string): Free-text keyword: a business name, trade, or service, e.g. "restoran", "advokat", "auto servis". Can be combined with City and Category below to narrow results. Default: "restoran".
    • city (string): A curated list of Serbia's major cities and towns. Required for mode=byCity; optional filter for search/byCategory. Leave as "No city filter" together with 'Custom city' below for nationwide results. Default: "".
    • customCity (string): Any Serbian city, town, or village not in the curated list above, matched against imenik.rs's own ~594 registered locations (diacritics-insensitive, e.g. "Backa Topola" matches "Bačka Topola"). Takes priority over 'City' when set.
    • category (string): One of imenik.rs's 24 top-level business categories. Required for mode=byCategory; optional filter for search/byCity. Leave as "No category filter" together with 'Custom subcategory' below for all categories. Default: "".
    • customSubcategory (string): Any of imenik.rs's ~376 subcategories not exposed above, matched by exact Serbian name (diacritics-insensitive), e.g. "Auto servisi", "Advokati", "Frizerski saloni", "Veterinari". Takes priority over 'Category' when set. See the README for the full subcategory list.
    • sortBy (string): How to order results after fetching. imenik.rs itself only returns relevance/listing order; 'rating' and 'name' are applied client-side across the fetched batch. Default: "relevance".
    • minRating (integer): Only return businesses rated at least this many stars, e.g. 4 for 4.0+. 0 means no minimum. Businesses with no rating are excluded once this is set above 0. Default: 0.
    • maxItems (integer): Hard cap on the number of business records to return. Default: 20.

    Fixed-choice controls: mode accepts search (Search by keyword), byCity (Browse by city), byCategory (Browse by category); city accepts 49 values (default ""), including "" (No city filter (use Custom city below, or nationwide)), Beograd, Novi Sad, Niš; category accepts 25 values (default ""), including "" (No category filter (use Custom subcategory below, or all categories)), Automobili (Cars), Deca, Bebe (Kids, Babies), Država i društvo (Government & Society); sortBy accepts relevance (imenik.rs's own order), rating (highest rated first), name (A-Z).

    What does Imenik Serbia Scraper return?

    The returned records are perfect for building local directories or lead lists as they include parsed address parts and latitude and longitude. They conspicuously do not contain government registration numbers or financial statements since these are not part of the public directory listings.

    • businessName - business name
    • category - business category or subcategory (from the active filter or the business's own listing)
    • city, street, fullAddress - parsed from imenik.rs's own address field
    • latitude, longitude - geocoded map coordinates of the business address
    • phone, email, website
    • workingHours - free-text opening hours as published by the business
    • description - business description / about text
    • rating - average star rating (0-5), when the business has received votes
    • ratingCount - number of votes behind the average rating
    • tags - list of business-specific tags published on imenik.rs (e.g. brand specializations like "Honda servis", "Riblji restoran") - only present when the business tagged itself
    • amenities - list of published amenities (e.g. Parking, Wi-Fi, air conditioning, wheelchair access) - only present for businesses that publish this (mostly hospitality/venue listings)
    • priceRange - published price range (e.g. "21-30 €") - only present for businesses that publish this
    • photos - gallery of additional photos beyond the cover image, when the business uploaded any
    • videoUrl - embedded promotional video, when the business added one
    • imageUrl - business cover photo (only when the business uploaded a real photo, not imenik.rs's default placeholder)
    • sourceUrl - canonical imenik.rs page for the business
    • recordType: "business", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Imenik Serbia Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Select mode and set it to search to perform a keyword-based test across the directory.
    2. Provide a searchQuery such as auto servis to define the business trade you want to extract.
    3. Check the city dropdown for your target municipality or enter a town like Backa Topola into customCity.
    4. Set maxItems to 20 for a first run to verify the 23 output fields without exceeding a $0.10 result charge.
    5. Execute the run and inspect the dataset for the presence of phone and email fields which require a detail-page visit.
    6. Verify that latitude and longitude fields are present for the returned addresses to ensure mapping compatibility.
    7. Check that the recordType is set to business for each entry in the exported dataset.

    How do you apply it? Three worked playbooks

    These are Imenik Serbia Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Local lead generation

    Outcome: Build a prospect list of Serbian businesses by trade and city for B2B outreach

    Configure: Set mode to byCity, select a specific city like Niš, and enter a trade such as Advokati in customSubcategory.

    Working method: Initialize a run with a small item cap to confirm that the contact fields you need are populated for that specific trade. Once the data quality is verified, remove the cap to extract all matching businesses in the city.

    Deliverable: A spreadsheet of Serbian business prospects including phone numbers, email addresses, and physical locations.

    Stop condition: More than half of the records are missing both phone and email contact details.

    Use case 2: Market research

    Outcome: Measure business density and average ratings for a category across Serbian cities

    Configure: Set mode to byCategory, select a high-level category like Industrija, and set sortBy to rating.

    Working method: Run the scraper across different major cities using the city dropdown to compare the volume of businesses and their public reputation. Analyze the rating and ratingCount fields to identify market leaders in each region.

    Deliverable: A comparative report of business counts and average star ratings for a specific category across multiple Serbian towns.

    Stop condition: The run returns zero results for a known commercial hub like Beograd.

    Use case 3: Directory aggregation

    Outcome: Feed structured Serbian business data into your own local-search product

    Configure: Set mode to byCategory and use customSubcategory to target specific niches like Frizerski saloni nationwide.

    Working method: Use the latitude and longitude fields to place each business on your own map interface. Perform a deep crawl of each business page to capture the description for a complete local profile.

    Deliverable: A JSON file containing structured business profiles with descriptions, geocodes, and operating hours for a specific niche.

    Stop condition: The latitude field is missing from more than twenty percent of the extracted records.

    What breaks, and how do you design around it?

    • Category filtering follows imenik.rs's own (broader-than-exact) matching. When you filter by category/customSubcategory, imenik.rs itself sometimes returns businesses tagged with a closely related subcategory rather than only the exact one requested (verified directly against the live site, independent of this actor's request-building) -- e.g. filtering by "Auto servisi" (car repair shops) can also surface a business primarily tagged "Auto delovi" (car parts) if it's cross-listed. The category output field always reflects the business's own listed category, so you can still filter/verify client-side after the run if you need an exact match.
    • amenities/priceRange/photos/videoUrl are published by only a subset of businesses. These fields are mostly used by hospitality/venue-type listings (restaurants, hotels, event spaces) on imenik.rs; most other business types simply don't have them, so they're omitted rather than returned empty.
    • latitude/longitude require a resolvable address. imenik.rs geocodes each business's address field itself; on the rare listing where imenik.rs couldn't geocode the address, coordinates are omitted.
    • website/email/workingHours/description/imageUrl depend on what the business published. imenik.rs only shows these when the business itself filled them in; a bare "Website" link pointing back at imenik.rs itself (the site's own placeholder when no real site was provided) and the site's default cover photo are both detected and omitted rather than returned as fake data.
    • sortBy is applied client-side. imenik.rs's listing pages don't expose a server-side sort parameter, so rating/name sorting is applied across the batch of records this run actually fetched, not the entire city/category.
    • minRating is applied client-side. A business with no rating yet (no votes received) is excluded once minRating is set above 0, since there is no rating to compare against.
    • No Cyrillic locale on the live site. imenik.rs itself only serves Serbian Latin script (no /sr, /cyr, or Cyrillic-locale variant was found). customCity/customSubcategory inputs typed in Cyrillic are automatically transliterated to Latin before matching, so both scripts work as input even though output text is always Latin, matching the source site.
    • Address field ordering is inconsistent at the source. Most imenik.rs listings write addresses as "Street, City" but a minority write "City, Street"; this actor resolves the ambiguity against imenik.rs's own list of ~594 registered locations rather than assuming a fixed order.

    When you encounter a listing where latitude and longitude are omitted, it is usually because the source site could not resolve the address. In these cases, you should use the fullAddress field with a separate geocoding service to find the coordinates.

    When should you not use Imenik Serbia Scraper?

    Do not use this Actor if you require official corporate financial data or government tax identifiers, as imenik.rs is a consumer-facing directory. For data in neighboring countries, you should use Imenik.eu Croatia Business Directory Scraper for Croatian businesses or PaginiAurii Scraper - Romania Business Directory for Romanian listings. If you need data from the Greek market, Vrisko Scraper - Greek Business Directory (vrisko.gr) is the better alternative. This specific scraper is strictly for the Serbian imenik.rs domain and does not aggregate data from other national directories.

    What should you check before trusting the output?

    • Verify that latitude is a valid float value for use in mapping applications.
    • Confirm that the businessName field is not empty for every record in the dataset.
    • Check for the presence of email and website fields, noting that these are only included when provided by the business owner.
    • Ensure the ratingCount is present when a rating is above zero to understand the sample size of the reviews.
    • Validate that imageUrl contains a link to a real photo rather than the directory placeholder.
    • Monitor for businesses where the category field reflects a broader match than your customSubcategory filter.

    None of this proves a record is correct. It gives a scheduled Imenik Serbia Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the price for 1,000 results on the free plan?

    On the Apify free plan, 1,000 results cost $5.00 because each result is priced at $0.005. The free plan includes $5.00 of monthly usage, which effectively covers your first 1,000 results every month. Keep in mind that Apify also bills for the platform usage consumed during the run in addition to these result-based charges.

    Are latitude and longitude always included?

    The latitude and longitude fields are only present when the source directory successfully provides them. If imenik.rs cannot resolve a business's address to specific coordinates, these fields are omitted from the output. This usually happens with incomplete addresses or very new locations that have not been mapped by the directory yet.

    How can I search for a specific trade like lawyers?

    You can use the customSubcategory input to search for ~376 specific subcategories. For example, typing Advokati into this field will target lawyers. This text input takes priority over the general category dropdown, allowing you to narrow your search to very specific industries or services across Serbia.

    Does the scraper handle Serbian Cyrillic?

    Yes, the Actor supports Cyrillic input for the customCity and customSubcategory fields. It automatically transliterates Cyrillic characters into the Latin script used by the imenik.rs website before performing the search. This ensures that you can find businesses using either of the scripts commonly used in Serbia.

    Why are some fields like priceRange missing for most businesses?

    The Actor only returns fields that are actually published by the business. Fields like priceRange, amenities, and videoUrl are primarily used by hospitality and venue listings like restaurants or hotels. Most other business types do not provide this information, so the Actor omits these fields rather than returning empty values.

    Where to go next

    When you are ready to run it, open Imenik Serbia Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Imenik Serbia Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-01.

    • Actor last updated by its maintainers on 2026-07-21.

    • Run outcome figures cover the 30 day public window ending 2026-10-01.

    • Imenik Serbia Scraper on Apify

    Featured actors

    Imenik Serbia Scraper

    Scrape imenik.rs, Serbia's business directory. Search by keyword, browse by city or category, and extract business name, address, phone, email, website, working hours, rating, and description.

    Run on Apify ↗