Bokadirekt Scraper avatar

Bokadirekt Scraper

Pricing

from $12.00 / 1,000 results

Go to Apify Store
Bokadirekt Scraper

Bokadirekt Scraper

Scrape 17,000+ beauty and wellness businesses from Bokadirekt, Sweden's biggest booking marketplace: phone, email, website, Instagram, org numbers, opening hours, full price list, and ratings. Filter by service, city, free slots, payment options, rating, and missing website.

Pricing

from $12.00 / 1,000 results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Share

Norm Data

💇 Bokadirekt Beauty & Wellness Businesses Scraper

Search Bokadirekt, Sweden's biggest booking marketplace for beauty and wellness, and get a clean list of salons, barbers, massage therapists, nail and lash studios, clinics, and more. Every business comes with its phone, email, website, Instagram, company organisation numbers, opening hours, full price list, ratings, and booking options. No login, no account.

Built for B2B lead generation, local market research, and price benchmarking across more than 17,000 Swedish businesses.

🎯 Who uses it?

🧴 Suppliers and wholesalers

Build a call list of salons and clinics by service and city, with a direct phone number and email on almost every row.

💻 SaaS and marketing agencies

Find businesses by Bokadirekt plan, rating, review volume, or missing website, and pitch the ones that need you most.

📊 Market researchers

Compare prices, opening hours, and service mix across cities and categories from each business's own price list.

🏦 Payments and finance teams

See which businesses already offer pay later, gift cards, or the employer wellness allowance, and which do not.

✨ What it does

  • Search: 27 service categories plus any other service keyword in Swedish, in any city, municipality, or district, or around a map point.
  • Availability filters: only businesses with a free slot on chosen dates and time of day, or only last-minute deals.
  • Offer and payment filters: active campaigns, multi-visit bundles, pay later with Klarna or Qliro, gift cards, the employer wellness allowance, and trade association membership.
  • Lead quality filters: minimum rating, minimum number of reviews, only businesses with an email, a website, or Instagram, or only those without their own website.
  • Sorting: most popular, best rated, closest, soonest availability, highest discount, or highest last-minute discount.
  • Look up: resolve known business profiles directly from their Bokadirekt URL or ID.
  • Location check: a misspelled place name stops the run with suggestions, instead of quietly returning all of Sweden.

Missing source values are returned as null, never invented.

🏆 Why this scraper

  • Direct contact details on almost every row. Phone on every business, email on over 90%, website and Instagram where published.
  • Company organisation numbers, ready to match against company registers and your CRM.
  • The full price list, every service with price, duration, and category, plus lowest and highest price per business.
  • Booking and payment signals you won't find in a map listing: Bokadirekt plan, pay later, wellness allowance, gift cards, campaigns, and last-minute discounts.
  • Privacy by design. Business data only: no staff names, no reviewer names, and no sole trader personal identity numbers.

⚖️ How it compares

CapabilityThis actorGeneric maps or directory scrapers
Phone and websiteyesyes
Email addressyes, over 90%rarely
Company organisation numbersyesno
Full price list with durationsyesno
Opening hours per dayyesyes
Rating and review countyesyes
Rating distribution, 1 to 5 starsyesno
Pay later, wellness allowance, gift card, campaign flagsyesno
Free slot by date and time of dayyesno
Staff count and rolesyesno

📦 What data you get

EntityUseful fields
BusinessName, logo, description, categories, trade associations, notices, group name, and Bokadirekt plan.
ContactPhone, email, website, Instagram, and the Bokadirekt profile link.
LocationStreet, post code, city, latitude, and longitude.
CompanyEvery company organisation number operating at the business.
Opening hoursHours for each day of the week, plus the business's own note on hours.
Price listEvery service with category, price in SEK, price label, duration in minutes, add-on flag, and description.
RatingsAverage rating, review count, and the 1 to 5 star distribution.
StaffNumber of active staff and their job titles, with no names.
Booking and offersInstant booking, cancellation notice, last-minute discount, first free slot, campaigns, and multi-visit bundles.
PaymentsPay later with Klarna or Qliro, gift cards, wellness allowance, and prepayment requirement.

Every record includes scraped_at (UTC). Download your dataset from Apify as CSV, JSON, Excel, or XML.

💡 Use cases

🧴 Every hair salon in Stockholm with an email address

{ "mode": "search", "categories": ["Frisör"], "locations": ["Stockholm"], "requireEmail": true }

💻 Highly rated clinics without their own website

{ "mode": "search", "categories": ["Hudvård", "Laser"], "minRating": "4.7", "minReviews": "50", "website": "none", "maxItems": 500 }

📊 Massage businesses accepting the wellness allowance in Göteborg

{ "mode": "search", "categories": ["Massage"], "locations": ["Göteborg"], "acceptsWellnessCard": true }

⏰ Nail studios with a free evening slot this week

{ "mode": "search", "categories": ["Naglar"], "locations": ["Malmö"], "timeOfDay": "evening", "availableFrom": "2026-09-28", "availableTo": "2026-10-02" }

🔎 Resolve known profiles

{ "mode": "lookup", "placeUrls": ["https://www.bokadirekt.se/places/queeings-frisor-barbershop-136216"] }

⚙️ How the input is organised

Maximum results sits at the very top, since it applies no matter what you're doing. Leave it empty to collect every match. Below it, the form is split into seven numbered sections:

SectionWhat it's for
1 · What to doSearch for businesses or look up known profiles.
2 · What and whereService categories, other service keywords, locations, or a map point.
3 · Availability and offersFree slots by date and time of day, last-minute deals, campaigns, and bundles.
4 · Payments and trustPay later, gift cards, wellness allowance, and trade association membership.
5 · Lead qualityMinimum rating and reviews, requiring an email, website, or Instagram, or only businesses without a website.
6 · OrderHow results are sorted.
7 · Look upBusiness profile URLs or IDs to resolve directly.

Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.

💰 Pricing

Pay-per-event: a one-time 0.003 when the run starts, plus a price per result saved to your dataset. The price depends on your Apify plan tier:

Your Apify planPrice per result
Free0.0171
Bronze0.0154
Silver0.0137
Gold / Platinum / Diamond0.012

Approximate total cost (includes the 0.003 start fee):

Results collectedFreeBronzeSilverGold+
100$1.71$1.54$1.37$1.20
1,000$17.10$15.40$13.70$12.00
10,000$171.00$154.00$137.00$120.00

New Apify accounts start with $5 in free credit.

🚀 Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Bokadirekt Scraper.
  3. Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.

🤖 Use with AI agents (MCP)

Give an AI agent live access to the Bokadirekt Scraper through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/bokadirekt-scraper"

Then prompt it in plain language to run the scraper and read back the results.

🔧 Troubleshooting

The run stopped with "location not found". The place name didn't match a Bokadirekt location. The log lists suggestions, use one of those exact spellings, or search by a map point instead.

I got fewer businesses than Maximum results. Your filters are narrow. Lead-quality filters (has email, has Instagram, minimum rating or reviews) and availability filters cut the pool the most, loosen them one at a time.

A business in Look up mode returned an error row. The URL or ID doesn't resolve to a live profile (it may have closed or moved). Check the link opens on bokadirekt.se.

Why is the email or Instagram empty for some businesses? The business never published one on Bokadirekt. Turn on "Has an email address" or "Has Instagram" to keep only those that did.

❓ FAQ

QuestionAnswer
Do I need a Bokadirekt account?No. Only public business profiles are read.
Does it include staff or reviewer names?No, on purpose. Only business information is collected.
Can I find businesses without their own website?Yes, set Website to "without a website", a common lead-gen filter for web agencies.
How fast is it?Around 1,000 full profiles in under a minute; the whole marketplace (17,000+) in under half an hour.
Can I search several cities and services at once?Yes, add several Services and Locations in one run.
Is the data live?Yes, read fresh on every run.

🛡️ Limits & responsible use

This Actor reads only public Bokadirekt business profiles. It never signs in and never accesses anything gated behind an account.

It collects business information only. Staff names, reviewer names, and personal identity numbers that Swedish sole traders use as their organisation number are left out on purpose. Business contact details are still covered by the GDPR and by Bokadirekt's terms, so use them for relevant B2B outreach, respect opt-outs, and do not republish the content.

Around 1,000 full business profiles load in under a minute, and the whole marketplace of more than 17,000 businesses in well under half an hour. Searches are paced to stay gentle on the source.

A profile that doesn't resolve in Look up mode writes a row with an error field instead of failing the run.

📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

🧪 Local development

bun install
bun test
bun run src/main.ts