Check Availability

Query the calendar for any property to see which dates are open, their nightly rates, and minimum stay requirements.

When to use this endpoint

  • Show a live availability calendar on your booking widget
  • Verify dates are open before creating a reservation
  • Sync availability to a channel manager or external platform
  • Build a date picker that disables unavailable nights

Need to update availability?

Use Update Pricing to push rate changes, block dates, or set minimum night requirements.

Get availability calendar

GET/v1/availability/{propertyId}

Date parameter names differ by endpoint

This generic calendar read takes from and to query params. The per-channel Airbnb calendar (/v1/channels/airbnb/listings/{id}/availability) uses start_date and end_date instead. Match the parameter names to the exact endpoint you call.
curl "https://api.repull.dev/v1/availability/123?from=2026-07-01&to=2026-07-31" \
  -H "Authorization: Bearer sk_test_YOUR_KEY"

Path parameter

propertyIdintegerRequired

Property ID to check availability for. Pass the integer id from GET /v1/properties as a path segment (e.g. /v1/availability/123).

Query parameters

fromdateRequired

Start of the date range. Format: YYYY-MM-DD. (Alias: startDate.)

todateRequired

End of the date range. Format: YYYY-MM-DD. (Alias: endDate.)

Response format

Returns an array of calendar day objects, one per date in the requested range.

{
  "data": [
    {
      "date": "2026-07-01",
      "available": true,
      "price": 250.00,
      "currency": "USD",
      "minNights": 2,
      "maxNights": 30,
      "availableUnits": 1
    },
    {
      "date": "2026-07-02",
      "available": true,
      "price": 250.00,
      "currency": "USD",
      "minNights": 2,
      "maxNights": 30,
      "availableUnits": 1
    },
    {
      "date": "2026-07-03",
      "available": false,
      "price": null,
      "currency": "USD",
      "minNights": null,
      "maxNights": null,
      "availableUnits": 0
    }
  ]
}

Response fields

datestring

Calendar date (YYYY-MM-DD).

availableboolean

Whether the date is available for booking.

pricenumbernullable

Nightly rate for this date. Null if unavailable.

currencystring

ISO 4217 currency code.

minNightsintegernullable

Minimum stay requirement starting from this date.

maxNightsintegernullable

Maximum stay allowed starting from this date.

availableUnitsinteger

Number of units available (relevant for multi-unit properties).

Common examples

Check a specific date range before booking

curl "https://api.repull.dev/v1/availability/123?from=2026-07-10&to=2026-07-15" \
  -H "Authorization: Bearer sk_test_YOUR_KEY"

Full month calendar view

curl "https://api.repull.dev/v1/availability/123?from=2026-08-01&to=2026-08-31" \
  -H "Authorization: Bearer sk_test_YOUR_KEY"

Validate availability in code

// Check if all dates in a range are available
const calendar = await repull.availability.get({
  propertyId: '123',
  startDate: '2026-07-10',
  endDate: '2026-07-15',
});

const allAvailable = calendar.data.every(day => day.available);
if (allAvailable) {
  // Safe to create the booking
  await repull.reservations.create({ ... });
} else {
  const blocked = calendar.data.filter(d => !d.available).map(d => d.date);
  console.log('Blocked dates:', blocked);
}

API Reference

See the complete Availability API Reference for all endpoints including update and batch operations.

AI