airbnb Bookings API
Operations for managing guest bookings for experiences, including confirmations, cancellations, and attendee details.
Operations for managing guest bookings for experiences, including confirmations, cancellations, and attendee details.
openapi: 3.1.0
info:
title: Airbnb Activities Bookings API
description: The Airbnb Activities API allows approved partners to integrate with Airbnb Experiences, the platform's marketplace for hosted activities and tours. It provides endpoints for managing experience listings, handling bookings, and synchronizing availability for activities offered by local hosts. Partners can use the API to build integrations that help experience hosts manage their offerings alongside other tour and activity platforms, enabling centralized management of schedules, pricing, and guest communications.
version: 2025.03.31
contact:
name: Airbnb Developer Support
url: https://developer.withairbnb.com/
termsOfService: https://www.airbnb.com/terms
servers:
- url: https://api.airbnb.com/v2
description: Airbnb Production API Server
security:
- oauth2: []
tags:
- name: Bookings
description: Operations for managing guest bookings for experiences, including confirmations, cancellations, and attendee details.
paths:
/bookings:
get:
operationId: listBookings
summary: List Experience Bookings
description: Retrieves a paginated list of bookings for experiences managed by the authenticated partner. Supports filtering by status, experience, and date range.
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/offsetParam'
- name: status
in: query
description: Filter bookings by their current status.
schema:
type: string
enum:
- pending
- confirmed
- cancelled
- completed
- name: experience_id
in: query
description: Filter bookings by experience identifier.
schema:
type: string
- name: start_date
in: query
description: Filter bookings with activity dates on or after this date.
schema:
type: string
format: date
- name: end_date
in: query
description: Filter bookings with activity dates on or before this date.
schema:
type: string
format: date
responses:
'200':
description: A paginated list of bookings.
content:
application/json:
schema:
type: object
properties:
bookings:
type: array
items:
$ref: '#/components/schemas/Booking'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
description: Authentication credentials are missing or invalid.
/bookings/{booking_id}:
get:
operationId: getBooking
summary: Get a Booking
description: Retrieves the full details of a specific experience booking including attendee information, schedule, and pricing.
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/bookingIdParam'
responses:
'200':
description: The booking details.
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
'401':
description: Authentication credentials are missing or invalid.
'404':
description: The booking was not found.
/bookings/{booking_id}/confirm:
post:
operationId: confirmBooking
summary: Confirm a Booking
description: Confirms a pending booking request for an experience. Once confirmed, the attendee count is updated on the schedule.
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/bookingIdParam'
responses:
'200':
description: The booking was successfully confirmed.
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
'401':
description: Authentication credentials are missing or invalid.
'404':
description: The booking was not found.
'409':
description: The booking is not in a pending state.
/bookings/{booking_id}/cancel:
post:
operationId: cancelBooking
summary: Cancel a Booking
description: Cancels an existing booking. Cancellation policies and refund rules may apply depending on timing and experience configuration.
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/bookingIdParam'
requestBody:
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: The reason for cancelling the booking.
responses:
'200':
description: The booking was successfully cancelled.
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
'401':
description: Authentication credentials are missing or invalid.
'404':
description: The booking was not found.
'409':
description: The booking cannot be cancelled in its current state.
components:
parameters:
limitParam:
name: limit
in: query
description: The maximum number of results to return per page.
schema:
type: integer
minimum: 1
maximum: 100
default: 25
offsetParam:
name: offset
in: query
description: The number of results to skip for pagination.
schema:
type: integer
minimum: 0
default: 0
bookingIdParam:
name: booking_id
in: path
required: true
description: The unique identifier of the booking.
schema:
type: string
schemas:
Pagination:
type: object
properties:
total:
type: integer
description: The total number of results available.
limit:
type: integer
description: The number of results returned per page.
offset:
type: integer
description: The current offset in the result set.
has_more:
type: boolean
description: Whether more results are available beyond this page.
Booking:
type: object
properties:
id:
type: string
description: The unique identifier of the booking.
confirmation_code:
type: string
description: The human-readable confirmation code for the booking.
status:
type: string
description: The current status of the booking.
enum:
- pending
- confirmed
- cancelled
- completed
experience_id:
type: string
description: The identifier of the booked experience.
schedule_id:
type: string
description: The identifier of the booked schedule entry.
guest:
$ref: '#/components/schemas/BookingGuest'
guests_count:
type: integer
description: The number of guests included in the booking.
minimum: 1
total_price:
type: number
format: double
description: The total price of the booking.
currency:
type: string
description: The ISO 4217 currency code for the booking pricing.
pattern: ^[A-Z]{3}$
host_payout:
type: number
format: double
description: The amount to be paid out to the host after fees.
created_at:
type: string
format: date-time
description: The timestamp when the booking was created.
updated_at:
type: string
format: date-time
description: The timestamp when the booking was last updated.
BookingGuest:
type: object
properties:
id:
type: string
description: The unique identifier of the guest.
first_name:
type: string
description: The first name of the guest.
last_name:
type: string
description: The last name of the guest.
phone:
type: string
description: The phone number of the guest.
verified:
type: boolean
description: Whether the guest has completed identity verification.
securitySchemes:
oauth2:
type: oauth2
description: Airbnb uses OAuth 2.0 for authentication. Partners must register their application to receive a client ID and secret, then obtain access tokens through the authorization code flow.
flows:
authorizationCode:
authorizationUrl: https://www.airbnb.com/oauth2/auth
tokenUrl: https://api.airbnb.com/v2/oauth2/authorizations
scopes:
experiences:read: Read experience information
experiences:write: Create and update experiences
bookings:read: Read booking information
bookings:write: Confirm and cancel bookings
messages:read: Read booking messages
messages:write: Send messages to guests
externalDocs:
description: Airbnb Developer Documentation
url: https://developer.withairbnb.com/