Vacation rental pricing

Vacation rental pricing from real Airbnb and Vrbo quotes

Day-by-day availability and stay rules for any Airbnb listing, Airbnb's own quoted price for the nights you choose, and Vrbo search and quotes on the same key.

Built forProperty managersDynamic-pricing toolsShort-term rental investorsRental analytics

Endpoints used

See it in action

A comparable listing, night by night

Availability, stay rules and Airbnb's own quotes for one month. Pick a night to see the quote.

  • data from the API
  • added by your code

Example · rental benchmark

What does a comparable listing charge, night by night?

  1. POST /v1/airbnb/calendar
  2. your pricing rules

Open nights

19 of 30

Avg nightly

$177

Min stay

2 nights

June 2027 · quoted for 2-night stays · 2 guests

MTWTFSS
  • priced
  • unavailable
  • stay_blocked
  • check_in_not_allowed

Check in Tue, Jun 8

2 nights × $169
$338.00
taxes
$64.22
total
$402.22

Nightly rate is all-in before taxes: cleaning and guest fees are spread over the stay.

Fictional listing, illustrative quotes. Statuses use the API's price_status values.

The problem

What do comparable Airbnb and Vrbo listings charge?

A rental's nightly rate depends on the stay. Cleaning and guest fees are spread over the nights, so a 2-night stay and a 4-night stay at the same listing have different nightly prices. Calendar prices without a quote are guesses.

Dynamic-pricing tools and property managers need availability, minimum stays and quoted prices for comparable listings, at the stay lengths their guests actually book.

Workflow

How teams build it

  1. Step 1

    Find comparable listings

    Search Airbnb by destination and dates, or start from a listing URL.

    POST /v1/serp/airbnb
  2. Step 2

    Read the calendar

    Get availability, check-in and check-out rules and minimum and maximum nights for 1 to 12 months.

    POST /v1/airbnb/calendar
  3. Step 3

    Price the stays you care about

    Sample check-in dates, or quote every date for a fixed stay length. Each priced night is Airbnb's own quote for that stay.

  4. Step 4

    Add Vrbo

    Search Vrbo by destination and dates, then quote a stay. Vrbo's total comes back exactly as Vrbo shows it.

    POST /v1/ota/vrbo

Output

What you get back

Availability
per-date availability with check-in and check-out rules
Stay rules
minimum and maximum nights per date
Quoted prices
Airbnb's own quote for the stay, taxes and discounts as separate lines
Price status
why each date is priced, unavailable, blocked or not sampled
curl -X POST "https://api.scrapercompany.com/v1/airbnb/calendar" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "CAD",
    "adults": 2,
    "max_price_quotes": 8,
    "listing_id": "34397368",
    "airbnb_domain": "airbnb.ca",
    "months": 2,
    "price_nights": "sample"
  }'
Response (trimmed)
{
  "listing_id": "34397368",
  "link": "https://www.airbnb.ca/rooms/34397368",
  "airbnb_domain": "airbnb.ca",
  "currency": "CAD",
  "requested_currency": "CAD",
  "guests": {
    "adults": 2,
    "children": 0,
    "infants": 0,
    "pets": 0
  },
  "start_month": 10,
  "start_year": 2026,
  "months": 2,
  "price_nights": "sample",
  "max_price_quotes": 8,
  "listing": {
    "constant_min_nights": 2,
    "max_guests": 2,
    "pets_allowed": false,
    "children_allowed": true
  },
  "summary": {
    "days": 61,
    "available": 35,
    "available_for_checkin": 31,
    "bookable": 34,
    "priced": 8,
    "min_price_per_night": 169.5,
    "max_price_per_night": 178,
    "median_price_per_night": 178,
    "price_status": {
      "check_in_not_allowed": 4,
      "not_sampled": 23,
      "priced": 8,
      "unavailable": 26
    }
  },
  "days": [
    {
      "date": "2029-03-05",
      "available": false,
      "available_for_checkin": false,
      "available_for_checkout": false,
      "bookable": false,
      "min_nights": 2,
      "max_nights": 27,
      "closed_to_arrival": false,
      "closed_to_departure": false,
      "price_status": "unavailable"
    },
    {
      "date": "2029-03-09",
      "available": true,
      "available_for_checkin": true,
      "available_for_checkout": true,
      "bookable": true,
      "min_nights": 2,
      "max_nights": 27,
      "closed_to_arrival": false,
      "closed_to_departure": false,
      "price_status": "priced",
      "price": {
        "price_per_night": 178,
        "currency": "CAD",
        "check_in": "2029-03-09",
        "check_out": "2029-03-11",
        "nights": 2,
        "accommodation": 356,
        "taxes": 67.64,
        "total": 423.64,
        "price_per_night_text": "$178.00 CAD",
        "total_text": "$423.64 CAD",
        "display_total": "$424 CAD",
        "price_basis": "nightly_all_in_before_taxes",
        "display_style": "REGULATED_TOTAL",
        "breakdown": [
          {
            "description": "2 nights x $178.00 CAD",
            "price": "$356.00 CAD",
            "extracted_price": 356,
            "kind": "nights"
          },
          {
            "description": "Taxes",
            "price": "$67.64 CAD",
            "extracted_price": 67.64,
            "kind": "tax"
          }
        ],
        "provenance": {
          "schema_version": 1,
          "observation_id": "rateobs_9e60ad832506e113550acd2fe556ad55",
          "collection_id": "ratecol_c328ca4cf9a747448dc64c2e80f86e25",
          "observed_at": "2026-09-30T22:48:15.032Z",
          "source": "airbnb",
          "source_kind": "vacation_rental_stay_quote",
          "collector": "scrapingme.ota.airbnb_calendar",
          "source_property_id": "34397368",
          "requested_market": "airbnb.ca",
          "requested_currency": "CAD",
          "returned_currency": "CAD",
          "egress_mode": "direct",
          "price_basis": "nightly_all_in_before_taxes",
          "derivation": "airbnb_stay_average_nightly"
        }
      }
    }
  ],
  "metadata": {
    "collection_id": "ratecol_c328ca4cf9a747448dc64c2e80f86e25",
    "observed_at": "2026-09-30T22:48:15.032Z",
    "calendar_operation": "PdpAvailabilityCalendar",
    "upstream_requests": 9,
    "price_quotes": 8,
    "wire_bytes": 8913,
    "request_time_taken": 4.69,
    "parsing_time_taken": 0.001,
    "total_time_taken": 1.52,
    "egress": [
      "direct"
    ]
  }
}

Worked example

A property manager benchmarks 30 comparable listings every week

Illustrative scenario, not a customer

CallPer dayCredits eachCredits a day
Calendar, 30 listings a week (about 4 a day)4832
Priced nights, about 10 per calendar40140
Credits a month
2,160
Fits on
Starter
Plan price
$49 /month

30 days a month. Failed and empty requests cost nothing, so a bad day costs less. Compare plans

What does an Airbnb calendar cost?

8 credits for the calendar, plus 1 for each date that comes back priced. Refused, failed and unsampled nights are free, so one request costs at most 100 credits.

Why does the nightly price change with stay length?

Airbnb folds cleaning and guest fees into the nightly rate, so they are spread over the nights. The API returns Airbnb's quote for the exact stay you ask about.

Does Vrbo itemize fees?

No. Vrbo returns its own total and its "All fees included" label for this request. The API passes those through and does not invent a fee breakdown.

Can I use the standard SERP API shape?

Yes. The SERP-compatible Airbnb availability calendar takes the standard parameters and returns the standard months and days shape.

Start with 1,000 free credits a month

Tell us which properties, sources and engines you need. Our team sets up your account, and you create and rotate API keys yourself. The API is free during the beta.