HasData
Scraper API

Airbnb Scraper API

with live prices for your dates

Search Airbnb listings for a location and dates. One request returns titles, ratings, and full price breakdowns as clean JSON, discounts and fees included. We run the browsers and infrastructure.

SUCCESS
99.8%

of requests succeed

P50
1.2s

median response

P95
1.3s

95% finish faster

PRICE
$0.42

per 1k requests at volume

Stop maintaining scrapers

Airbnb ships changes weekly. Your code shouldn't care.

  • GraphQL payloads that change without notice
  • Prices that need dates and sessions
  • A headless fleet to keep warm
  • Pagination tokens that expire
  • Fix the parsers again next week
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in price
fix: GraphQL payload shape changed
fix: page token expired mid-crawl
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: price breakdown missing fees
fix: currency switches with locale
chore: re-run failed batch overnight
fix: photos array came back empty
fix: retry storm on timeouts
hotfix: markup changed, nulls in price
fix: GraphQL payload shape changed
fix: page token expired mid-crawl
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: price breakdown missing fees
fix: currency switches with locale
chore: re-run failed batch overnight
fix: photos array came back empty
fix: retry storm on timeouts
hotfix: markup changed, nulls in price
fix: GraphQL payload shape changed
fix: page token expired mid-crawl
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: price breakdown missing fees
fix: currency switches with locale
chore: re-run failed batch overnight
fix: photos array came back empty
fix: retry storm on timeouts
hotfix: markup changed, nulls in price
fix: GraphQL payload shape changed
fix: page token expired mid-crawl
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: price breakdown missing fees
fix: currency switches with locale
chore: re-run failed batch overnight
fix: photos array came back empty
fix: retry storm on timeouts
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/airbnb/listing' \
	--data-urlencode 'location=New York' \
	--data-urlencode 'checkIn=2026-09-20' \
	--data-urlencode 'checkOut=2026-09-24' \
	--data-urlencode 'neLat=40.8' \
	--data-urlencode 'neLng=-73.9' \
	--data-urlencode 'swLat=40.6' \
	--data-urlencode 'swLng=-74.1' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
location Location
The location to search for listings. Required unless a full map bounding box (neLat, neLng, swLat, swLng) is provided.
checkIn * Check-in Date
The check-in date for the listings.
checkOut Check-out Date
The check-out date for the listings.
neLat North-East Latitude
North-east corner latitude of the map bounding box. When all four bounding-box coordinates are provided, listings are searched within the box instead of by location.
neLng North-East Longitude
North-east corner longitude of the map bounding box.
swLat South-West Latitude
South-west corner latitude of the map bounding box.
swLng South-West Longitude
South-west corner longitude of the map bounding box.
adults Number of Adults
Number of adults.
children Number of Children
Number of children.
infants Number of Infants
Number of infants.
pets Number of Pets
Number of pets.
nextPageToken Next Page Token
The token used to retrieve the next page of results.
TRY ALL 12 PARAMETERS FREE
AI Integration

Add Airbnb Scraper API with your AI agent

Paste a ready-to-use integration prompt into your coding agent. It includes API references, setup requirements, and testing instructions.

airbnb-integration.md
# Integrate HasData Airbnb Scraper API

## Task

Add the requested Airbnb search or property-data workflow to this project using HasData Airbnb Scraper API.
Inspect project instructions, the server-side runtime, existing HTTP client, and tests first.
Follow the project's conventions and preserve unrelated code. No new SDK is required.
Implement only the endpoint or workflow needed for the user's task; do not add a full travel platform.
If the task is unclear, ask whether they need search results, property details, or both.
Do not replace the REST integration with an MCP connection or a custom Airbnb scraper.

## References

Read the endpoint documentation before implementing:

- Listing search: https://docs.hasdata.com/apis/airbnb/listing.md
- Property details: https://docs.hasdata.com/apis/airbnb/property.md
- Error handling: https://docs.hasdata.com/api-codes.md
- Documentation index: https://docs.hasdata.com/llms.txt
- Full documentation (fallback): https://docs.hasdata.com/llms-full.txt

Start with the endpoint references. Use `llms.txt` to find additional pages.
Use `llms-full.txt` only when needed; extract relevant sections instead of loading everything into context.
If a `.md` reference is unavailable, try its HTML URL without `.md`.
If it is still unavailable, ask for the missing documentation rather than guessing.

## Optional agent skill

If the official `hasdata` skill is already available, use its relevant guidance.
Otherwise, if this agent supports skills, ask before installing it in this project:

```sh
npx skills add hasdata/agent-skills --skill hasdata
```

Run from the project directory and select the coding agent in use.
The `hasdata-cli` skill is not required. If installation is declined or unsupported, continue with the docs.
Flag conflicts between skill guidance and current API docs rather than guessing.

## Implementation

- Listing search: `GET https://api.hasdata.com/scrape/airbnb/listing`.
- Accept required `checkIn` and a `location`, unless using all four map bounds: `neLat`, `neLng`, `swLat`, and `swLng`. Do not send a partial bounding box.
- Accept `checkOut`, `adults`, `children`, `infants`, and `pets` when relevant. Use agreed future dates and preserve these inputs with saved results.
- Property details: `GET https://api.hasdata.com/scrape/airbnb/property`, with the required Airbnb listing `url`. Do not assume it accepts search dates or guest filters.
- Encode query parameters correctly. Preserve returned JSON: listing `properties` and `pagination`, or the detail `property` object, including available amenities, host details, and disclosures.
- If pagination is needed, accept the returned `nextPageToken`; do not automatically fetch every page.
- Keep price qualifiers and breakdowns intact. Do not infer booked nights, occupancy, rental income, or current availability from a saved listing response.
- Handle timeouts, documented errors, empty searches, and missing optional fields. Do not invent absent prices or amenity values.
- Keep requests server-side. If there is no suitable server-side runtime, discuss options before changing the architecture.

## Credentials

- Implement the integration and mocked tests without requiring a live API key.
- Read `HASDATA_API_KEY` from the project's existing environment or secret store and send it as `x-api-key`.
- If the key is missing before live verification, ask the user to configure it from https://app.hasdata.com/api-keys.
- Never ask the user to paste the key into chat. Check only that it is configured, without printing its value.
- Never put the key in browser code, logs, or version control. Add only a placeholder to the project's example configuration.
- If using a local `.env` file, make sure it is gitignored.
- Send the key only to `https://api.hasdata.com`. Never forward it to documentation, result URLs, or redirects to another origin.

## Verification

- Add mocked tests for parameter validation, query encoding, success, empty searches, missing optional fields, and documented errors. Include a usage example and run local checks.
- Only after explicit user approval and with a configured key, make one live verification request with agreed inputs and valid dates where required. Successful requests consume credits.
- Validate the HTTP status, documented API status, and response structure. An empty result set can be valid.
- Do not automatically repeat paid requests to obtain a nonempty response.
- Report changed files, setup commands, and test results. State separately whether live verification passed, failed, or was skipped.
- Ask before deploying.

Use Cases

Build with Airbnb rental data

Compare stay prices, match guest requirements, and research host profiles with structured Airbnb listing and property data.

Compare vacation rental prices

Use Airbnb prices and stay-length qualifiers to build rental comparison tools and track changes across saved searches.

  • New York
  • Check-in: September 20, 2026
  • 1 night
One-night Airbnb offers Rental offers
One-night Airbnb offers — Rental offers
ListingDisplayed price
Classic Brownstone, a Private Studio Apartment$230
Room in Chelsea 2 (Shared Bathroom)$130
Private bedroom in Manhattan Upper East Side$195
API data
properties[].descriptionproperties[].priceproperties[].id
Your app
Save search snapshots, match dates and guest counts, and calculate price changes in your application.
Explore response fields

Captured September 16, 2026, with no guest count supplied. Displayed dollar prices are observations, not guaranteed availability or revenue.

Match rentals to guest requirements

Filter Airbnb property data by guest capacity, sleeping arrangements, and amenities for family trips or remote-work stays.

  • Garden in Bangkok
  • Bangkok, Thailand
Space and amenities Property match
Space and amenities — Property match
RequirementListing data
Guest capacity7
Sleeping arrangements3 bedrooms · 7 beds
WifiAvailable
Dedicated workspaceAvailable
KitchenNot available
API data
property.guestCapacityproperty.overviewproperty.amenities
Your app
Apply your guest and amenity filters, then rank matching properties for your travel search or shortlist.

Research short-term rental hosts

Combine Superhost status, hosting experience, ratings, and review counts to compare the public profiles behind vacation rental listings.

  • Garden in Bangkok
  • Host profile
Host reputation signals Host profile
Host reputation signals — Host profile
SignalReturned value
SuperhostYes
Years hosting11
Host rating4.87
Host reviews534
API data
property.host.isSuperhostproperty.host.yearsHostingproperty.host.ratingproperty.host.reviews
Your app
Collect public host profiles across your selected properties and calculate comparisons; the API does not score investment quality.

Surface missing safety disclosures

Read Airbnb safety disclosures to flag listings that need follow-up before adding them to a managed travel shortlist.

  • Garden in Bangkok
  • Listing disclosures
Disclosures requiring follow-up Illustrative app output
Disclosures requiring follow-up — Illustrative app output
Returned disclosureApp action
Carbon monoxide alarm not reportedAsk the host
Smoke alarm not reportedAsk the host
API data
property.safetyAndPropertyInfo[].titleproperty.safetyAndPropertyInfo[].type
Your app
Flag missing disclosures for human follow-up. Do not turn an unreported alarm into a verified absence or safety rating.
Response

Every stay, one predictable schema

Explore listing prices, property details, host profiles, safety information, and pagination tokens in the response excerpts below.

properties.json
[
  {
    "id": "28909212",
    "url": "https://www.airbnb.com/rooms/28909212",
    "title": "Home in East Austin",
    "latitude": 30.2744,
    "longitude": -97.7288,
    "rating": 4.94,
    "reviews": 447,
    "badges": [
      "Guest favorite"
    ],
    "photos": [
      "https://a0.muscache.com/..."
    ],
    "price": {
      "discountedPrice": "$487"
    }
  }
]
Fields in properties
title string

Listing title

latitude / longitude number

Map coordinates

rating number

Average review score

reviews number

Review count

badges string[]

Guest favorite, Superhost, …

photos string[]

Image URLs

price object

Price for the requested dates

url string

Listing URL for the property endpoint

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.

Hussein Ali
Hussein Ali
Clutch Clutch ★★★★★

We were particularly impressed with how easily we could integrate HasData into our existing workflow.

TB
Taras Bazyshyn
CEO at BAZTDL Sp. z o.o
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
Free forever
200 requests / month
1,000 credits / month
1 concurrent request
Structured JSON, no parsers to maintain
Only successful requests billed
Team seats
Community support
Start free
Startup
$49 /mo
$1.23 / 1k requests
40K requests / month
200K credits / month
5 concurrent requests
Structured JSON, no parsers to maintain
Only successful requests billed
Team seats
Email support
Get started
Basic
Recommended
$99 /mo
$0.50 / 1k requests
200K requests / month
1M credits / month
15 concurrent requests
Structured JSON, no parsers to maintain
Only successful requests billed
Team seats
Priority email support
Get started
Growth
$208 /mo
$0.35 / 1k requests
3M credits / month
50 concurrent requests
Structured JSON, no parsers to maintain
Only successful requests billed
Team seats
Dedicated account manager
Get started
Monthly request volume
Free 200K 1M 4M
Best fit
Basic
requests / mo
200K
Concurrency
15
$ / 1k requests
$0.50
$99 /mo
Get Started
Enterprise
Custom price based on required volume

Past 20M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
Security review
Security questionnaire, DPA, and controls overview.
Talk to sales Quote within one business day
FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first Airbnb listing
is minutes away

200 requests free · no credit card