Airbnb platform500 trial credits · No credit card required

Airbnb Accommodation context API

Read collected room, rating and offer context from your saved dated search. Get structured JSON through one RealtyCrawl API key.

Use the stay_id from your account’s dated search. Room observations, source ratings and any offer flags keep that search context and unknown fields. Rating scales remain unknown; offer observations do not establish a bookable room, meal entitlement or cancellation terms. This operation reads an account-owned retained observation. It does not refresh the source; inspect its collection time and retention limits. Check live capabilities for accepted inputs and availability before running your request.

Airbnb API

What can you do with the Accommodation context API?

Read collected room, rating and offer context from your saved dated search.

Example request

curl --request GET 'https://realtycrawl.dev/v1/stays/YOUR_STAY_ID/context' \
  --header "x-api-key: $REALTYCRAWL_API_KEY" \
  --header 'X-Max-Credits: 1'

Parameters

Parameters for Airbnb Accommodation context API
ParameterRequiredDescription
stay_idYesstay_id
fieldsNoResponse-only comma-separated field paths relative to data items; up to 32 paths. Source requests and billing are unchanged.
formatNoResponse-only export format. JSON retains the envelope; CSV/NDJSON contain data records, with request/credit metadata in headers. Errors stay JSON.

Use the stay_id from your account’s dated search. Room observations, source ratings and any offer flags keep that search context and unknown fields. Rating scales remain unknown; offer observations do not establish a bookable room, meal entitlement or cancellation terms.

Example response

What does the Airbnb Accommodation context API return?

The response includes a collected room, rating and source-offer context object in data, plus source outcomes and request metadata. Explore the structure below before making a call.

Illustrative response
{
  "data": {
    "description": null,
    "amenities": [
      {
        "name": "Hairdryer",
        "category": "Bathroom",
        "available": true
      },
      {
        "name": "Shampoo",
        "category": "Bathroom",
        "available": true
      },
      {
        "name": "Hot water",
        "category": "Bathroom",
        "available": true
      },
      {
        "name": "Washing machine",
        "category": "Bedroom and laundry",
        "available": true
      },
      {
        "name": "Essentials",
        "category": "Bedroom and laundry",
        "available": true
      },
      {
        "name": "Hangers",
        "category": "Bedroom and laundry",
        "available": true
      },
      {
        "name": "Iron",
        "category": "Bedroom and laundry",
        "available": true
      },
      {
        "name": "TV",
        "category": "Entertainment",
        "available": true
      },
      {
        "name": "Heating",
        "category": "Heating and cooling",
        "available": true
      },
      {
        "name": "Smoke alarm",
        "category": "Home safety",
        "available": true
      },
      {
        "name": "Carbon monoxide alarm",
        "category": "Home safety",
        "available": true
      },
      {
        "name": "Wifi",
        "category": "Internet and office",
        "available": true
      },
      {
        "name": "Dedicated workspace",
        "category": "Internet and office",
        "available": true
      },
      {
        "name": "Kitchen",
        "category": "Kitchen and dining",
        "available": true
      },
      {
        "name": "Fridge",
        "category": "Kitchen and dining",
        "available": true
      },
      {
        "name": "Cooking basics",
        "category": "Kitchen and dining",
        "available": true
      },
      {
        "name": "Coffee maker",
        "category": "Kitchen and dining",
        "available": true
      },
      {
        "name": "Exterior security cameras on property",
        "category": "Not included",
        "available": false
      },
      {
        "name": "Air conditioning",
        "category": "Not included",
        "available": false
      },
      {
        "name": "Private entrance",
        "category": "Not included",
        "available": false
      }
    ],
    "source_policies": null,
    "stay_id": "YOUR_STAY_ID",
    "room": null,
    "ratings": [
      {
        "kind": "source_category_score",
        "category": "accuracy",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "checking",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "cleanliness",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "communication",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "location",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "value",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      },
      {
        "kind": "source_category_score",
        "category": "guestSatisfaction",
        "value": 5,
        "scale": null,
        "source": {
          "platform": "airbnb",
          "provider": "example",
          "country": "GB",
          "native_id": "EXAMPLE_STAY_ID",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        }
      }
    ],
    "source_offer_observations": null,
    "check_in": "2026-12-01",
    "check_out": "2026-12-03",
    "origin": "source_reported",
    "completeness": "unknown",
    "source": {
      "platform": "airbnb",
      "provider": "example",
      "country": "GB",
      "native_id": "EXAMPLE_STAY_ID",
      "observed_at": "2026-01-01T12:00:00Z",
      "access_class": "public_portal"
    }
  },
  "meta": {
    "request_id": "example_request",
    "schema_version": "1.0.0",
    "generated_at": "2026-01-01T12:00:00Z",
    "completeness": "unknown",
    "sources": [
      {
        "platform": "airbnb",
        "status": "success"
      }
    ]
  }
}

Schema example with placeholder values; not a live source result. Actual fields, values, and completeness vary by source and request.

API details

How does the Airbnb Accommodation context API work?

Send a GET request with your API key and accepted inputs. RealtyCrawl returns structured JSON and preserves the source context for your application.

Method

GET

Response

JSON · CSV · NDJSON

GET /v1/stays/{stay_id}/context
Why RealtyCrawl

Why use RealtyCrawl for Airbnb Accommodation context?

Keep source collection behind a shared interface so you can focus on the product you’re building.

Developer first

How do you bring real estate data into your app?

Use familiar HTTP requests, inspect a common schema, and connect the results to the tools your team already uses.

One key, many sources

Use the same credential across supported operations and check capabilities for each source.

Property data with context

Keep currencies, area units, source identifiers, and observation times with your results.

Your language, your workflow

Call the API with cURL, Python, TypeScript, or any backend that can send an HTTP request.

import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'zillow'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'redfin'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'realtor'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'rightmove'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'idealista'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
Capability excerpt · illustrative
{
  "platform": "zillow",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "redfin",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "realtor",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "rightmove",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "GB"
  ],
  "execution": "sync"
}
{
  "platform": "idealista",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "ES"
  ],
  "execution": "sync"
}
Browse the platform catalog
FAQ

Have a question?
We got answers

Find answers to common questions about Airbnb requests, responses, and credits.

Contact us
How can I try the Airbnb Accommodation context API?

Create an account for 500 trial credits, check live capabilities for Airbnb, and use the example request above with your API key. This operation lists 1 credits per successful call.

What does the Accommodation context API return?

The JSON response contains a collected room, rating and source-offer context object in data. The meta object carries request diagnostics and source outcomes. CSV/NDJSON exports contain data records with request and credit metadata in headers.

Where do I put the request parameters?

Use the stay_id from your account’s dated search. Room observations, source ratings and any offer flags keep that search context and unknown fields. Rating scales remain unknown; offer observations do not establish a bookable room, meal entitlement or cancellation terms.

Is this endpoint available for every market?

Availability is operation-specific. Check /v1/meta/capabilities for the platform’s live status, accepted selectors, and markets. Unavailable requests are not charged.

Is this an official Airbnb endpoint?

RealtyCrawl is an independent real estate data API and is not affiliated with Airbnb.

Ready to use Airbnb Accommodation context?

Get your API key and start building a source-linked property workflow.

Get an API key

1 credits per successful call · Failed calls are refunded