Airbnb Room Details Scraper avatar
Airbnb Room Details Scraper

Pricing

$4.99/month + usage

Go to Apify Store
Airbnb Room Details Scraper

Airbnb Room Details Scraper

Automated Airbnb data extraction tool that collects room details listings, pricing, ratings, and property details at scale. Perfect for market research, competitor analysis, and price monitoring.

Pricing

$4.99/month + usage

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Airbnb Details Scraper Actor

A powerful Apify Actor for scraping Airbnb listings and room details. Search multiple locations simultaneously or fetch details for specific room URLs with full support for date ranges and guest counts.

Features

Dual Mode Operation

  • Search Mode: Find listings by location (city, neighborhood, address)
  • Room Details Mode: Get detailed information for specific Airbnb URLs

🚀 Batch Processing

  • Process multiple locations in a single run
  • Scrape multiple room URLs simultaneously
  • Configurable delays between requests

📊 Rich Data Extraction

  • Full listing details including pricing, amenities, and reviews
  • Support for date-specific pricing (check-in/check-out dates)
  • Customizable guest count (up to 16 adults)

🔧 Flexible Configuration

  • Adjustable result limits per location
  • Optional detailed information fetching
  • Custom API endpoint support via environment variables

Input Parameters

ParameterTypeRequiredDefaultDescription
locationsarrayNo*["London", "Paris", "New York"]Array of locations to search
max_resultsintegerNo10Number of listings per location (1-50)
fetch_detailsbooleanNotrueWhether to fetch full listing details

Room URL Scraping

ParameterTypeRequiredDefaultDescription
room_urlsarrayNo*["https://www.airbnb.com/rooms/..."]Array of Airbnb room URLs

Common Parameters

ParameterTypeRequiredDefaultDescription
check_instringNo"2024-10-08"Check-in date (YYYY-MM-DD format)
check_outstringNo"2024-10-14"Check-out date (YYYY-MM-DD format)
adultsintegerNo1Number of adults (1-16)
delay_between_requestsnumberNo1.0Delay between requests in seconds (0.5-5.0)

* At least one of locations or room_urls must be provided

Input Example

{
"locations": [
"Manhattan, New York",
"Brooklyn, New York",
"London, UK"
],
"room_urls": [
"https://www.airbnb.com/rooms/53802054",
"https://www.airbnb.com/rooms/1105843987225700418"
],
"max_results": 20,
"fetch_details": true,
"check_in": "2024-12-20",
"check_out": "2024-12-27",
"adults": 2,
"delay_between_requests": 1.5
}

Output Format

The actor pushes data to the dataset in real-time. Each result is tagged with a type for easy filtering.

Search Results

{
"id": "loc_1_item_1",
"type": "search_result",
"location": "Manhattan, New York",
"data": {
"room_id": "12345678",
"title": "Cozy Studio in Midtown",
"location": "Manhattan, New York, NY",
"price": "$150/night",
"rating": 4.8,
"reviews_count": 234,
"amenities": ["WiFi", "Kitchen", "AC"],
"url": "https://www.airbnb.com/rooms/12345678"
},
"parameters": {
"location_index": 1,
"total_locations": 3,
"max_results": 20,
"fetch_details": true
},
"timestamp": "2024-02-03T10:30:45Z"
}

Room Details

{
"id": "room_1",
"type": "room_result",
"room_url": "https://www.airbnb.com/rooms/53802054",
"data": {
"room_id": "53802054",
"title": "Beautiful Loft with City Views",
"location": "Brooklyn, New York",
"price": "$200/night",
"total_price": "$1400",
"bedrooms": 2,
"bathrooms": 1,
"max_guests": 4,
"amenities": ["WiFi", "Kitchen", "Washer", "Dryer"],
"host": {
"name": "John",
"superhost": true
}
},
"parameters": {
"room_index": 1,
"total_rooms": 2,
"check_in": "2024-12-20",
"check_out": "2024-12-27",
"adults": 2
},
"timestamp": "2024-02-03T10:31:00Z"
}

Error Results

{
"type": "search_error",
"location": "Invalid Location",
"error": "API returned status 404",
"details": "Location not found",
"index": 2
}

Summary

At the end of each run, a summary object is pushed:

{
"type": "summary",
"parameters": {
"max_results": 20,
"fetch_details": true,
"check_in": "2024-12-20",
"check_out": "2024-12-27",
"adults": 2,
"delay_between_requests": 1.5
},
"locations_count": 3,
"rooms_count": 2,
"stats": {
"total_locations": 3,
"total_rooms": 2,
"completed_searches": 3,
"completed_rooms": 2,
"failed_searches": 0,
"failed_rooms": 0,
"total_listings": 60,
"status": "completed"
},
"location_results_summary": [
{
"location": "Manhattan, New York",
"count": 20,
"data": []
}
],
"room_results_summary": [
{
"room_url": "https://www.airbnb.com/rooms/53802054",
"title": "Beautiful Loft with City Views",
"location": "Brooklyn, New York"
}
],
"timestamp": 1707123456.789
}

Usage Examples

Example 1: Search Multiple Cities

{
"locations": [
"Paris, France",
"Rome, Italy",
"Barcelona, Spain"
],
"max_results": 15,
"check_in": "2024-08-01",
"check_out": "2024-08-07",
"adults": 2
}

Example 2: Get Details for Specific Rooms

{
"room_urls": [
"https://www.airbnb.com/rooms/12345",
"https://www.airbnb.com/rooms/67890",
"https://www.airbnb.com/rooms/11111"
],
"check_in": "2024-09-15",
"check_out": "2024-09-22",
"adults": 4
}

Example 3: Combined Search and Room Details

{
"locations": ["Tokyo, Japan"],
"room_urls": [
"https://www.airbnb.com/rooms/98765"
],
"max_results": 10,
"fetch_details": true,
"adults": 2,
"delay_between_requests": 2.0
}

URL Format Requirements

Room URLs must match the following format:

  • https://www.airbnb.com/rooms/[ROOM_ID]
  • https://airbnb.com/rooms/[ROOM_ID]
  • https://www.airbnb.co.uk/rooms/[ROOM_ID] (or other country TLDs)

Invalid URLs will be logged as errors and skipped.

Performance & Rate Limiting

  • Concurrent Processing: Requests are processed sequentially with configurable delays
  • Timeout: Each API request has a 120-second timeout
  • Delay: Adjust delay_between_requests (0.5-5.0 seconds) to control request rate
  • Batch Size: No hard limit on number of locations or URLs, but consider API quotas

Error Handling

The actor handles errors gracefully:

  • Invalid URLs are logged and skipped
  • Failed API requests are recorded with error details
  • Network timeouts are caught and reported
  • The actor continues processing remaining items after errors

Statistics & Monitoring

Access detailed statistics via the key-value store:

  • Total locations/rooms processed
  • Success/failure counts
  • Total listings found
  • Success rates for both search and room modes

View logs in real-time to monitor progress:

Searching location: Paris, France (1/3)
Location 'Paris, France': Retrieved 15 listings
Fetching room: https://www.airbnb.com/rooms/12345 (1/2)
Room URL 'https://www.airbnb.com/rooms/12345': Retrieved details

Common Use Cases

  1. Market Research: Compare pricing across multiple cities
  2. Property Analysis: Get detailed information for specific listings
  3. Travel Planning: Find available accommodations for specific dates
  4. Competitive Analysis: Monitor pricing and availability trends
  5. Data Collection: Build datasets for analysis or machine learning

Troubleshooting

No Results Returned

  • Verify your API credentials are set correctly
  • Check that locations are spelled correctly
  • Ensure room URLs match the required format

Request Timeouts

  • Increase delay_between_requests to reduce load
  • Check your API endpoint is responding correctly
  • Reduce max_results per location

Invalid Room URLs

  • URLs must start with http:// or https://
  • Must include /rooms/ followed by a numeric ID
  • Country-specific domains (.co.uk, .fr, etc.) are supported

Support & Feedback

For issues or feature requests:

  1. Check the Actor logs for detailed error messages
  2. Verify your input parameters match the schema
  3. Ensure environment variables are set correctly
  4. Contact support with your Actor run ID for assistance

Version History

  • 1.0.0: Initial release with location search and room details support
    • Multi-location batch processing
    • Room URL scraping
    • Date-specific pricing
    • Configurable delays and result limits