Travel & Lodging

How do you search Airbnb stays via API?

To search Airbnb stays via API, call ReefAPI's stays.search action with destination, dates and guests; it returns live stay results as structured JSON with listing, rating, price and pagination fields.

Airbnb engineLive JSON4 steps1,000 free credits

This guide demonstrates the real Airbnb API engine with a captured response from . The example is only published because the engine passed the SEO snapshot gate.

Use case

Vacation-rental search, destination research, price monitoring and itinerary planning.

Step by step

Call the live endpoint

  1. 1

    Set destination, dates and guests

    Pass a destination query, check-in, check-out and adult count that match your user journey.

  2. 2

    Call airbnb/v1/stays.search

    POST the request through ReefAPI and read data.items plus pagination metadata.

  3. 3

    Store listing signals

    Keep listing id, name, rating, price, coordinates, badges and capture time.

  4. 4

    Paginate carefully

    Use pagination metadata when you need broader coverage, and dedupe listing ids across pages.

Code

Copy the request

These snippets use the captured request params for airbnb/v1/stays.search.

curl -X POST https://api.reefapi.com/airbnb/v1/stays.search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"Istanbul, Turkey","checkin":"2026-08-10","checkout":"2026-08-15","adults":2}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.airbnb.stays.search with {"query":"Istanbul, Turkey","checkin":"2026-08-10","checkout":"2026-08-15","adults":2}.
Real response

Captured output from ReefAPI

Captured on UTC. The response below is the committed snapshot, including the API envelope and metadata.

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/airbnb/v1/stays.search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "Istanbul, Turkey",
    "checkin": "2026-08-10",
    "checkout": "2026-08-15",
    "adults": 2
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "airbnb",
    "endpoint": "stays.search",
    "mode": "live",
    "latency_ms": 1299.4,
    "record_count": 26,
    "bytes": 906622,
    "cache_hit": false,
    "expected_tokens_ok": "[redacted-secret]",
    "parser": "stays_search_html",
    "pagination": {
      "has_more": true,
      "next_cursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjozNiwidmVyc2lvbiI6MX0=",
      "cursor_count": 15
    }
  },
  "data": {
    "items": [
      {
        "id": "[redacted-phone]",
        "name": "[redacted-name]",
        "rating": "5.0 (28)",
        "rating_label": "5.0 out of 5 average rating,  28 reviews",
        "price": "€363 total, originally €646",
        "coordinate": {
          "lat": 41.0274,
          "lng": 28.9758
        },
        "badges": [
          "Guest favorite"
        ],
        "subtitle": "A Modern Apartment in Galata – 2 Minutes to the Subway",
        "raw": {
          "__typename": "StaySearchResult",
          "avgRatingA11yLabel": "5.0 out of 5 average rating,  28 reviews",
          "avgRatingLocalized": "5.0 (28)",
          "listingParamOverrides": null,
          "structuredDisplayPrice": {
            "__typename": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "explanationData": "[trimmed-depth]",
            "explanationDataDisplayPosition": "[trimmed-depth]",
            "displayPriceStyle": "[trimmed-depth]",
            "loggingMetadata": "[trimmed-depth]"
          },
          "badges": [
            "[trimmed-depth]"
          ],
          "contextualPictures": [
            "[trimmed-depth]",
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "paymentMessages": [
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "title": "Apartment in Istanbul",
          "subtitle": "A Modern Apartment in Galata – 2 Minutes to the Subway",
          "nameLocalized": {
            "__typename": "[trimmed-depth]",
            "localizedStringWithTranslationPreference": "[trimmed-depth]"
          },
          "propertyId": null,
          "structuredContent": {
            "__typename": "[trimmed-depth]",
            "distance": "[trimmed-depth]",
            "mapCategoryInfo": "[trimmed-depth]",
            "mapPrimaryLine": "[trimmed-depth]",
            "mapSecondaryLine": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "tertiaryLine": "[trimmed-depth]",
            "reviewSnippet": "[trimmed-depth]",
            "explanation": "[trimmed-depth]"
          },
          "passportData": null,
          "demandStayListing": {
            "__typename": "[trimmed-depth]",
            "id": "[trimmed-depth]",
            "location": "[trimmed-depth]",
            "description": "[trimmed-depth]",
            "wishlistItems": "[trimmed-depth]",
            "nameLocale": "[trimmed-depth]"
          },
          "priceBreakdownMessages": []
        }
      },
      {
        "id": "[redacted-phone]",
        "name": "[redacted-name]",
        "rating": "4.82 (68)",
        "rating_label": "4.82 out of 5 average rating,  68 reviews",
        "price": "€316 total, originally €405",
        "coordinate": {
          "lat": 41.0298,
          "lng": 28.97502
        },
        "badges": [
          "Guest favorite"
        ],
        "subtitle": "Balcony Studio• Sea ​​View Terrace | In The Taksim",
        "raw": {
          "__typename": "StaySearchResult",
          "avgRatingA11yLabel": "4.82 out of 5 average rating,  68 reviews",
          "avgRatingLocalized": "4.82 (68)",
          "listingParamOverrides": null,
          "structuredDisplayPrice": {
            "__typename": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "explanationData": "[trimmed-depth]",
            "explanationDataDisplayPosition": "[trimmed-depth]",
            "displayPriceStyle": "[trimmed-depth]",
            "loggingMetadata": "[trimmed-depth]"
          },
          "badges": [
            "[trimmed-depth]"
          ],
          "contextualPictures": [
            "[trimmed-depth]",
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "paymentMessages": [
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "title": "Hotel in Istanbul",
          "subtitle": "Balcony Studio• Sea ​​View Terrace | In The Taksim",
          "nameLocalized": {
            "__typename": "[trimmed-depth]",
            "localizedStringWithTranslationPreference": "[trimmed-depth]"
          },
          "propertyId": null,
          "structuredContent": {
            "__typename": "[trimmed-depth]",
            "distance": "[trimmed-depth]",
            "mapCategoryInfo": "[trimmed-depth]",
            "mapPrimaryLine": "[trimmed-depth]",
            "mapSecondaryLine": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "tertiaryLine": "[trimmed-depth]",
            "reviewSnippet": "[trimmed-depth]",
            "explanation": "[trimmed-depth]"
          },
          "passportData": null,
          "demandStayListing": {
            "__typename": "[trimmed-depth]",
            "id": "[trimmed-depth]",
            "location": "[trimmed-depth]",
            "description": "[trimmed-depth]",
            "wishlistItems": "[trimmed-depth]",
            "nameLocale": "[trimmed-depth]"
          },
          "priceBreakdownMessages": []
        }
      },
      {
        "id": "[redacted-phone]",
        "name": "[redacted-name]",
        "rating": "4.95 (38)",
        "rating_label": "4.95 out of 5 average rating,  38 reviews",
        "price": "€385 total",
        "coordinate": {
          "lat": 41.0361,
          "lng": 28.9738
        },
        "badges": [
          "Guest favorite"
        ],
        "subtitle": "The Blue flat with a View",
        "raw": {
          "__typename": "StaySearchResult",
          "avgRatingA11yLabel": "4.95 out of 5 average rating,  38 reviews",
          "avgRatingLocalized": "4.95 (38)",
          "listingParamOverrides": null,
          "structuredDisplayPrice": {
            "__typename": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "explanationData": "[trimmed-depth]",
            "explanationDataDisplayPosition": "[trimmed-depth]",
            "displayPriceStyle": "[trimmed-depth]",
            "loggingMetadata": "[trimmed-depth]"
          },
          "badges": [
            "[trimmed-depth]"
          ],
          "contextualPictures": [
            "[trimmed-depth]",
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "paymentMessages": [],
          "title": "Apartment in Istanbul",
          "subtitle": "The Blue flat with a View",
          "nameLocalized": {
            "__typename": "[trimmed-depth]",
            "localizedStringWithTranslationPreference": "[trimmed-depth]"
          },
          "propertyId": null,
          "structuredContent": {
            "__typename": "[trimmed-depth]",
            "distance": "[trimmed-depth]",
            "mapCategoryInfo": "[trimmed-depth]",
            "mapPrimaryLine": "[trimmed-depth]",
            "mapSecondaryLine": "[trimmed-depth]",
            "primaryLine": "[trimmed-depth]",
            "secondaryLine": "[trimmed-depth]",
            "tertiaryLine": "[trimmed-depth]",
            "reviewSnippet": "[trimmed-depth]",
            "explanation": "[trimmed-depth]"
          },
          "passportData": null,
          "demandStayListing": {
            "__typename": "[trimmed-depth]",
            "id": "[trimmed-depth]",
            "location": "[trimmed-depth]",
            "description": "[trimmed-depth]",
            "wishlistItems": "[trimmed-depth]",
            "nameLocale": "[trimmed-depth]"
          },
          "priceBreakdownMessages": []
        }
      }
    ],
    "raw_count": 44,
    "unique_count": 26,
    "pagination": {
      "cursor_count": 15,
      "cursors": [
        {
          "cursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjowLCJ2ZXJzaW9uIjoxfQ==",
          "items_offset": 0
        },
        {
          "cursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjoxOCwidmVyc2lvbiI6MX0=",
          "items_offset": 18
        },
        {
          "cursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjozNiwidmVyc2lvbiI6MX0=",
          "items_offset": 36
        }
      ],
      "deduped": true
    }
  }
}
Manual way

Why this is hard manually

Vacation-rental search changes with destination, dates, guests, filters, availability and pagination. Manual scraping has to parse interactive result cards and keep listing ids stable while prices and badges change.

For repeatable travel workflows, you need the exact input parameters, result count and next-page state stored alongside the listing data.

ReefAPI way

Why ReefAPI solves it

The captured Airbnb snapshot searches Istanbul stays for two adults and returns live listing cards, ratings, prices, coordinates, badges and pagination metadata. The guide renders that response directly from the snapshot file.

Use it for short-term rental discovery, travel planning agents, pricing research or availability monitoring.

FAQ

Questions developers ask

Does this require an Airbnb account?

No. The guide demonstrates ReefAPI's Airbnb search endpoint using a ReefAPI key.

Does the response include coordinates?

The captured response includes listing coordinates where available.

Can I search other destinations?

Yes. Change the query and date parameters according to the docs page.

Are prices guaranteed final checkout prices?

No. Treat visible search prices as search-result data and verify details in your own booking or pricing workflow.