Skip to main content

CityKeys.Live: Reseller Connection

Connect CityKeys.Live to Ventrata to sync availability and prices and receive bookings instantly. Concierge-advised shows, events and headline attractions.

CityKeys.Live logo

 

CityKeys.Live is a New York booking app that pairs travelers with human concierges by text, voice or video, backed by an AI planning assistant for recommendations before handover. It sells Broadway seats, concerts, sporting events, restaurant tables and attraction admissions such as the Empire State Building. For operators, it brings visitors to New York who want advice on seating, timing and what to combine, booking through a concierge conversation, with shows and headline attractions the core of the basket.

 

Connecting CityKeys.Live to Ventrata syncs your availability and prices and delivers bookings, changes and cancellations with tickets issued automatically.

 

To learn more about partnering with CityKeys.Live, visit citykeys.live.

 

Primary website

Tags

Event & Festival Ticketing

Destination markets

🌎 Global

Source markets

🌎 Global

Specialties

Concierge-advised shows, events and headline attractions

Connection features

Availability Sync · Pricing Sync · Bookings Sync

Ventrata Booked GMV (last 12 months)

US$10k+

Developed by

CityKeys.Live (using Ventrata's OCTO API)

 

This reseller connection lets you sell your products through CityKeys.Live without managing availability, pricing and bookings by hand. Features of this connection include:

  • Availability Sync – CityKeys.Live checks your live availability in Ventrata.

  • Pricing Sync – CityKeys.Live gets your prices from your reseller pricing in Ventrata.

  • Bookings Sync – bookings, updates and cancellations from CityKeys.Live are created in Ventrata instantly, and customers get Ventrata tickets.

 

Creating the CityKeys.Live Connection

🔐 Required Role Permissions: See Connections, Modify Connections, See Connection Key

Before you begin:

  • You must have a commercial agreement with CityKeys.Live for them to sell your products. To inquire about partnering with them, contact them via citykeys.live.

  • You must have CityKeys.Live created as a Reseller in Ventrata with their pricing (retail, wholesale/commission) defined correctly. Note that this API connection requires that the reseller is set to the "Bill to my account" settlement method.

 

  1. In Ventrata Dashboard, go to Connections → Connections, click + New Connection, and select CityKeys.Live from the list of partners.

  2. Select CityKeys.Live Reseller from the list of your resellers (must be created before creating a connection). The connection will inherit the reseller's configuration like pricing, allowed destinations, products, etc.

  3. (Optional) You can also set the connection Name of your choosing, which may be helpful if you plan to have multiple CityKeys.Live connections and would like to differentiate between them more easily in the future.

  4. Press the Create Octo Connection button.

 

📗 TIP

If needed, you can also allow or disallow products or destinations on the connection level, in addition to what you have configured on the reseller.

 

Mapping Products to CityKeys.Live

Securely share the OCTO API key shown on the connection you've created to your CityKeys.Live contact and ask them to map your products using Ventrata's OCTO API, with pricing (octo/pricing) enabled. Typically, it takes no longer than a few business days for the CityKeys.Live team to complete this.

 

Your Ventrata configuration is complete. You do not need to take any further steps.

 

📗 TIP

CityKeys.Live can access all products enabled on the connection, but you can also provide the Product and Option IDs from the connection page when contacting them to specify what to map.

 

 

Managing the CityKeys.Live Connection

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

  • Rename the connection to tell several CityKeys.Live connections apart.

 

Connection Features Detailed

This section is for anyone who wants to know exactly how the CityKeys.Live connection works: which Ventrata OCTO API calls CityKeys.Live makes, when it makes them, and what that means for you. Each call links to Ventrata's API documentation.

 

In short: CityKeys.Live pulls everything it needs from Ventrata. It reads your products, checks your availability and prices, and sends bookings and cancellations. Ventrata doesn't push changes to CityKeys.Live, so anything you change in Ventrata reaches CityKeys.Live the next time it checks.

 

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

 

Product Mapping

❌

You can't map products from Ventrata. CityKeys.Live maps them on its side, through your account manager or CityKeys.Live's portal.

This works as follows:

  • Get Products (GET /products) – when CityKeys.Live sets up your connection, and whenever it refreshes its listings, it reads every product enabled on the connection, with its options and units (ticket types such as Adult or Child).

  • Get Product (GET /products/{productId}) – CityKeys.Live re-reads a single product to pick up changes to its options, units, booking cutoffs and settings.

  • Mapping on CityKeys.Live's side – CityKeys.Live links each Ventrata option and unit to its own listing and ticket types. Your CityKeys.Live account manager does this for you, or you do it in CityKeys.Live's own portal if CityKeys.Live offers one. You only share the connection's API key.

 

Typically with CityKeys.Live:

  • CityKeys.Live reads your full product list about every 8 hours.

  • It re-reads each product every few minutes.

 

What this means for you: CityKeys.Live can only sell what it has mapped. When you add a product, option or unit in Ventrata, CityKeys.Live may see it on its next refresh, but it won't sell it until it's mapped. So tell your CityKeys.Live account manager whenever you add one.

Content Sync

✅ / ❌

CityKeys.Live can read your product content, such as descriptions and images, from Ventrata.

This works as follows:

  • octo/content capability – when CityKeys.Live adds it to the Octo-Capabilities header, Get Products (GET /products) and Get Product (GET /products/{productId}) also return your product content, such as descriptions, highlights, inclusions and images.

  • Content changes in Ventrata reach CityKeys.Live on its next product refresh.

 

Typically with CityKeys.Live:

  • CityKeys.Live requests octo/content.

Availability Sync

✅

CityKeys.Live checks your live availability in Ventrata. Ventrata doesn't push availability changes to CityKeys.Live.

This works as follows:

  • Availability Check (POST /availability) – CityKeys.Live sends a product, an option and a date or date range. Ventrata answers with each bookable day or time slot, its status (AVAILABLE, LIMITED, SOLD_OUT, CLOSED or FREESALE), the remaining vacancies, the booking cutoff and an availabilityId, which CityKeys.Live needs to book that slot.

  • Availability Calendar (POST /availability/calendar) – returns one summary per day instead of every time slot, typically to show which dates are open in a date picker.

  • Check at booking – when a customer books, Ventrata checks capacity again before it creates the booking, so CityKeys.Live can't overbook a slot that has just sold out, even if its stored availability is slightly out of date.

 

Typically with CityKeys.Live:

  • Availability Check: CityKeys.Live checks your products throughout the day, usually starting today and covering 30 days per request, looks up to about 5 months ahead and re-checks the same product and dates about every 9 hours.

  • Availability Calendar: CityKeys.Live checks each product every few minutes, usually starting about 4 months ahead and covering a single day per request and looks up to about 7 months ahead.

  • Checks are busiest between 00:00 and 06:00 UTC, which suggests most checks are live, as customers browse CityKeys.Live.

 

What this means for you: when you close a date, change capacity or sell out in Ventrata, CityKeys.Live shows it after its next check. For dates it checks regularly, that's within a few minutes. Dates further ahead are usually checked less often.

Pricing Sync

✅

Your prices come back with every availability check, once CityKeys.Live asks for them with the octo/pricing capability.

This works as follows:

  • octo/pricing capability – CityKeys.Live asks for prices by adding octo/pricing to the Octo-Capabilities header of its requests. Without it, Ventrata sends availability with no prices at all.

  • Availability Check (POST /availability) – with pricing on, each day or time slot comes back with your price per unit (ticket type): the retail price the customer pays and the net price you invoice CityKeys.Live, both from the reseller's pricing in Ventrata (retail and wholesale/commission).

  • Group prices – when CityKeys.Live also sends how many people of each unit type are booking, Ventrata prices that exact group. This matters for Booking Size fares and other group pricing.

  • Booking Reservation (POST /bookings) and Booking Confirmation (POST /bookings/{uuid}/confirm) – the booking comes back with its final retail and net price, so the booking in Ventrata always records the price it was sold at.

 

Typically with CityKeys.Live:

  • CityKeys.Live requests octo/pricing on all of its availability checks, so it sells at your Ventrata prices.

  • CityKeys.Live doesn't send the number of people per unit type, so prices come back per person, and group pricing such as Booking Size fares may not show correctly on CityKeys.Live.

 

‼️ IMPORTANT – Ask for pricing to be enabled. When you ask CityKeys.Live to map your products, ask them to enable pricing (octo/pricing) as well, or switch it on yourself if you map in CityKeys.Live's portal. Otherwise it may be off, and CityKeys.Live won't receive your Ventrata prices.

📗 TIP – If prices on CityKeys.Live look wrong, check the CityKeys.Live reseller's pricing in Ventrata first: that's what CityKeys.Live reads.

Promotions Sync

❌

Your Ventrata promotions don't apply on CityKeys.Live.

Prices on CityKeys.Live don't include promotions you create in Ventrata. Set up any promotions with CityKeys.Live directly.

Bookings Sync

✅

Bookings and cancellations made on CityKeys.Live are created in Ventrata instantly, and customers get Ventrata tickets.

This works as follows:

  1. Hold: Booking Reservation (POST /bookings) – when a customer starts checkout on CityKeys.Live, CityKeys.Live sends the product, option, chosen slot (availabilityId) and one unit item per person. Ventrata checks capacity again and creates an ON_HOLD booking, which holds the places while the customer pays. If there's no longer room, Ventrata rejects the hold.

  2. Confirm: Booking Confirmation (POST /bookings/{uuid}/confirm) – once payment goes through, CityKeys.Live confirms the hold, with its own booking reference and the customer's contact details. The booking becomes CONFIRMED in Ventrata, and Ventrata sends back your booking reference and the tickets (one per person) or a voucher (one per booking), depending on how your product is set up, each with a QR code and a PDF link. CityKeys.Live gives these to the customer, who shows them at your entrance like any Ventrata ticket.

  3. Expire: if the customer doesn't finish paying, CityKeys.Live never confirms, and the hold expires on its own and frees the places.

  4. Cancel: Booking Cancellation (POST /bookings/{uuid}/cancel) – when a customer cancels on CityKeys.Live, CityKeys.Live cancels the booking in Ventrata. Ventrata accepts this only if the booking can still be cancelled and the option's cancellation cutoff hasn't passed. Otherwise it rejects the request, and CityKeys.Live has to contact you.

  5. Change: CityKeys.Live doesn't use Booking Update (PATCH /bookings/{uuid}), so a change most likely reaches Ventrata as a cancellation plus a new booking.

 

Typically with CityKeys.Live:

  • CityKeys.Live doesn't set a hold time, so the default hold time applies.

  • A typical CityKeys.Live booking is for about 2 people.

  • CityKeys.Live also checks the bookings it has made, with Get Booking (GET /bookings/{uuid}) about every 8 hours, for example to reconcile its records.

 

‼️ IMPORTANT – Bookings sync one way, from CityKeys.Live to Ventrata. If you cancel, change or rebook a booking from CityKeys.Live in Ventrata, for example in the Dashboard, CityKeys.Live isn't notified. Contact CityKeys.Live so the booking is cancelled or changed on their side too, or ask the customer to cancel through CityKeys.Live.

Pickups/Dropoff Sync

❌

CityKeys.Live doesn't send pickup or drop-off details with its bookings.

If your products include pickups, check with CityKeys.Live how it collects pickup details, or arrange them with the customer.

Custom Questions Sync

❌

CityKeys.Live doesn't send answers to your booking questions.

If you rely on booking questions, for example names or dietary needs, check with CityKeys.Live how it collects that information.

Extras Sync

❌

Extras and add-ons can't be booked through CityKeys.Live.

Customers can only book your main products and options on CityKeys.Live. Sell extras separately, for example on arrival.

Redemption Sync

❌

Redemptions aren't reported to CityKeys.Live.

Ventrata doesn't notify CityKeys.Live when a ticket is scanned or redeemed. CityKeys.Live only sees a redemption if it reads the booking back from Ventrata.

Pass Walkup Scanning Sync

❌

CityKeys.Live pass holders can't be scanned at your entrance without a booking.

Customers from CityKeys.Live need a booking made through CityKeys.Live before they visit.

Gift Card Sync

❌

Ventrata gift cards can't be sold or redeemed through CityKeys.Live.

Gift cards bought in Ventrata can't be used on CityKeys.Live, and CityKeys.Live can't sell Ventrata gift cards.

✅ supported · ✅ / ❌ limited · ❌ not supported

 

Good to know: limits and details of the CityKeys.Live connection

  • Delays: availability and prices reach CityKeys.Live only when it checks, so there's always a short delay after you change something in Ventrata.

  • Cancellation cutoff: CityKeys.Live can cancel over the API only before your option's cancellation cutoff. Later cancellations have to be agreed with you.

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

  • Tickets: CityKeys.Live issues the Ventrata tickets or voucher it gets on confirmation, so your usual scanning and redemption work as normal.

  • Test bookings: CityKeys.Live can send test bookings while it sets up the connection. Test bookings don't use your availability and aren't invoiced.

 

FAQs

No products are displayed on the connection page.

Verify which destinations, products, and options are allowed on your reseller 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 CityKeys.Live.

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

 

 

Partner Information

CityKeys.Live

 

Ventrata Partner ID: 05c11c70-5737-4d89-afcc-f725c3da59ad

Did this answer your question?