Bark Scraper (Service Aggregates)
Pricing
from $3.00 / 1,000 results
Bark Scraper (Service Aggregates)
Scrape Bark.com public service-category pages for aggregate ratings, review counts, and service taxonomy across 11 countries (US, UK, AU, CA, IE, NZ, SG, ZA, IN, DE, FR). Three modes: byUrls, byService, and sitemap-based discover. Honors robots.txt.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(16)
Developer
Crawler Bros
Maintained by CommunityActor stats
16
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Bark Scraper
Extract aggregate ratings, review counts, and service taxonomy from Bark.com — the global services marketplace covering 11 countries (US, UK, Australia, Canada, Ireland, New Zealand, Singapore, South Africa, India, Germany, France).
This actor scrapes Bark's public service-category pages (e.g. plumbers, electricians, accountants) at country, state, and city granularity. It pulls structured JSON-LD markup (AggregateRating, BreadcrumbList, LocalBusiness) directly from the page so every record is consistent and clean.
Note on robots.txt: This actor does not crawl per-professional
/company/<slug>/pages — those are robots-disallowed by Bark and out of scope here. We focus on the public service-aggregate surface area.
What you get
For each scraped service-category page, the dataset contains a flat record with:
| Field | Description |
|---|---|
recordType | service (full record) or serviceUrl (URL-only, from discover mode) |
url | Canonical Bark URL of the service page |
country | Two-letter country code (us, gb, au, ca, ie, nz, sg, za, in, de, fr) |
lang | Language slug (en, de, fr) |
serviceSlug | URL-form service slug (e.g. plumbers, personal-trainers) |
serviceName | Human-readable service title (e.g. General Plumbing) |
state | State / region slug (when scraping a state- or city-level page) |
city | City slug (when scraping a city-level page) |
ratingValue | Aggregate rating (0–5 scale) |
reviewCount | Total reviews counted toward the aggregate |
currency | Currency accepted on this market |
paymentAccepted | Comma-separated payment methods |
openingHours | Service availability days |
image, logo | Image URLs from the page |
breadcrumb | Parent-category chain as ordered [{name, url}] |
parentCategory | Convenience flat field — the immediate parent category |
provider | Bark organization metadata (name, url, telephone, email) |
lastModified | (discover mode only) lastmod timestamp from sitemap |
scrapedAt | ISO-8601 UTC timestamp of the scrape |
Empty / unknown fields are omitted rather than emitted as null or "".
Modes
1. byUrls — scrape a list of Bark service URLs
Provide any mix of service, state, or city Bark URLs.
2. byService — build a URL from country + service [+ state + city]
Useful when you have a service slug (e.g. plumbers) and want a specific market.
3. discover — enumerate Bark service URLs from the sitemap
Walks Bark's public sitemap, filters by country + scope + service-name substring, and emits either lightweight serviceUrl records (fast) or full service records (when enrichDiscovered = true).
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
mode | enum | yes | byUrls, byService, discover |
urls | array | mode=byUrls | Bark service URLs to scrape |
country | enum | mode=byService / discover | Two-letter country code (11 options) |
service | string | mode=byService | Service slug (e.g. plumbers) |
state | string | mode=byService (optional) | State / region slug |
city | string | mode=byService (optional) | City slug — requires state |
discoverScope | enum | mode=discover | service-only, state-only, city-only, all, country-only |
serviceFilter | string | mode=discover (optional) | Substring filter against the service slug |
enrichDiscovered | bool | mode=discover (optional) | If true, fetch each discovered URL and emit a full record |
minRatingValue | int (0–5) | optional | Drop records below this rating |
minReviewCount | int | optional | Drop records below this review count |
keywordIncludes | string | optional | Drop records whose service name doesn't include this keyword |
maxItems | int (1–5000) | optional | Hard cap on emitted records |
useProxy | bool | optional | Route through Apify proxy |
autoEscalateOnBlock | bool | optional | Auto-engage Apify proxy on HTTP 403/429 (default true) |
Example inputs
Scrape a single US service page:
{"mode": "byUrls","urls": ["https://www.bark.com/en/us/plumbers/"],"maxItems": 1}
Scrape a UK service in London:
{"mode": "byService","country": "gb","service": "plumbers","state": "london"}
Discover plumbing-related service URLs in the US:
{"mode": "discover","country": "us","discoverScope": "service-only","serviceFilter": "plumb","maxItems": 50}
Example output
{"recordType": "service","url": "https://www.bark.com/en/us/plumbers/","lang": "en","country": "us","serviceSlug": "plumbers","serviceName": "General Plumbing","ratingValue": 4.7709,"reviewCount": 81413,"currency": "usd","paymentAccepted": "Credit Card, Debit Card","openingHours": "Mo-Su","breadcrumb": [{"name": "Services", "url": "https://www.bark.com/en/us/services/"},{"name": "Heating, Hot Water & Air Conditioning", "url": "https://www.bark.com/en/us/heating-hot-water-air-conditioning/"},{"name": "General Plumbing"}],"parentCategory": "Heating, Hot Water & Air Conditioning","provider": {"name": "Bark","url": "https://www.bark.com/","telephone": "(424) 227-5323","email": "team@bark.com"},"scrapedAt": "2026-05-07T03:14:22.123456+00:00"}
Use cases
- Marketplace research — compare service-category ratings across countries.
- Pricing benchmarks — pair service + state to track regional differences.
- Competitive analysis — track how a service category's review count grows over time.
- SEO research — enumerate a competitor marketplace's full service taxonomy via the sitemap.
- Lead-generation territory mapping — discover which city/state pages exist for a service in any of the 11 supported countries.
FAQ
Q: Do I need a Bark login or API key?
No. Bark publishes the data we extract as public structured markup (JSON-LD) embedded in the page HTML.
Q: Can I scrape individual pro / professional profiles (/company/<slug>/)?
No. Bark's robots.txt disallows that path and we honor it.
Q: Do I need a proxy?
Usually no — Bark works fine from datacenter IPs. If you hit a block, set useProxy: true (or leave autoEscalateOnBlock: true, the default — the actor will engage Apify proxy automatically on HTTP 403/429).
Q: How does discover mode pick which sitemap shards to read?
Bark publishes one shard per country (plus 11 default shards for the US). The actor reads the index, prioritizes shards matching your country filter, and walks each gzipped shard until maxItems is hit.
Q: What does enrichDiscovered do?
By default discover emits lightweight serviceUrl records (URL + slugs only — fast, no per-URL HTTP). Setting enrichDiscovered: true makes the actor follow each URL and emit a full service record with rating, review count, breadcrumb, etc.
Q: Why are some output fields missing from a record?
The actor never emits null or "". If a field is missing, Bark's page didn't include that data (e.g. some markets don't publish paymentAccepted).
Limitations
- Per-professional
/company/<slug>/pages are excluded by design (robots-disallowed). - The "country-only" discover scope returns 0 records because Bark's sitemap doesn't list country-root pages.
- Aggregate ratings reflect Bark's marketplace-wide signal for that service in that market — not a single business's rating.
discovermode reads up to 11 sitemap shards; very deep walks (>5000 URLs) should be batched across runs viamaxItems+serviceFilter.
Built for Apify. Honors robots.txt. No login or cookies required.