Planity Scraper at a glance
Planity Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes change type (incremental mode), name, main type, types and street, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.60 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Other
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.60 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 18 options
Scrape Planity (planity.com) beauty salons across France, including hairdressers, barbers, nail salons and spas. Extract business names, addresses, phone numbers, opening hours, ratings, customer reviews, photos and booking availability signals for lead generation and market research.
What Planity Scraper can do
- Rich records. Name, full address, coordinates, phone, opening hours (also by day), photos, ratings and review excerpts in every row.
- Services and team. With details on, each salon carries its full service menu with prices and durations, its team, an about text, sub-ratings (welcome, hygiene, ambiance, service) and access information.
- Two ways in, every link shape. Search by plain city name, arrondissement or postal code, or paste listing, page, district, service-page or salon links.
- Booking signals. Online booking availability, appointment and customer counters, and price display settings.
- Category coverage. Fourteen venue categories, from hairdressers to fitness.
- Change tracking. Schedule recurring runs and receive only new or updated venues.
Choose what to collect
These inputs let you configure Planity Scraper - Beauty Salons, Contacts & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search by location and category, or paste Planity listing and salon links. Fields of the other mode are ignored. |
locationsarray | Plain names, no ids needed: a city (Paris, Lyon), an arrondissement (Paris 15, Lyon 6eme) or a postal code (33000). One search per entry. An entry that matches no Planity place exactly is skipped with a warning, never guessed. |
categorystring | Type of establishment to list. |
searchTextstring | Optional text to match against salon names and descriptions. |
minRatingnumber | Only keep salons rated at least this value (0 to 5). Leave empty for no filter. |
sortBystring | Order of the results. Relevance ranks by distance to the place centre; the other options order the whole place (best rated, or by price level). |
urlsarray | Planity links, one per line. Accepted: a listing (planity.com/coiffeur/paris-75), a listing page (…/page-2), a district listing (…/coiffeur/paris-75/75011-paris-11eme), a service page (…/coiffeur/coupe-femme/paris-75, lists the whole category for that place) or a single salon link. Query strings and a /fr-FR/ prefix are ignored; home pages and category pages without a place are skipped with a warning. Filter fields are ignored in this mode. |
Show 11 more inputs
| Input | What it controls |
|---|---|
fetchDetailsboolean | Adds the salon page data: services with prices and durations, team, photos, about text, opening hours by day, sub-ratings, access info, SIRET and review excerpts. Billed as one detail-enrichment unit per enriched result, plus one more unit per started block of 10 delivered reviews (Max reviews per salon). |
maxReviewsinteger | How many review excerpts to keep on each salon row (0 skips them). Applies when Add salon details is on. Every started block of 10 delivered reviews adds one detail-enrichment unit. |
maxPagesinteger | Does not cap the run: it has no default and defers to Max items, which is the only default cap. Leave empty or 0 to walk every result page (20 results per page); set it only to stop a search earlier. |
maxItemsinteger | The one default cap on the run (20). Maximum results to return across all searches. 0 means unlimited. |
resumeFromRunIdstring | Run ID (or dataset ID) of a previous run of this Actor. Salons already collected there are skipped, so this run returns only the delta. Leave empty for a normal run. For recurring monitoring of the same search, use Incremental mode instead. |
incrementalModeboolean | For recurring monitoring. A salon is returned as NEW the first time, and as UPDATED when a tracked field changes (name, description, phone, address, opening hours, categories, photos, services and prices, team, booking settings). Unchanged salons are not returned or billed. Rating and review counters are not compared. State is kept per search setup, or per State key when you set one. |
stateKeystring | Optional name for a monitoring campaign. Runs sharing a key share their incremental state. Leave empty to scope it automatically to the search. |
ignoreFieldsForChangesarray | Extra field names that must not mark a venue as UPDATED in incremental mode. Rating, review and booking counters are already ignored. |
mcpConnectorsarray | Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify Settings, Integrations, then select it here. The connector receives a condensed summary per item; the full record stays in the dataset. Leave empty to skip. |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
changeTypeChange type (incremental mode) (text)nameName (text)main_typeMain type (text)typesTypes (text)streetStreet (text)postal_codePostal code (text)cityCity (text)phonePhone (text)ratingRating (number)ratings_countRatings (number)reviewCountReviews (number)opening_hoursOpening hours (text)Show 24 more fields
latitudeLatitude (number)longitudeLongitude (number)languageLanguage (text)has_availabilitiesBookable (number)is_owner_aloneOwner alone (boolean)imageImage (image)slugSlug (text)object_idObject id (text)urlURL (link)changedFieldsChanged fields (incremental mode) (array)firstSeenAtFirst seen (incremental mode) (date)lastSeenAtLast seen (incremental mode) (date)services_countServices (number)price_minLowest price (EUR) (number)price_maxHighest price (EUR) (number)team_countTeam members (number)photos_countPhotos (number)welcome_ratingWelcome rating (number)hygiene_ratingHygiene rating (number)ambiance_ratingAmbiance rating (number)benefit_ratingService rating (number)reviewsCount_pushedReviews delivered (number)siretSIRET (text)scraped_atScraped at (date)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"name": "Example Salon",
"url": "https://www.planity.com/example-salon-00000-paris",
"main_type": "hair_care",
"street": "1, Rue Exemple",
"city": "Paris",
"postal_code": "00000",
"phone": "+33000000000",
"latitude": 48.85,
"longitude": 2.35,
"opening_hours": "Mo 10:00-19:00;Tu 10:00-19:00",
"rating": 4.8,
"ratings_count": 100,
"has_availabilities": 1,
"language": "fr"
}Ways to use this data
- Lead generation: build contact lists of venues by city and category.
- Market research: compare venue density, ratings and review volume across districts.
- Market monitoring: track new venues and profile changes over time.
- Location analytics: map venues using exact coordinates.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Planity Scraper return?
The documented output for Planity Scraper includes change type (incremental mode), name, main type, types, street, postal code, city and phone. Availability of each field depends on the source page and the selected mode.
How much does Planity Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.60 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I schedule runs?
Yes. Use Incremental mode on a schedule to receive only changes.
Why did a run return nothing?
The location may not match a known place (an entry that is not an exact city, district or postal-code match is skipped with a warning, never guessed), or the filters may be too strict. Try a larger city or relax the filters.
Can I use it with AI tools?
Yes, through the Apify MCP server or the connectors above.
