Treatwell Search Scraper avatar

Treatwell Search Scraper

Pricing

from $0.04 / 1,000 treatwell venue listings

Go to Apify Store
Treatwell Search Scraper

Treatwell Search Scraper

๐Ÿ’‡ Extract Treatwell salon and spa listings with addresses, ratings, visible prices, discounts, images, and profile URLs from search pages.

Pricing

from $0.04 / 1,000 treatwell venue listings

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Extract salon and spa listings from public Treatwell search, category, treatment, and location pages.

Use this actor to turn Treatwell browse pages into a clean dataset of venues, ratings, addresses, visible service prices, discounts, images, and profile URLs.

What does Treatwell Search Scraper do?

Treatwell Search Scraper reads public Treatwell search pages and saves one structured record per venue listing.

It is designed for search and category URLs such as London haircuts, Manchester massages, nail salons, spa treatments, and other public Treatwell browse pages.

The actor follows Treatwell pagination and stops when your maximum item limit is reached.

Who is it for?

Local-services lead generation teams

Find salons, spas, barbers, nail studios, and beauty venues in a target city or neighbourhood.

Beauty brands and suppliers

Build lists of venues that may be relevant for outreach, sampling, partnership, or distribution.

Market analysts

Monitor how many venues appear in a treatment category and compare visible pricing across cities.

Salon operators

Track competitor ratings, review counts, and listed prices in your local area.

Agencies and data teams

Schedule recurring runs and export Treatwell venue data to CRM, BI, or spreadsheet workflows.

Why use this actor?

  • ๐Ÿ’‡ Extracts public Treatwell venue listings at scale.
  • ๐Ÿ“ Captures address, locality, region, postcode, and country fields.
  • โญ Includes ratings and review counts when Treatwell exposes them.
  • ๐Ÿ’ท Saves visible service prices, minimum price, maximum price, and discount labels.
  • ๐Ÿ–ผ๏ธ Collects venue image URLs from Treatwell search pages.
  • ๐Ÿ”— Includes venue profile URLs and source search URLs.
  • โšก Uses HTTP and Cheerio, so it is lightweight and fast.
  • ๐Ÿงพ Outputs a clean Apify dataset ready for export.

What data can you extract?

FieldDescription
venueNameTreatwell venue name
venueUrlPublic Treatwell venue profile URL
venueIdTreatwell listing ID when exposed
positionPosition on the current search page
searchUrlOriginal input URL
pageUrlPaginated page that produced the venue
addressCombined address string
streetAddressStreet address
localityLocality or city field
regionRegion field when available
postalCodePostcode
countryCountry code
ratingAverage rating
reviewCountNumber of reviews
serviceCountNumber of services visible in the listing telemetry
displayedPricesVisible service prices from the search page
discountTypesDiscount labels such as from, offpeak, or sale_price
minPriceMinimum visible price
maxPriceMaximum visible price
imageUrlMain image URL
imageUrlsAll exposed image URLs
scrapedAtISO timestamp

How much does it cost to scrape Treatwell listings?

This actor uses pay-per-event pricing.

You pay a small start fee plus a per-result fee for each Treatwell venue listing saved to the dataset.

The exact price is shown in the Apify Store pricing table before you run the actor.

Because the actor uses direct HTTP by default, normal runs avoid expensive browser automation and proxy bandwidth.

How to use Treatwell Search Scraper

  1. Open the actor on Apify.
  2. Paste one or more public Treatwell search, category, treatment, or location URLs.
  3. Set maxItems to the number of venues you want.
  4. Keep followPagination enabled if you want more than one page.
  5. Run the actor.
  6. Export the dataset as JSON, CSV, Excel, XML, or via API.

Example Treatwell URLs

Use URLs like these:

https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/
https://www.treatwell.co.uk/places/treatment-massage/offer-type-local/in-manchester-uk/
https://www.treatwell.co.uk/places/treatment-manicure/offer-type-local/in-london-uk/

Treatwell may redirect URLs to canonical versions. The actor records the final page URL in pageUrl.

Input configuration

startUrls

Public Treatwell browse URLs to scrape.

The actor accepts normal search URLs and already-paginated URLs such as /page-2/.

maxItems

Maximum number of unique venue listings to save across all input URLs.

Use a small value for testing and a larger value for recurring collection.

followPagination

When enabled, the actor follows Treatwell rel="next" links until it reaches maxItems.

proxyConfiguration

Optional Apify Proxy settings.

Direct HTTP works for typical public Treatwell pages, so leave proxy disabled unless your environment is blocked.

Example input

{
"startUrls": [
{ "url": "https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/" }
],
"maxItems": 100,
"followPagination": true,
"proxyConfiguration": { "useApifyProxy": false }
}

Example output

{
"venueName": "Fringe",
"venueUrl": "https://www.treatwell.co.uk/place/fringe-1/",
"venueId": 529948,
"position": 1,
"searchUrl": "https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/",
"pageUrl": "https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/",
"address": "4 Market Place, London, NW11 6JG, GB",
"rating": 5,
"reviewCount": 32,
"displayedPrices": [45, 50, 25],
"minPrice": 25,
"maxPrice": 50,
"imageUrl": "https://cdn1.treatwell.net/images/view/example/",
"scrapedAt": "2026-07-07T00:00:00.000Z"
}

Tips for best results

  • Start with a Treatwell category page that already shows the venue type you need.
  • Set maxItems high enough to cover all paginated pages in your area.
  • Use separate runs for different treatments or cities if you want clean segmentation.
  • Keep the original searchUrl column when joining results back to campaigns.
  • Schedule recurring runs to monitor price and rating changes over time.

Lead generation workflow

  1. Run the actor for a city and treatment category.
  2. Export venues with high review counts or specific postcodes.
  3. Enrich the venue URLs or addresses with your CRM workflow.
  4. Segment leads by price range, rating, or locality.
  5. Repeat weekly or monthly for new opportunities.

Competitive pricing workflow

Use displayedPrices, minPrice, and maxPrice to compare visible Treatwell pricing.

For example, a salon operator can monitor haircut pricing in nearby neighbourhoods and identify venues advertising discounts.

Market monitoring workflow

Run the same URLs on a schedule.

Compare review counts, new venue URLs, removed venue URLs, and visible price ranges over time.

This is useful for local market maps and category growth tracking.

Integrations

Connect the dataset to:

  • Google Sheets for sales lists.
  • Airtable for lead management.
  • HubSpot or Salesforce via Apify integrations.
  • BigQuery or Snowflake for market analytics.
  • Slack alerts when new venues appear.
  • Make or Zapier for automated follow-up workflows.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/treatwell-search-scraper').call({
startUrls: [{ url: 'https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/' }],
maxItems: 100,
followPagination: true
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/treatwell-search-scraper').call(run_input={
'startUrls': [{'url': 'https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/'}],
'maxItems': 100,
'followPagination': True,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~treatwell-search-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://www.treatwell.co.uk/places/treatment-ladies-haircuts-1/offer-type-local/in-london-uk/"}],"maxItems":100,"followPagination":true}'

MCP usage

Use the actor from Apify MCP with Claude Code or Claude Desktop.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/treatwell-search-scraper

Add it in Claude Code:

$claude mcp add apify-treatwell "https://mcp.apify.com/?tools=automation-lab/treatwell-search-scraper"

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-treatwell": {
"url": "https://mcp.apify.com/?tools=automation-lab/treatwell-search-scraper"
}
}
}

Example prompts:

  • "Scrape 100 Treatwell haircut venues in London and summarize the price range."
  • "Find Treatwell spa venues in Manchester and export the dataset as CSV."
  • "Monitor this Treatwell category page weekly and list new venue URLs."

Data quality notes

The actor extracts data that Treatwell exposes in public search HTML.

Some pages may show fewer prices or discounts than full venue profile pages.

Address formatting can vary by venue and country.

Ratings and review counts are saved only when Treatwell exposes them on the page.

Limitations

This actor does not log in, book appointments, bypass paywalls, or access private Treatwell account data.

It does not scrape customer review text in the MVP.

It does not fetch every venue detail page by default, which keeps runs faster and cheaper.

Legality

This actor extracts publicly available information from Treatwell pages.

You are responsible for ensuring your use case complies with applicable laws, Treatwell terms, privacy rules, and data protection obligations.

Do not use scraped data for spam, harassment, or unlawful profiling.

FAQ

Does this actor scrape Treatwell reviews?

No. The MVP captures review counts and ratings from search pages, not full review text.

Can I scrape multiple Treatwell cities in one run?

Yes. Add multiple Treatwell search URLs to startUrls and set maxItems high enough for the combined run.

Troubleshooting

The run returned fewer items than expected

Check whether the Treatwell URL has enough pages and whether maxItems is high enough.

Some locations or treatments have fewer venues than broad categories.

A field is missing for some venues

Treatwell does not expose every field for every venue on search pages.

Missing optional fields are omitted rather than filled with fake values.

The page is blocked in my environment

Enable Apify Proxy in the advanced input settings and try again.

The actor is designed to work without proxy for normal public pages, but some networks may be blocked.

Explore other Automation Lab actors on Apify:

Changelog

0.1

Initial version: Treatwell search pagination, JSON-LD venue extraction, ratings, addresses, images, and visible price telemetry.

Support

If a Treatwell page stops working or you need additional fields, open an Apify issue with the input URL and run ID.

Summary

Treatwell Search Scraper is a lightweight extractor for public Treatwell salon and spa search pages.

It helps sales, research, and market-monitoring teams collect clean local beauty venue data with low operating cost.