DEV Community

Cover image for Setting fetchDetails to false Drops Opening Hours and Social Links
Crawler Bros
Crawler Bros

Posted on Fully Autonomous

Setting fetchDetails to false Drops Opening Hours and Social Links

The default listing view on vrisko.gr provides basic fields such as names, core categories, street addresses, and primary phone numbers. However, downstream lead enrichment pipelines and regional market analyses usually require deeper data: operating hours, operating months for seasonal resort businesses, specific star ratings, verified websites, and social media handles.

Executing a search on vrisko.gr without enabling detail fetching returns basic search card data. To collect full attributes, the scraper must perform a secondary request for every business profile on the page. Understanding how fetchDetails changes output schemas and run requirements is critical when configuring dataset pipelines for Greek business records.

Search Listings vs. Direct Profile Fetches

The vrisko-scraper actor operates in two distinct operational modes: search and detail.

In search mode, the actor submits category and location parameters to the directory's internal search engine. Selecting basic parameters like category: "estiatoria" and location: "athina" yields directory cards containing basic contact and location attributes:

{
  "name": "Example Restaurant",
  "businessType": "Restaurant",
  "category": "Εστιατόρια",
  "street": "Σταδίου 10",
  "city": "Αθήνα",
  "postalCode": "10564",
  "country": "GR",
  "phone": "2101234567",
  "searchCategory": "estiatoria",
  "searchLocation": "athina",
  "sourceUrl": "https://www.vrisko.gr/advdetails/1d_57hc3_d2a0ea64b7h6_715caa2k_j6ja_d75h5j34c61_2f214ha00e136215",
  "businessId": "1d_57hc3_d2a0ea64b7h6_715caa2k_j6ja_d75h5j34c61_2f214ha00e136215",
  "recordType": "business",
  "scrapedAt": "2026-03-30T10:00:00.000Z"
}
Enter fullscreen mode Exit fullscreen mode

When fetchDetails is set to true, the actor visits each extracted sourceUrl individually. This second step retrieves deep profile fields:

  • rating, reviewCount, and reviews[] (author, rating, text, date)
  • openingHours[] and operatingMonths[]
  • website and email
  • Social profiles (facebookUrl, instagramUrl, linkedinUrl, twitterUrl, youtubeUrl, tiktokUrl, pinterestUrl)
  • productsAndServices[], logoUrl, and images[]

If fetchDetails is left at its default value of false, filtering inputs like minRating, minReviewCount, and requireWebsite have no effect during a search run because those fields do not exist on the primary search results page.

Configuring Parameters for Seasonal or Local Directory Filtering

When targeting specific business traits—such as seasonal operating schedules in island regions—combining custom search terms with exact parameter toggles produces cleaner datasets.

Both category and location allow string selections from curated dropdowns or manual overrides using customCategory and customLocation. The directory's search engine accepts both Greek script (e.g., Ζάκυνθος) and Latin transliterations (e.g., Zakynthos).

To target highly rated hotel listings across Crete that explicitly maintain web links, set mode: "search" with detail fetching enabled.

{
  "mode": "search",
  "category": "ksenodoxeia",
  "location": "kriti",
  "fetchDetails": true,
  "minRating": 4,
  "minReviewCount": 5,
  "requireWebsite": true,
  "maxItems": 50
}
Enter fullscreen mode Exit fullscreen mode

If you already possess a list of direct profile URLs, bypass the search step entirely by using mode: "detail". This reads target pages directly without running directory-level category queries:

{
  "mode": "detail",
  "businessUrls": [
    { "url": "https://www.vrisko.gr/advdetails/1d_57hc3_d2a0ea64b7h6_715caa2k_j6ja_d75h5j34c61_2f214ha00e136215" }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Running the Actor via JSON Input

To execute a run targeting business leads in specific geographic regions, apply the following configuration process:

  1. Define the operational target: set mode to "search" for directory queries or "detail" for URL lists.
  2. Select standard category and location keys (such as category: "iatroi" for doctors or location: "thessaloniki"), or populate customCategory / customLocation for precise free-text matching.
  3. Toggle fetchDetails to true if your downstream integration requires operating hours, social media links, or written customer reviews.
  4. Set maxItems to establish a strict upper bound on total returned records.
  5. Post the JSON payload to the actor endpoint to initiate execution.
{
  "mode": "search",
  "customCategory": "δικηγόρος",
  "customLocation": "Πάτρα",
  "fetchDetails": true,
  "requirePhone": true,
  "sortBy": "rating",
  "maxItems": 100
}
Enter fullscreen mode Exit fullscreen mode

The returned dataset contains clean objects where unpopulated or missing fields are entirely omitted rather than returned as null values. Client-side sorting via sortBy orders the resulting batch across fetched items by relevance, star rating, business name, or review counts.

Event Pricing and System Considerations

Usage costs for running the scraper on Apify rely on event charges, with platform usage billed separately based on your plan's rates.

Each dataset item returned triggers a result charge:

  • FREE tier: $0.005 per event
  • BRONZE tier: $0.00433 per event
  • SILVER tier: $0.00367 per event
  • GOLD, PLATINUM, and DIAMOND tiers: $0.003 per event

Additionally, every run triggers an Actor Start charge:

  • $0.005 per GB of memory allocated to the run

Platform usage for the run is billed separately at your Apify plan's rates.

Schema Limitations and Text Formatting

This extraction strategy does not output machine-parsed, day-by-day opening hours schemas. The underlying source publishes schedule strings as unstructured Greek text lines (for instance, "Δευτέρα έως Σάββατο από 13:00 έως 01:00"). The actor returns these values verbatim inside the openingHours[] array to avoid parsing errors caused by complex Greek day-range phrasing.

Additionally, directory search pages limit total available pagination depth for high-volume, multi-city broad categories. When a broad category query exhausts available results, narrowing the geography down from regional level to specific municipal locations yields deeper dataset extraction.


The Actor used throughout this walkthrough is Vrisko Scraper - Greek Business Directory (vrisko.gr). Its README documents the full input schema, including the fields not covered here.

Prices quoted above are this Actor's published pay-per-event rates on the Apify Store, read from the Apify platform API on 2026-09-26. Check the Actor page for the current rates.

Top comments (0)