Skip to main content

Airbnb: Reseller Connection

Connect Airbnb to Ventrata to sync time slots and prices to Airbnb Experiences and receive bookings, with tickets sent to guests in Airbnb messages.

Airbnb logo

 

Airbnb Experiences is the activities marketplace of Airbnb, the world's largest home-sharing platform, sold alongside stays to a base of 390 million guest arrivals a year. Relaunched in May 2025, it sells host-led activities across food and cooking, arts and crafts, wellness, sport and city walks, alongside celebrity-fronted Airbnb Originals. For operators, it brings guests who have already booked a stay in the city, shown the experience in search, trip itineraries and notifications, with a one-day cancellation window as the default policy.

 

Connecting Airbnb to Ventrata (an integration you'll find under Connections in your Dashboard) syncs your availability and prices and delivers bookings, changes and cancellations, with tickets issued automatically. You no longer need to manage availability, pricing and bookings by hand in the Airbnb Host Portal.

 

To learn more about selling on Airbnb, visit airbnb.com/experiences.

 

Primary website

Tags

OTA · OTA with Tours & Activities Division

Destination markets

🌎 Global

Source markets

🌎 Global

Specialties

Small-group guided experiences and visitor attraction tickets

Connection features

Product Mapping · Availability Sync · Pricing Sync · Bookings Sync · Redemption Sync (limited)

Ventrata Booked GMV (last 12 months)

$1M+

Ventrata Booked Suppliers (last 12 months)

25+

Developed by

Ventrata (using Airbnb Experiences API & Ventrata's OCTO API)

 

This reseller connection keeps your Airbnb Experiences listings accurate automatically, so you no longer manage availability, prices or bookings in the Airbnb Host Portal. Features of this connection include:

  • Product Mapping – connect your Airbnb listings to Ventrata products yourself in the Dashboard. Ventrata then sets the listing up on Airbnb for you.

  • Availability Sync – Ventrata sends your time slots and places left to Airbnb as soon as they change, and Airbnb checks Ventrata live before every booking.

  • Pricing Sync – your adult, child and infant prices on Airbnb follow your Ventrata prices.

  • Bookings Sync – bookings, changes and cancellations made on Airbnb arrive in Ventrata instantly, and guests get their Ventrata tickets in their Airbnb messages.

  • Redemption Sync (limited) – guests show the Ventrata tickets, and you scan them as usual. Redemptions aren't reported back to Airbnb.

 

Creating the Airbnb Connection

🔐 Required Role Permissions: See Connections, Modify Connections

Before you begin:

  • You must have an Airbnb user account. Create a user account with Airbnb using any of the following: an email address and a password, a phone number, a Google or Apple account, or a Naver account (for South Korea).

  • You must pass Airbnb's Identity Verification before your user account can connect via API. You'll need to provide a government ID, pass the profile picture/selfie check, and verify your email address and phone number. You can't connect via API until this step is complete.

  • You must be approved to sell on Airbnb Experiences. Express your interest via this form, wait for feedback from the Airbnb team, and follow their instructions to complete your product listings.

  • You must have Airbnb created as a Reseller in Ventrata with their pricing (retail, wholesale/commission) defined correctly. This connection requires the reseller to use the Bill to my account settlement method.

 

Step 1: Create a Connection in Ventrata

  1. In the Ventrata Dashboard, go to Connections → Connections.

  2. Click the + New Connection button.

  3. Select Airbnb from the list of partners.

  4. Choose your Airbnb Reseller from the list (it must be created before you set up the connection). The connection inherits the reseller's configuration, like pricing, allowed destinations and products.

  5. (Optional) Enter a custom connection Name. This helps if you have several Airbnb connections and want to tell them apart.

    📗 TIP

    If needed, you can also allow or disallow products or destinations at the connection level, in addition to what you configured on the reseller. This helps if you have several Airbnb connections linked to one reseller.

  6. Click the Create Connection button to save your settings.

 

Step 2: Connect Airbnb to Ventrata

  1. Click the Connect with Airbnb button to give Ventrata access to your Airbnb user account.

  2. Press the Allow button to approve the connection.

    📒 NOTE

    If you get an error on this step, your Airbnb user account is probably missing a phone number or email verification, or its profile picture/Identity Verification isn't complete yet. See Before you begin above.

  3. Come back to the connection page in Ventrata and refresh the page.

 

Mapping Products to Airbnb

Once the connection is created, map your Airbnb listings to the matching Ventrata products and options. You do this in the Ventrata Dashboard: there's no mapping step on Airbnb's side.

 

  1. In the Ventrata Dashboard, go to Connections → Connections and select the Airbnb connection you want to use for product mapping.

    📒 NOTE

    The Connections page displays a table with your Airbnb listings (products and options) on the left, and the currently mapped Ventrata products and options on the right. Any active listings that are unmapped or incorrectly mapped are highlighted in red.

  2. Click the Airbnb listing you want to map. Select the Ventrata product and, if prompted, the option you want this listing connected to.

  3. Click Update Mapping. Ventrata automatically completes the product mapping in Airbnb, and your product is connected.

 

📒 NOTE

Mapped isn't the same as live. If a mapped listing isn't bookable on Airbnb, check that:

  • the listing is approved and active on Airbnb

  • the Ventrata product has upcoming availability

  • the mapped option has a unit (ticket type) for every guest type the Airbnb listing accepts: Adult, and Child or Infant if you allow them

  • the product is allowed on the reseller and connection, and its products, options and fares are enabled for sale on the Direct API source

  • the Airbnb listing is set up as a ticket experience, not a tour (see FAQs)

‼️ IMPORTANT

Ventrata becomes the source of truth for a listing as soon as it's mapped. From then on, Airbnb checks Ventrata before every booking of that listing. If Ventrata says a time slot isn't available, or the check fails, Airbnb removes that slot from its calendar. Keep the product's availability, units and fares correct in Ventrata, and run Update Mapping again after you change them.

 

Managing the Airbnb Connection

  • Allow or disallow products: limit which destinations, products and options Airbnb can access. See how to allow or disallow products.

  • Rename the connection to tell several Airbnb connections apart.

  • Map more listings: open the connection, click an unmapped listing (highlighted in red), choose the product and option, and click Update Mapping.

  • Re-run Update Mapping after product changes: after every fare change, and after you add or change units on a mapped option, click Update Mapping on that listing so Airbnb gets the new guest types, ages and prices.

  • Change listing content on Airbnb: titles, descriptions and photos are managed on Airbnb, not in Ventrata.

 

Connection Features Detailed

This section is for anyone who wants to know exactly how the Airbnb connection works. Airbnb doesn't use OCTO: Ventrata built this connection on Airbnb's own Activities API. Ventrata's Airbnb adapter sends your time slots, prices and tickets to Airbnb, and answers each call Airbnb makes to Ventrata by calling Ventrata's own OCTO API internally. For example, Airbnb's live availability check is answered with OCTO Get Product and your live availability, and an Airbnb reservation becomes an OCTO Booking Reservation and Booking Confirmation. Airbnb's API documentation is available only to approved Airbnb partners, so Airbnb calls aren't linked below. Ventrata's OCTO calls link to Ventrata's API documentation.

 

In short: this connection works both ways. Ventrata pushes your time slots, places left and prices to Airbnb whenever they change, and sends each guest their tickets in Airbnb messages. Airbnb calls Ventrata live to check a time slot before checkout, to place the booking once the guest has paid, and to report changes and cancellations. Changes you make to an Airbnb booking in Ventrata aren't sent back to Airbnb.

 

Timings are typical for Airbnb and rounded, and they can change if Airbnb changes how it syncs.

 

Product Mapping

✅

You map each Airbnb listing to a Ventrata product and option in the Dashboard, and Ventrata sets the listing up on Airbnb for you.

This works as follows:

  • Exchange Code For Tokens (POST /v2/oauth2/authorizations) – Ventrata → Airbnb, once, when you click Connect with Airbnb and Allow. Airbnb gives Ventrata access to manage the calendar and bookings of your Airbnb listings. Airbnb's access tokens are short-lived, so Ventrata renews this access automatically in the background (Refresh Access Token, same path).

  • Get Activities (GET /v2/activities) and List all offerings (GET /v2/activities/{id}/offerings) – Ventrata → Airbnb, when you open the connection page. Ventrata reads your Airbnb listings and shows them on the left of the mapping table.

  • Set Attributes (PUT /v2/activities/{id}/attributes) – Ventrata → Airbnb, when you click Update Mapping. After reading the listing, Ventrata sends the guest types your option sells (Adult, Child, Infant), their age limits from your Ventrata units, and the minimum age.

  • Set Activity Availability (PUT /v2/activities/{id}/availability) – Ventrata → Airbnb, on Update Mapping. Ventrata switches on availability sync, which makes Ventrata the source of truth for the listing and turns on Airbnb's live checks before every booking.

  • Set Offering (PUT /v2/activities/{id}/offerings/{id}) – Ventrata → Airbnb, on Update Mapping. Ventrata stores your Ventrata connection, product and option IDs on the Airbnb offering. Airbnb sends these IDs back with every check and booking, which is how Ventrata knows which product a guest is booking.

  • Set Offering Availability (PUT …/offerings/{id}/availability) and Set Offering Pricing (PUT …/offerings/{id}/pricing) – Ventrata → Airbnb, on Update Mapping. Ventrata sets the listing-wide group limits, booking lead time and booking type (for example, a shared public booking), so the capacity Ventrata sends per time slot and Ventrata's live check decide what can be booked.

  • Set Instances (POST /v2/activities/{id}/instances) – Ventrata → Airbnb, at the end of Update Mapping. Ventrata creates your time slots on Airbnb's calendar (see Availability Sync).

  • Queued mapping updates – some mapping updates run as a background job with the same steps. The job reads your product through Ventrata's OCTO API with Get Product (GET /products/{productId}).

Typically with Airbnb:

  • Mapping calls happen only when someone connects, opens a connection page or clicks Update Mapping.

  • Access renewals and queued mapping updates run in the background around the clock.

What this means for you: map each listing once, then run Update Mapping again whenever you change the mapped option, its units or its fares, so Airbnb gets the new guest types, ages and prices. Ventrata doesn't change your listing content (title, description, photos). You manage it on Airbnb.

Availability Sync

✅

Ventrata pushes your time slots and places left to Airbnb as soon as they change, and Airbnb checks Ventrata live before every checkout.

This works as follows:

  • Get Instances (GET /v2/activities/{id}/instances) and Set Instances (POST /v2/activities/{id}/instances) – Ventrata → Airbnb, as soon as availability changes in Ventrata, for example after a booking on any channel, a cancellation, or a change to capacity or the schedule. Ventrata reads the time slots Airbnb has for the affected dates, compares them with Ventrata, and sends only the differences in one batch: new time slots to create, slots whose guest limit (places left) or price has changed, and slots to remove because they're no longer available.

  • Ventrata OCTO API – to work out each update, Ventrata's adapter reads your product and live availability through Ventrata's own OCTO API: Get Product (GET /products/{productId}) and Availability Check (POST /availability).

  • Background resync – Ventrata → Airbnb, around the clock. A scheduled job goes through mapped listings, compares Airbnb's time slots with Ventrata again and corrects any that have drifted, again sending only the differences. Some availability updates are also queued and sent as a background job.

  • Check Availability (GET /airbnb/endpoint/reservation) – Airbnb → Ventrata, live, before a guest moves into checkout. Airbnb sends the listing, the Ventrata product and option IDs stored at mapping, the start time and the number of adults, children and infants. Ventrata looks up the product with Get Product (GET /products/{productId}), checks that time slot and those guest types in real time, and answers yes or no. Airbnb expects an answer within 2 seconds. If the answer is no, or the check fails or takes too long, the guest can't book, and Airbnb removes that time slot from its calendar.

Typically with Airbnb:

  • Availability pushes run around the clock, following the bookings and changes that happen in Ventrata. They cover dates from today up to about a year ahead, most of them for the next few weeks.

  • The background resync runs around the clock.

  • Check Availability arrives evenly around the clock, mostly for dates in the next four weeks. Airbnb checks much more often than guests book, so most checks don't lead to a booking.

What this means for you: you don't manage the Airbnb calendar. Airbnb never shows more than Ventrata has: changes reach Airbnb automatically, and the live check catches anything that has only just sold out. Because a failed check removes the time slot on Airbnb, problems with the product in Ventrata show up on Airbnb as "sold out" times. Typical causes are a missing unit type, an old time slot that no longer exists in Ventrata, or an outage in an external ticketing system your product uses. See the FAQs.

📒 NOTE – Airbnb Experiences are sold as fixed time slots. Each slot on Airbnb has its own guest limit, which Ventrata keeps in line with the places left in Ventrata.

Pricing Sync

✅

Your adult, child and infant prices on Airbnb follow your Ventrata prices, time slot by time slot.

This works as follows:

  • Set Offering Pricing (PUT /v2/activities/{id}/offerings/{id}/pricing) – Ventrata → Airbnb, on Update Mapping. Ventrata sets the listing's pricing settings, for example that it's sold as a shared public booking.

  • Set Attributes (PUT /v2/activities/{id}/attributes) – Ventrata → Airbnb, on Update Mapping. Ventrata sends your guest types and age ranges, so Airbnb's Adult, Child and Infant match your Ventrata units.

  • Set Instances (POST /v2/activities/{id}/instances) – Ventrata → Airbnb, with availability updates. When a time slot's price needs updating, Ventrata sends the adult, child and infant price for that slot, so date- and time-specific prices in Ventrata reach Airbnb. Prices come from the Airbnb reseller's pricing in Ventrata.

  • Booking Size fares – the partner tier counts are synced when you click Update Mapping. After every fare change, update the product mapping again, and make sure the fare is enabled for sale over the Direct API.

Typically with Airbnb:

  • Prices travel with the availability pushes, around the clock. Most pushes only change the places left; prices are included when a slot's price needs updating.

  • Listing-wide pricing settings and guest types are sent only on Update Mapping.

What this means for you: change prices in Ventrata, not on Airbnb. Airbnb sells three guest types only: Adult, Child and Infant. Map options whose units fit these guest types.

‼️ IMPORTANT – Every guest type Airbnb sells must exist on the mapped option. If the Airbnb listing accepts children but the Ventrata option has no Child unit, every check that includes a child fails with "Invalid Units", and Airbnb hides that time slot. Add the missing unit, or change which guest types the listing accepts, then run Update Mapping.

Bookings Sync

✅

Bookings, changes and cancellations made on Airbnb are created in Ventrata instantly, and Ventrata sends guests their tickets in Airbnb messages.

This works as follows:

  1. Check: Check Availability (GET /airbnb/endpoint/reservation) – Airbnb → Ventrata, before checkout (see Availability Sync). This is a live check only: Ventrata doesn't hold places at this point.

  2. Book: Make Reservation (POST /airbnb/endpoint/reservation) – Airbnb → Ventrata, after the guest has paid Airbnb. Airbnb sends its confirmation code, the time slot and the number of adults, children and infants. Ventrata first looks for a booking with that confirmation code (List Bookings (GET /bookings), by reseller reference), so the same booking is never created twice. It then creates and confirms the booking straight away through Ventrata's OCTO API: Booking Reservation (POST /bookings) and Booking Confirmation (POST /bookings/{uuid}/confirm). The Airbnb confirmation code is saved as the booking's reseller reference. If there's no room any more, Ventrata says no, and Airbnb rejects the booking.

  3. Details: Reservation created webhook (POST /airbnb/endpoint/notification) – Airbnb → Ventrata, right after the booking, with the full reservation details.

  4. Tickets: Create Message (POST /v2/messages) – Ventrata → Airbnb, right after the booking. Ventrata posts a message in the guest's Airbnb conversation with a link to the PDF tickets, an Apple Wallet / Google Wallet ticket link, your booking reference, the product, date and time, and the participants, signed with your company name. For some products, Ventrata also sends an image of each ticket QR code (Create Media Upload URL, POST /v2/media_upload_urls, then a message with the image).

  5. Change: Update Reservation (PUT /airbnb/endpoint/reservation/{confirmation_code}) – Airbnb → Ventrata, when a booking is about to be changed, for example the number of guests. Airbnb asks Ventrata whether the change is possible. Once it's made, the Reservation altered webhook (POST /airbnb/endpoint/notification) follows, and Ventrata updates the booking in place with Booking Update (PATCH /bookings/{uuid}).

  6. Cancel: Reservation canceled webhook (POST /airbnb/endpoint/notification) – Airbnb → Ventrata, when a reservation is canceled on Airbnb. Ventrata cancels the booking with Booking Cancellation (POST /bookings/{uuid}/cancel). As with other connections, Ventrata can refuse a cancellation, for example if the booking is already redeemed or your cancellation cutoff has passed. Airbnb has already canceled its reservation by then, so check any such booking in Ventrata.

Typically with Airbnb:

  • Bookings, changes and cancellations arrive around the clock, and each is handled as it happens.

  • Each new booking reaches Ventrata as a Make Reservation call and as a webhook. Ventrata matches them by the Airbnb confirmation code.

  • A ticket message follows each new booking.

  • Change checks (Update Reservation) are rare.

What this means for you: Airbnb bookings appear in Ventrata as soon as the guest has paid, with the Airbnb confirmation code as the reseller reference, and guests get their tickets without you doing anything.

‼️ IMPORTANT – Bookings sync one way, from Airbnb to Ventrata. If you cancel or change an Airbnb booking in Ventrata, for example in the Dashboard, Airbnb isn't told, and the guest's reservation stays active on Airbnb. Ventrata only updates the places left on that time slot. Cancel or change the booking on Airbnb as well, or ask the guest to do it through Airbnb.

Redemption Sync

✅ / ❌

Guests use the Ventrata tickets sent to their Airbnb messages, and you scan them as usual. Ventrata doesn't report redemptions back to Airbnb.

This works as follows:

  • Tickets – Ventrata → Airbnb, right after each booking: the PDF ticket link, the wallet ticket link and, for some products, QR code images, all in the guest's Airbnb messages (see Bookings Sync). Guests show them at your entrance, and you scan and redeem them in Ventrata like any Ventrata ticket.

  • No redemption updates – Ventrata doesn't send Airbnb an update when a ticket is scanned or redeemed, or when a guest doesn't show up.

Typically with Airbnb:

  • We see no calls that report redemptions or no-shows to Airbnb.

What this means for you: redemption works as normal in Ventrata, but Airbnb can't see it. If a guest raises a question with Airbnb about a booking they used, the redemption record in Ventrata is your proof.

Changes made in Ventrata

❌

Cancellations, changes and rebookings you make in Ventrata aren't sent to Airbnb.

Cancellations, changes and rebookings you make in Ventrata aren't sent to Airbnb. Only the places left on the time slot are updated. Always cancel or change the booking on Airbnb as well.

Promotions Sync

❌

Ventrata promotions aren't sent to Airbnb.

Ventrata promotions aren't sent to Airbnb. Prices on Airbnb are your Ventrata prices for the Airbnb reseller.

Content Sync

❌

Ventrata doesn't send listing content such as titles, descriptions or photos.

Ventrata doesn't send listing content such as titles, descriptions or photos. You create and manage the listing content on Airbnb, and Airbnb may review changes to a published listing before they go live.

Pickups

❌

Airbnb doesn't send pickup details with its bookings.

Airbnb doesn't send pickup details with its bookings. If your product includes pickups, arrange them with the guest, for example through Airbnb messages.

Custom Questions

❌

Airbnb doesn't send answers to booking questions.

Airbnb doesn't send answers to booking questions. Its bookings carry the time slot and the number of adults, children and infants.

Extras

❌

Airbnb bookings can't include extras or add-ons, because Airbnb sends only the time slot and the number of guests of each type.

Airbnb bookings can't include extras or add-ons, because Airbnb sends only the time slot and the number of guests of each type.

✅ supported · ✅ / ❌ partly supported · ❌ not supported

 

Limits and details worth knowing about the Airbnb connection.

  • Ventrata is the source of truth: once a listing is mapped, Airbnb relies on Ventrata for every booking of it. A listing can be synced by only one connected app at a time.

  • Failed checks hide time slots: when Ventrata says no to a check, or a check fails or takes too long, Airbnb removes that time slot from its calendar. Airbnb also tracks how often checks and bookings fail.

  • Guest types: Airbnb uses Adult, Child and Infant only. Ventrata sends the age limits from your units when you map.

  • Currency: Airbnb sets the listing's currency automatically from the listing's location.

  • Listing type: Airbnb listings are either a tour or a ticket experience. Only your Airbnb account manager can change the type.

  • Large changes: Airbnb limits how fast apps can update a listing, so large bulk changes reach Airbnb gradually.

  • Access: Ventrata renews its access to your Airbnb account automatically. The Airbnb user who connected must keep a verified account.

  • What Airbnb can see: only products, options and units that are allowed on the reseller and the connection, and enabled for sale on the Direct API source. See how to allow or disallow products.

 

FAQs

No products are displayed on the connection page.

Verify which destinations, products and options are allowed for your reseller account and connection. Next, confirm that your products and options are enabled for sale on the Direct API source. If the issue persists, contact our Technical Support.

My Ventrata products use Booking Size fares, and pricing isn't working correctly on Airbnb.

After every fare change, update the product mapping to make sure the partner tier counts are synced with Ventrata. Make sure the fare is enabled for sale over the Direct API.

Connection is showing an error message: "Listing is not an enabled ticket experience; cannot set a per-offering ticket config for it".

Airbnb categorizes listings as either 'tour' or 'ticket'. If a listing uses the incorrect type, Ventrata can't map it, and this error message appears.

To resolve this issue, contact your Airbnb account manager to update the listing type. Ventrata can't change listing types.

I get an error when I click Allow to connect Airbnb.

Your Airbnb user account is probably missing a phone number or email verification, or its profile picture/Identity Verification isn't complete yet. Complete these steps on Airbnb, then try again. See Before you begin in Creating the Airbnb Connection.

My time slots show as sold out on Airbnb, but they have availability in Ventrata.

Airbnb hides a time slot when Ventrata's live check says no, or when the check fails. Check the most common causes:

  • A missing unit type: the Airbnb listing accepts a guest type, for example children, that the mapped option has no unit for. Checks with that guest type fail with "Invalid Units". Add the unit, or change which guest types the listing accepts, and run Update Mapping.

  • Old time slots: Airbnb still shows start times that no longer exist in Ventrata, for example after you changed the schedule. Checks for them fail with "Time slot is not available". Contact our Technical Support with the listing and the start times, so the old time slots can be removed.

  • An external ticketing system: if your product's availability comes from another ticketing system, checks fail while that system has problems.

  • Product settings: the product, option and fares must be allowed on the connection and enabled for sale on the Direct API source.

If the issue persists, contact our Technical Support with the Airbnb listing, date and time.

I canceled an Airbnb booking in Ventrata, but it's still active on Airbnb.

Bookings sync one way, from Airbnb to Ventrata. Ventrata doesn't cancel or change reservations on Airbnb. Cancel or change the booking on Airbnb as well, or ask the guest to do it through Airbnb.

Where do Airbnb guests find their tickets?

In their Airbnb messages. Right after the booking, Ventrata posts a message with a link to the PDF tickets, an Apple Wallet / Google Wallet ticket link, the booking reference, the product, date and time, and the participants. For some products, Ventrata also sends images of the ticket QR codes.

How do I find an Airbnb booking in Ventrata?

Search by the Airbnb confirmation code. Ventrata saves it as the booking's reseller reference.

 

Useful Resources

 

 

Partner Information

Airbnb, Inc.

888 Brannan Street

San Francisco, CA 94103, United States

 

Ventrata Partner ID: 8ac57df3-0611-47f3-b286-630d1b2ce995

Did this answer your question?