# Airbnb Services Scraper - Listings & Reviews (`clearpath/airbnb-services-api`) Actor

Extract Airbnb service listings with prices, ratings, reviews, and provider details from any location. 40+ currencies, all service types. Pay per result.

- **URL**: https://apify.com/clearpath/airbnb-services-api.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Travel, Lead generation, Jobs
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Airbnb Services API Scraper | Extract Service Data & Reviews

Fast and reliable Airbnb services scraper for extracting comprehensive service listings, detailed information, and reviews from any location worldwide.

<a href="https://i.postimg.cc/gksxcQLp/airbnc-services-scraper.jpg" title="Airbnb Services API scraper" target="_blank">
    <img src="https://i.postimg.cc/gksxcQLp/airbnc-services-scraper.jpg" alt="Airbnb Services API scraper" />
</a>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
clearpath/airbnb-services-api on Apify. Call: ApifyClient("TOKEN").actor("clearpath/airbnb-services-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: location (string, required), serviceType (string, default "photography"), maxItems (integer, default 10). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~airbnb-services-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: pay-per-result, ~$0.005/service basic, ~$0.01 with details. Get token: https://console.apify.com/account/integrations
```

### Features

- **Location-based search** - Extract services from any city or region worldwide
- **Service type filtering** - Target specific categories like chefs, photography, massage, and more
- **Detailed information extraction** - Get comprehensive service data including host info, offerings, and amenities (add-on feature)
- **Review extraction** - Scrape customer reviews with ratings and detailed feedback (add-on feature)
- **Date filtering** - Search for services available on specific dates
- **Multi-currency support** - Get pricing in 40+ currencies
- **Pagination handling** - Automatically extract all available services
- **Parallel processing** - Efficient extraction of details and reviews
- **Proxy support** - Built-in proxy configuration for reliable access

### Use Cases

#### For Market Research

- **Service industry analysis** - Study service offerings and pricing across different destinations
- **Competitive analysis** - Monitor competitor services and pricing strategies
- **Trend identification** - Track popular service types and seasonal patterns
- **Geographic insights** - Compare service availability across different cities and regions

#### For Business Intelligence

- **Service providers** - Research market gaps and pricing opportunities
- **Hospitality businesses** - Analyze local service ecosystem and guest preferences
- **Investment research** - Study service economy growth patterns
- **Academic research** - Sharing economy and service marketplace studies

#### For Travel Planning

- **Service discovery** - Find quality services in target destinations
- **Price comparison** - Compare similar services across different providers
- **Review analysis** - Analyze customer feedback to identify quality service providers
- **Availability tracking** - Monitor service availability for travel planning

### Supported Service Types

The Airbnb services API scraper supports filtering by specific service categories:

- **Photography** - Professional photo sessions from experienced photographers
- **Chefs** - Fully customizable in-home meals from professional chefs
- **Massage** - Restorative massages including Swedish, deep tissue, and reflexology
- **Training** - Personal training, yoga, strength training, HIIT, and more
- **Makeup** - Professional makeup for everyday or special occasions
- **Hair** - Professional haircuts, blowouts, and styling services
- **Spa Treatments** - Facials, microdermabrasion, body scrubs, and other treatments
- **Catering** - Full-service catering with custom menus and setup
- **Prepared Meals** - Ready-to-eat meals prepared by professional chefs

*Note: Additional service types like nails are coming soon*

### Locale Support

The scraper supports 80+ locales for extracting localized content. When you specify a locale, the scraper will:

- Extract service titles, descriptions, and other content in the target language when available
- Provide localized review content with automatic translation when reviews are in different languages
- Format dates, times, and other locale-specific content according to your selected region
- Return both original and localized versions of review text for comparison

Use the `locale` parameter to specify your preferred language and region (e.g., "de-DE" for German, "ja-JP" for Japanese, "fr-FR" for French).

### Quick Start

#### Basic Service Search

```json
{
  "location": "Paris",
  "maxItems": 40,
  "currency": "EUR"
}
```

#### Filtered Search with Details

```json
{
  "location": "Berlin",
  "serviceType": "chefs",
  "checkin": "2025-08-15",
  "maxItems": 100,
  "scrapeDetails": true,
  "locale": "de-DE",
  "currency": "EUR"
}
```

#### Complete Data Extraction

```json
{
  "location": "New York",
  "serviceType": "photography",
  "maxItems": 50,
  "scrapeDetails": true,
  "scrapeReviews": true,
  "reviewLimit": 200,
  "currency": "USD"
}
```

### Input Parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `location` | String | Location to search (required) | - |
| `serviceType` | String | Service category filter | Photography |
| `checkin` | String | Check-in date (YYYY-MM-DD) | Tomorrow |
| `checkout` | String | Check-out date (YYYY-MM-DD) | Optional |
| `currency` | String | Currency for pricing | USD |
| `maxItems` | Integer | Maximum results (0 = unlimited) | 1000 |
| `scrapeDetails` | Boolean | Extract detailed information (add-on) | true |
| `scrapeReviews` | Boolean | Extract reviews (add-on) | true |
| `reviewLimit` | Integer | Maximum reviews per service | 100 |
| `proxyConfiguration` | Object | Proxy settings | Optional |

#### Available Currencies

The scraper supports 40+ currencies including EUR, USD, GBP, JPY, AUD, CAD, CHF, SEK, and many more for accurate local pricing.

### Output Data

The Airbnb services scraper extracts comprehensive data for each service:

**Basic Information (included)**

- Service ID and title
- Host information and ratings
- Pricing and currency
- Location and address details
- Basic description and highlights
- Main images
- Service category and type
- Rating averages and review counts

**Detailed Information (add-on)**

- Complete service descriptions
- Host background and verification details
- Full service offerings with pricing
- Meeting point information
- Accessibility features
- Things to know section
- Complete image galleries
- Vetting and safety information

**Reviews (add-on)**

- Customer review text and ratingsy
- Reviewer profiles and locations
- Host responses to reviews
- Review dates and verification status
- Localized content where available

#### Output example including details and reviews

For localized content (e.g., with `locale: "de-DE"`), reviews (and of course service details) include both original and translated text:

```json
{
  "review_id": "QWN0aXZpdHlMaXN0aW5nUmV2aWV3OjE0NDQxNzYwNTA5NDI3MDYxNjk=",
  "comment": "I absolutely love my photos. Some of the best photos ever taken of me. My photographer really knew what he was doing. Super talented! I booked my shoot at 8am and there were hardly any people there walking around. When I went back mid day there were hundreds if not thousands. So try to go early. And I can't recommend them enough! So happy I did this",
  "localized_comment": {
    "detectedSourceLocales": [
      "en"
    ],
    "localizedString": "Ich liebe meine Fotos. Einige der besten Fotos, die jemals von mir gemacht wurden. Mein Fotograf wusste wirklich, was er tat. Super talentiert! Ich habe mein Shooting um 8 Uhr morgens gebucht und es waren kaum Leute da, die herumliefen. Als ich mittags zurückkam, waren es Hunderte, wenn nicht Tausende. Versuche also, früh zu gehen. Und ich kann sie nicht genug empfehlen! Ich bin so froh, dass ich das gemacht habe.",
    "localizedStringLocale": "de",
    "localizedStringWithTranslationPreference": "Ich liebe meine Fotos. Einige der besten Fotos, die jemals von mir gemacht wurden. Mein Fotograf wusste wirklich, was er tat. Super talentiert! Ich habe mein Shooting um 8 Uhr morgens gebucht und es waren kaum Leute da, die herumliefen. Als ich mittags zurückkam, waren es Hunderte, wenn nicht Tausende. Versuche also, früh zu gehen. Und ich kann sie nicht genug empfehlen! Ich bin so froh, dass ich das gemacht habe.",
    "source": "I absolutely love my photos. Some of the best photos ever taken of me. My photographer really knew what he was doing. Super talented! I booked my shoot at 8am and there were hardly any people there walking around. When I went back mid day there were hundreds if not thousands. So try to go early. And I can't recommend them enough! So happy I did this",
    "sourceLocale": "en"
  },
  "preferred_comment": "I absolutely love my photos. Some of the best photos ever taken of me. My photographer really knew what he was doing. Super talented! I booked my shoot at 8am and there were hardly any people there walking around. When I went back mid day there were hundreds if not thousands. So try to go early. And I can't recommend them enough! So happy I did this",
  "rating": 5,
  "localized_created_at_date": "Vor 4 Wochen",
  "highlighted_comment": "I absolutely love my photos. Some of the best photos ever taken of me. My photographer really knew what he was doing. Super talented! I booked my shoot at 8am and there were hardly any people there walking around. When I went back mid day there were hundreds if not thousands. So try to go early. And I can't recommend them enough! So happy I did this",
  "reviewer_id": "VXNlcjoyMTAzMjkyMzg=",
  "reviewer_display_first_name": "Shelbi",
  "reviewer_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/36b0feeb-b8c2-4e84-ba86-ef65f58b6954.jpeg?aki_policy=profile_x_medium",
  "reviewer_passport_location": "Minneapolis, Minnesota",
  "reviewee_id": "VXNlcjo1MzQxMDk5Mg==",
  "reviewee_display_first_name": "Round J. Studio",
  "reviewee_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/96f2cc86-4a6b-4446-b36d-187802ec36ef.jpeg?aki_policy=profile_x_medium",
  "reviewee_passport_location": "London, Vereinigtes Königreich",
  "localized_offering_title": "Rom"
}
```

Complete service data example:

```json
{
  "service_id": "QWN0aXZpdHlMaXN0aW5nOjM2ODcwMzE=",
  "listing_id": "QWN0aXZpdHlMaXN0aW5nOjM2ODcwMzE=",
  "title": "Times Square at Night Photoshoot by Marc-Anthony",
  "description": "I know how to get people to express themselves and the story they want to tell the camera.",
  "service_category": "Photography",
  "display_location": "In home",
  "price": "From $69",
  "price_extracted": 69,
  "price_qualifier": " / guest",
  "price_accessibility_label": "From $69 per guest",
  "currency": "USD",
  "rating_average": 4.98,
  "rating_count": 425,
  "host_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
  "image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/7f9975b8-02b7-4e17-b2fc-e58375056e15.jpeg",
  "main_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/7f9975b8-02b7-4e17-b2fc-e58375056e15.jpeg",
  "detail_url": "https://www.airbnb.com/services/QWN0aXZpdHlMaXN0aW5nOjM2ODcwMzE=",
  "scraped_at": "2025-07-14T06:10:22.706880+00:00",
  "scraped_at_timestamp": 1752473422,
  "details": {
    "listing_id": "QWN0aXZpdHlMaXN0aW5nOjM2ODcwMzE=",
    "title": "Times Square at Night Photoshoot by Marc-Anthony",
    "summary": "Well hi! :) Let’s have a Photoshoot! Please read everything.\n\nYou’ll receive a preview link of all photos in 24 hours. You’ll select 1 complimentary image per person to be edited and can purchase additional edits! A Website link to download included/purchased photos will be available for 2 weeks before being removed. It’s your responsibility to check the one website link that is provided to you to see if I have uploaded your edits/unedited. I will not notify you.  \n\nPublic Bookings ($69 per person) Includes: 1 Edited Photo Each\nAdditional Purchases: Each additional Edited Photo costs: $25\nTo receive Full Unedited Gallery to download: $60\n\nIt takes 4-7 days to receive edits and 1 day to receive unedited photos from the time of payment. \n\n*PRIVATE BOOKINGS (Starting Rate: $375+) Includes: All Unedited Photos AND 10 Edited Photos.*\n\n**You must book a private booking for any special events. (Proposal, products, covers, maternity, engagement, etc) If you would like to do a photoshoot somewhere else you must book a private booking as well but please message me first before booking if wanting a different location‼\n\nThis will be a once in a lifetime 40-60 minute public group or private photoshoot.\n\nMy other experiences: \n\nCentral Park: https://www.airbnb.com/l/UWwEQmG0\nBrooklyn Bridge/Dumbo: https://www.airbnb.com/l/LFajow3l\nTimes Square DayTime: https://www.airbnb.com/l/iPBYwzsz",
    "description": "I know how to get people to express themselves and the story they want to tell the camera.",
    "meeting_point": "Infront of: Hard Rock Cafe",
    "product_type": "SERVICE",
    "service_category": "Photographer",
    "has_rating": true,
    "rating_average": 4.98,
    "rating_count": 425,
    "formatted_address": "New York, New York, 10036, United States",
    "locality": "New York",
    "service_area": {
      "description": "I travel to guests in New York. To book in a different location, you can message me.",
      "fusionArea": {
        "__typename": "GeofencingMultiPolygon",
        "envelope": {
          "northEastPoint": {
            "latitude": 40.9173,
            "longitude": -73.7003
          },
          "southWestPoint": {
            "latitude": 40.496,
            "longitude": -74.2556
          }
        }
      }
    },
    "services_location_context": "Provided at your home",
    "owner_id": "VXNlcjo0MDEzMTE2OA==",
    "owner_display_name": "Marc-Anthony",
    "owner_host_display_name": "Marc-Anthony",
    "owner_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
    "host_id": "VXNlcjo0MDEzMTE2OA==",
    "host_name": "Marc-Anthony",
    "host_display_name": "Marc-Anthony",
    "host_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
    "host_years_hosting": 7,
    "host_months_hosting": 0,
    "host_about": "I have been doing photography for 9 years now. I’m a musical theatre performer as well. I am also a born and raised New Yorker. Rare! Haha. I know all the best spots, best poses, and best angles to give you a treat of a experience. One of a kind over here.",
    "is_superhost": false,
    "user_rating_average": 4.98,
    "user_rating_count": 757,
    "cover_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/7f9975b8-02b7-4e17-b2fc-e58375056e15.jpeg",
    "image_urls": [
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/1ab80a6b-3a55-4c85-b004-6e8dc5616256.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/cf9380c8-4fe6-4ff1-ab3c-18c287611cc0.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/f0e1dd9a-50d9-41ca-ab14-9a8be22193a1.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/55ebfc6e-d5a6-4836-879c-7549ba3129c2.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/96715af3-926d-4efb-a658-5836cb4b7c2e.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/7f63a113-1870-415f-9b38-652fe4e20f84.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/0afecdbc-b807-42f3-a153-a15c02f303fd.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/7f9975b8-02b7-4e17-b2fc-e58375056e15.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/a9e94a21-8490-47b5-9fbf-7a90ab11d466.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/3ddd0324-2eba-4032-85e9-315c538dd7e5.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/cbd0ed23-293f-43c9-a130-6ebde7a9475b.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/00a814d2-b59f-4619-8c04-8dc0937e8107.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/9ae54543-8dd9-47fb-bb9c-e10a990e2675.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/4c09a2a0-b33a-4e91-9913-0382f931a235.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/40cd7352-0f31-4e4e-b21a-d312b24fd72b.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/54174a5a-f6ed-4f97-9ff1-0fe25757ddf9.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/1343d938-35f4-4013-8edf-c03e7ab4a5d8.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/c956256d-b4cb-4b4c-b61b-1b171e5e1a60.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/a4d82af9-73ec-4994-b388-07fdbbc3eaf5.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/aa94b185-278a-49f5-93ce-cc5dfd01e145.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/109b5f6b-30c9-4ccd-b634-58fa2bdd0362.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/62b45b7e-870b-4d7a-8a6c-0e66bc2bc77e.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/b71c9f7a-99d1-4c4d-b881-55b7cd89e565.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/dde5520b-4ddf-4d85-8431-c52591fd18c1.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/bb370255-3505-4895-933c-fd4a74cf2c90.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/23fdef84-f612-41e8-a471-1b7079edb654.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/c3a243e9-f941-4c98-b662-35aa12aa6691.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/8a9064dd-b0c6-45b3-9ec0-7e401aae55f7.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/22242114-b73d-45c7-83c3-d12828b1e8bf.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/ed74daf3-3aa1-4f88-a74b-9e9f6ea76141.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/8a37aad7-59b2-4254-8831-c5e9715e14fd.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/04d97ef2-bf48-4c7e-a381-74260a308b26.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/61fc881a-f29f-430f-aa08-66c4e06a49c0.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/3e9ea969-d70e-4ba8-8fd6-98382c725ab7.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/087f36df-d532-4f90-a27f-8fecb1c30d40.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/44c55294-5979-405e-b308-f0431d073d8e.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/8f6c5a7b-11eb-4bea-ac3b-dad11e35050a.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/b290fa27-ece7-4843-91a5-7d31d4d73c32.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/808026a0-2dde-41e3-975c-33953d6a3912.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/ea64425f-83f6-48c9-a60c-24fe25ecee7b.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/a7c35763-b684-42f2-ae31-1ecd9bb333eb.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/2c35d17f-2c38-41a3-acc5-5c0f18322dde.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/b2c0fb56-eccf-449e-9d87-d84ea4c124b9.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/09d46554-c50d-4f24-8a8d-1cffc4eb5edc.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/791e410e-52b1-4696-8b59-fbfede230013.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/5ef1c500-9a9d-4725-abf4-9dcf5f7a326e.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/457572e8-fd06-4539-a4bb-aa7731229047.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/2b3f4b7d-f787-4918-b340-3924ea38a852.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/0feb8f8e-fb06-4869-9391-76bc7b7ecfff.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/ab2b5758-8841-4c44-b51b-b2f67dd7aac7.jpeg",
      "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/23653afc-8dc0-4f44-bf7b-f00d9d859a51.jpeg"
    ],
    "main_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/1ab80a6b-3a55-4c85-b004-6e8dc5616256.jpeg",
    "media_gallery_title": "My portfolio",
    "offerings": [
      {
        "offering_id": "QWN0aXZpdHlPZmZlcmluZzo1MzcwOTAx",
        "title": "Express Nighttime Photoshoot",
        "description": "$65 per guest. 30 minute session. Receive all unedited photos to download in 24 hours. Purchase Edits for: $27 per photo. You'll receve edited photos within 4-7 days after payment. *All example photos have been fully edited.*\n\nYou must book the hour long “Full Experience Photoshoot” package for Engagements, Proposals, & Maternity photo sessions. The Express Photoshoot will not be an option. ",
        "duration_minutes": 30,
        "duration_text": "30 mins",
        "price": "$69",
        "price_extracted": 69,
        "price_qualifier": " / guest",
        "price_accessibility_label": "$69 per guest",
        "cover_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/cf9380c8-4fe6-4ff1-ab3c-18c287611cc0.jpeg"
      },
      {
        "offering_id": "QWN0aXZpdHlPZmZlcmluZzo1MzcwOTAy",
        "title": "Full Experience Photoshoot",
        "description": "This is a one hour long premium private session with the opportunity to be photographed in many Times Square locations. You'll receive a link of all unedited photos in one day for download. 10 edited photos aare also included in this package of your choosing and purchase additional. ",
        "duration_minutes": 60,
        "duration_text": "1 hr",
        "price": "$353",
        "price_extracted": 353,
        "price_qualifier": " / group",
        "price_accessibility_label": "$353 per group",
        "cover_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/2c35d17f-2c38-41a3-acc5-5c0f18322dde.jpeg"
      },
      {
        "offering_id": "QWN0aXZpdHlPZmZlcmluZzo1MzcwOTAz",
        "title": "Any Location Private Photoshoot",
        "description": "$450 is the minimum. Receive all unedited photos and 10 edited photos from photoshoot. Please contact host before booking this option. Time, Length & Location(s) are flexible for this Private Photoshoot.  Message host first. :)",
        "duration_minutes": 60,
        "duration_text": "1 hr",
        "price": "$450",
        "price_extracted": 450,
        "price_qualifier": " / group",
        "price_accessibility_label": "$450 per group",
        "cover_image_url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-3687031/original/23653afc-8dc0-4f44-bf7b-f00d9d859a51.jpeg"
      }
    ],
    "things_to_know": [
      {
        "title": "Guest requirements",
        "description": "Guests ages 2 and up can attend.",
        "type": "GUEST_REQUIREMENTS",
        "icon": "SYSTEM_TEAM_STROKED"
      },
      {
        "title": "Accessibility",
        "description": "Access provider supported",
        "type": "ACCESSIBILITY",
        "icon": "SYSTEM_ACCESSIBILITY"
      },
      {
        "title": "Cancellation policy",
        "description": "Cancel at least 1 day before the start time for a full refund.",
        "type": "CANCELLATION_POLICY",
        "icon": "SYSTEM_CALENDAR_CANCEL"
      }
    ],
    "host_qualifications": [
      {
        "title": "11 years of experience",
        "description": "I'm a portrait photographer, who captures the best in people infront of the camera.",
        "icon": "SYSTEM_CAMERA"
      },
      {
        "title": "Career highlight",
        "description": "I've photographed VIPs, but capturing everyday people makes me feel fulfilled.",
        "icon": "SYSTEM_STAR_BRIGHT"
      },
      {
        "title": "Education and training",
        "description": "I learned photography from working in the industry.",
        "icon": "SYSTEM_MAPS_SCHOOL_UNIVERSITY"
      }
    ],
    "accessibility_features": [
      {
        "type": "ACCESS_PROVIDER_SUPPORTED",
        "name": "Access provider supported"
      }
    ],
    "meeting_types": [
      "TRAVEL_TO_HOST",
      "TRAVEL_TO_GUEST"
    ],
    "hosted_duration_description": "Hosted in English",
    "localized_host_location_title": "Photographer in New York",
    "vetting_title": "Photographers on Airbnb are vetted for quality",
    "vetting_subtitle": "Photographers are evaluated for their professional experience, portfolio of strong work, and reputation for excellence.",
    "vetting_image_url": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-PDPM13TmpAssets/original/e6d5056c-e3a2-475a-ba6c-7ac0cfb2b637.png",
    "vetting_help_center_url": "https://www.airbnb.com/help/article/3901",
    "share_url": "https://www.airbnb.com/services/3687031?viralityEntryPoint=179&s=76",
    "detail_url": "https://www.airbnb.com/services/3687031",
    "is_upgraded": true,
    "scraped_at": "2025-07-14T06:10:23.891930+00:00",
    "scraped_at_timestamp": 1752473423,
    "actor_run_id": "local"
  },
  "reviews": [
    {
      "review_id": "QWN0aXZpdHlMaXN0aW5nUmV2aWV3OjE0NjQ4NjIzNTk3MjI4MDU0NDM=",
      "comment": "Excelente trato y dedicación de Mark, 100% recomendado. Sabe captar el momento y la emoción.",
      "localized_comment": "Excellent service and dedication from Mark, 100% recommended. They know how to capture the moment and the emotion.",
      "source_locale": "es",
      "localized_locale": "en",
      "rating": 5,
      "localized_created_at_date": "Today",
      "highlighted_comment": "Excelente trato y dedicación de Mark, 100% recomendado. Sabe captar el momento y la emoción.",
      "reviewer_id": "VXNlcjo1MDU2ODA1NjA=",
      "reviewer_display_first_name": "Miguel",
      "reviewer_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/a62a6068-cc49-4606-9d9e-ac8ecc327c1a.jpeg?aki_policy=profile_x_medium",
      "reviewer_passport_location": "Monterrey, Mexico",
      "reviewee_id": "VXNlcjo0MDEzMTE2OA==",
      "reviewee_display_first_name": "Marc-Anthony",
      "reviewee_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
      "reviewee_passport_location": "Pennsylvania, United States",
      "localized_offering_title": "Express Nighttime Photoshoot"
    },
    {
      "review_id": "QWN0aXZpdHlMaXN0aW5nUmV2aWV3OjE0NjA1NDM5MDIyMDM2MTU2MDA=",
      "comment": "This was the ultimate experience!! You made my dream come true! I felt like a star safely in the hands of a true professional artist! And the photos are phenomenal. Thank you so much.",
      "localized_comment": "This was the ultimate experience!! You made my dream come true! I felt like a star safely in the hands of a true professional artist! And the photos are phenomenal. Thank you so much.",
      "source_locale": "en",
      "localized_locale": "en",
      "rating": 5,
      "localized_created_at_date": "6 days ago",
      "highlighted_comment": "This was the ultimate experience!! You made my dream come true! I felt like a star safely in the hands of a true professional artist! And the photos are phenomenal. Thank you so much.",
      "reviewer_id": "VXNlcjozNzcyNDAzMjI=",
      "reviewer_display_first_name": "Lisa",
      "reviewer_profile_picture_url": "https://a0.muscache.com/im/pictures/user/2bc978ca-31f5-4561-97a7-891abf88ba67.jpg?aki_policy=profile_x_medium",
      "reviewer_passport_location": "Miami, FL",
      "reviewee_id": "VXNlcjo0MDEzMTE2OA==",
      "reviewee_display_first_name": "Marc-Anthony",
      "reviewee_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
      "reviewee_passport_location": "Pennsylvania, United States",
      "localized_offering_title": "Express Nighttime Photoshoot"
    },
    {
      "review_id": "QWN0aXZpdHlMaXN0aW5nUmV2aWV3OjE0NTY5MDg0MTI3NTg0NDM2NzM=",
      "comment": "What a terrific experience!  Marc-Anthony shot photos for my daughter's senior portraits and not only did they come out beautifully but he made her feel like a fashion model owning the streets of New York!  I can't recommend him highly enough!",
      "localized_comment": "What a terrific experience!  Marc-Anthony shot photos for my daughter's senior portraits and not only did they come out beautifully but he made her feel like a fashion model owning the streets of New York!  I can't recommend him highly enough!",
      "source_locale": "en",
      "localized_locale": "en",
      "rating": 5,
      "localized_created_at_date": "1 week ago",
      "highlighted_comment": "What a terrific experience!  Marc-Anthony shot photos for my daughter's senior portraits and not only did they come out beautifully but he made her feel like a fashion model owning the streets of New York!  I can't recommend him highly enough!",
      "reviewer_id": "VXNlcjo5OTgxNzAyNg==",
      "reviewer_display_first_name": "Scott",
      "reviewer_profile_picture_url": "https://a0.muscache.com/im/pictures/user/cdb5f3ae-246a-40d8-aede-35d35a201081.jpg?aki_policy=profile_x_medium",
      "reviewer_passport_location": "Templeton, CA",
      "reviewee_id": "VXNlcjo0MDEzMTE2OA==",
      "reviewee_display_first_name": "Marc-Anthony",
      "reviewee_profile_picture_url": "https://a0.muscache.com/im/pictures/user/User/original/b90f5843-74ba-4272-bd7c-ce8743e32888.jpeg?aki_policy=profile_x_medium",
      "reviewee_passport_location": "Pennsylvania, United States",
      "localized_offering_title": "Express Nighttime Photoshoot"
    }
  ]
}
```

### Add-on Features

#### Details Extraction (Add-on)

Extract comprehensive service information including:

- Complete descriptions and service offerings
- Host verification and background details
- Meeting point and accessibility information
- Full image galleries and service photos
- Safety and vetting information

#### Reviews Extraction (Add-on)

Get detailed customer feedback including:

- Review text and star ratings
- Reviewer profiles and verification status
- Host responses and engagement
- Review dates and authenticity indicators
- Multi-language support

### Pricing

The Airbnb services API uses a pay-per-result model:

- **Basic services**: Included in subscription
- **Detailed information**: Add-on feature
- **Reviews**: Add-on feature per review extracted
- **No hidden fees**: Only pay for successfully extracted data

#### Pricing Examples

##### Basic extraction (without details and without reviews)

- 1 service: $0.0051
- 1,000 services: $0.105

##### Basic extraction (without reviews, with details)

- 1 service: $0.0101
- 1,000 services: $5.1050

##### With review and details extraction

- 1 service + 100 reviews: $0.0103
- 1,000 services + 100 reviews each: $5.30
- 1,000 services + 500 reviews each: $6.10

### How It Works

1. **Service Search** - Extracts all available services with automatic pagination
2. **Detail Enhancement** - Optionally fetches comprehensive service details
3. **Review Collection** - Optionally extracts customer reviews with pagination support
4. **Data Processing** - Cleans and structures all data into consistent JSON format

### API Integration

#### Python Example

```python
from apify_client import ApifyClient

client = ApifyClient("your_token")

run = client.actor("airbnb-services-api").call({
    "location": "Barcelona",
    "serviceType": "chefs",
    "maxItems": 100,
    "scrapeDetails": True,
    "currency": "EUR"
})

for service in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{service['title']} - {service['price']}")
```

#### JavaScript Example

```javascript
import { ApifyApi } from 'apify-client';

const client = new ApifyApi({ token: 'your_token' });

const run = await client.actor('airbnb-services-api').call({
  location: "Rome",
  serviceType: "massage",
  maxItems: 50,
  scrapeReviews: true,
  reviewLimit: 100
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} massage services`);
```

### Advanced Usage

#### Multi-Location Research

Run separate extractions for different locations to compare markets:

```json
{
  "location": "Milan",
  "serviceType": "photography",
  "maxItems": 200,
  "scrapeDetails": true,
  "currency": "EUR"
}
```

#### Seasonal Analysis

Extract services for different dates to analyze seasonal availability:

```json
{
  "location": "Aspen",
  "serviceType": "spa_treatments",
  "checkin": "2025-12-15",
  "checkout": "2025-12-22",
  "maxItems": 0,
  "currency": "USD"
}
```

#### Complete Market Analysis

Get comprehensive data including reviews for deep market insights:

```json
{
  "location": "Bali",
  "maxItems": 0,
  "scrapeDetails": true,
  "scrapeReviews": true,
  "reviewLimit": 500,
  "currency": "USD"
}
```

### Proxy Configuration

Proxies are recommended for reliable access, especially for large-scale extractions:

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

### Technical Requirements

- **Proxy**: Automatic proxy configuration recommended for best results
- **Rate limits**: Built-in request management and parallel processing logic
- **Reliability**: Automatic error handling and data validation

### Data Export

Export results in multiple formats:

- **JSON** - Structured data for programmatic analysis
- **CSV** - Spreadsheet analysis and reporting
- **Excel** - Advanced data manipulation and visualization

### Automation

Set up automated data collection:

- **Scheduled runs** - Daily, weekly, or monthly extractions
- **Webhooks** - Real-time notifications for new data
- **API integration** - Connect with existing business intelligence tools
- **Market monitoring** - Track service trends over time

### Best Practices

#### For Optimal Performance

- Use specific service types rather than extracting all categories
- Implement delays between large extractions
- Use residential proxies for consistent access
- Start with smaller maxItems for testing

#### For Market Research

- Extract data for multiple time periods to identify trends
- Use different currencies based on target markets
- Combine basic and detailed data for comprehensive analysis
- Export to CSV/Excel for deeper analysis

#### For Business Intelligence

- Schedule regular runs for continuous market monitoring
- Use webhooks for real-time data integration
- Combine with external data sources for enhanced insights
- Implement data validation and quality checks

### FAQ

**Q: What service data is extracted?**
A: Basic listings include title, pricing, location, host info, and ratings. Add-on features provide detailed descriptions, full service offerings, and customer reviews. Refer to the Output Example section of this page.

**Q: How many services can I extract?**
A: Unlimited. Set `maxItems: 0` to extract all available services from your location search.

**Q: Can I filter by specific service types?**
A: Yes, choose from 9 categories including chefs, photography, massage, training, and more.

**Q: How do add-on features work?**
A: Details and reviews are optional add-on features that provide enhanced data. You're only charged for successfully extracted add-on data.

**Q: Can I extract services for specific dates?**
A: Yes, use `checkin` and `checkout` parameters to filter services available on specific dates.

**Q: What currencies are supported?**
A: 40+ currencies including major international currencies. Pricing will be displayed in your selected currency.

**Q: Is the data real-time?**
A: Data reflects current listings on Airbnb at the time of extraction, including real-time pricing and availability.

### Getting Started

1. **Create your Apify account** [here](https://console.apify.com/sign-up)
2. **Configure your search** - Set location and optional filters
3. **Choose data level** - Basic listings or enhanced with details/reviews
4. **Run extraction** - Get results in minutes
5. **Export data** - Download as JSON, CSV, or Excel
6. **Set up automation** - Schedule regular runs for monitoring

### Related Tools

Maximize your Airbnb data extraction with our complete marketplace toolkit:

#### 🎉 Airbnb Experiences API Scraper

- **What it does**: Extracts comprehensive experience data, tours, and activities from any location worldwide
- **Perfect for**: Travel planning, market research, and analyzing the experiences marketplace alongside services
- **Pricing**: Transparent Pay-per-event model with add-on features for details and reviews
- **Integration**: Perfect companion to Services API for complete Airbnb marketplace analysis
- **[Get Airbnb Experiences API →](https://apify.com/clearpath/airbnb-experiences-api)**

### Support

- 📧 **Email**: max@mapa.slmail.me
- 📖 **Found a bug?**: Use the issues tab and describe your issue
- 🔧 **Feature Requests**: Contact via email or issues tab

### Legal Compliance

This Airbnb services API scraper extracts publicly available service data. Users must comply with Airbnb's terms of service and applicable data protection regulations for their intended use.

***

[🚀 **Start Extracting Airbnb Services**](https://console.apify.com/actors/3QOhd3aceGvkT9v5X)

# Actor input Schema

## `location` (type: `string`):

Location to search in (e.g., 'Paris', 'Lyon 69003').

## `serviceType` (type: `string`):

Types of services to search for (optional). Leave empty to use default type Photography

## `checkin` (type: `string`):

Check-in date in YYYY-MM-DD format (optional, defaults to tomorrow)

## `checkout` (type: `string`):

Check-out date in YYYY-MM-DD format (optional)

## `locale` (type: `string`):

Localized results in this locale will be extracted (language and region).

## `currency` (type: `string`):

Currency for price display

## `maxItems` (type: `integer`):

Maximum number of results to scrape (0 = unlimited, scrape all services)

## `scrapeDetails` (type: `boolean`):

Enable to fetch detailed information for each service (add-on)

## `scrapeReviews` (type: `boolean`):

Enable to fetch reviews for each service (add-on)

## `reviewLimit` (type: `integer`):

Maximum number of reviews to scrape per service (0 = unlimited, can be thousands)

## `proxyConfiguration` (type: `object`):

Select proxies to be used. Proxies are recommended for best results.

## Actor input object example

```json
{
  "location": "Paris",
  "serviceType": "photography",
  "locale": "en-US",
  "currency": "USD",
  "maxItems": 10,
  "scrapeDetails": true,
  "scrapeReviews": true,
  "reviewLimit": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "location": "new york",
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/airbnb-services-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "location": "new york",
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/airbnb-services-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "location": "new york",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call clearpath/airbnb-services-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/airbnb-services-api"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3QOhd3aceGvkT9v5X/builds/YoqpvKMCeJo8Kksip/openapi.json
