Cvent Passkey RegLink API

Passkey RegLink is the hotel room-block and housing surface of the Cvent platform. It connects an external registration system to Passkey events and hotel inventory: fetch housing events, hotels, room types, availability and inventory; create a reservation request (the "bridge") that pre-populates a registrant and hands them a unique booking link; then create, update, cancel, link and unlink the resulting reservations. Cvent's own migration guide maps every legacy XML and browser RegLink call onto these operations. It is delivered as the Housing and Housing Hotels tags of the unified Cvent REST API at https://api-platform.cvent.com/ea, secured with OAuth 2.0 and 15 housing/* scopes, with an optional callback service that POSTs on reservation create, modify and cancel. Passkey is an add-on licence.

Operations 21

POST /connections Create Connection #
GET /housing-events/summaries Get Housing Events Summaries #
GET /housing-events/{housingEventId} Get Housing Event Info #
GET /housing-events/{housingEventId}/hotels Get Housing Event Hotels #
GET /housing-events/{housingEventId}/hotels/{hotelId} Get Housing Event Hotel #
GET /housing-events/{housingEventId}/hotels/{hotelId}/available-nights Get Event Hotel Availability #
GET /housing-events/{housingEventId}/hotels/{hotelId}/room-types Get Housing Event Room Types #
GET /housing-events/{housingEventId}/hotels/{hotelId}/room-types/{roomTypeId} Get Room Type Details #
GET /housing-events/{housingEventId}/hotels/{hotelId}/room-types/{roomTypeId}/inventory Get Room Type Inventory #
GET /housing-events/{housingEventId}/inventory Get Housing Event Inventory #
GET /housing-events/{housingEventId}/reservations Get Housing Event Reservations #
POST /reservation-requests Create Reservation Request #
GET /reservation-requests/{reservationRequestsId} Get Reservation Request #
PUT /reservation-requests/{reservationRequestsId} Update Reservation Request #
DELETE /reservation-requests/{reservationRequestsId} Cancel Reservation Request #
POST /reservation-requests/{reservationRequestsId}/reservations/{reservationId} Link Reservation #
DELETE /reservation-requests/{reservationRequestsId}/reservations/{reservationId} Unlink Reservation #
POST /reservations Create Reservation #
GET /reservations/{reservationId} Get Reservation #
DELETE /reservations/{reservationId} Cancel Reservation #
PUT /reservations/{reservationId} Update Reservation #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/passkey-reglink"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cvent-hospitality-cloud-housing-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Cvent Housing API
  description: 'The Housing surface of the Cvent REST API (Cvent Hospitality Cloud). Split by tag from the

    single "Cvent REST APIs" OpenAPI document Cvent publishes on its developer portal.

    Operations, schemas, parameters and responses are carried through verbatim; nothing was authored here.


    Source: https://developers.cvent.com/documentation (getPublicSpec, https://developers.cvent.com/api/graphql)

    '
  contact:
    name: Cvent Development Platform
    url: https://developers.cvent.com/
  version: ea
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Housing
  description: "RegLink APIs allow you to exchange data with Cvent Passkey events and hotel reservation-booking\
    \ engines.\nGenerally, there are four primary categories of functionality that RegLink APIs support:\n  * **Sync\
    \ Registrants.** Allow individual registrant information to be sent to Cvent Passkey, streamlining the hotel\
    \ reservation process for attendees. Attendees can then be directed to Passkey post-registration and reserve\
    \ a hotel room without re-entering their data again. This is done with the reservation request endpoint.\n \
    \ * **Fetch Rooms.** The ability for an external system to fetch Passkey event details and hotel room availability\
    \ based on various criteria.\n  * **Fetch Reservations.** The ability for an external system to fetch detailed\
    \ reservation information for individual registrants. This is done with the Reservation endpoint and the Callback\
    \ system.\n  * **Manage Reservations.** The ability for an external system to create, modify or cancel a registrant's\
    \ hotel reservation directly or indirectly.\n\nIf you need authentication credentials or have any questions\
    \ regarding the RegLink APIs, contact the [Cvent Passkey Integrations Team](https://web.cvent.com/survey/c6a60a30-d981-4ae8-af28-686af0eeb9b7/welcome).\n\
    \n* **Passkey.** A software solution allowing your invitees to book room reservations directly with hotels.\n\
    * **Housing Event.** An Passkey event where invitees will be able to register and book rooms.\n* **Reservation\
    \ Request.** Represents a request to book rooms in the housing event.\n* **RegLink.** A feature that links Passkey\
    \ events to your registration events, enabling you to sync data between the two events.\n* **Callback.** [Passkey's\
    \ callback system](/docs/passkey/REST/callbacks) allows for a push notification to be sent to your system when\
    \ a reservation is created, modified or cancelled.\n"
paths:
  /connections:
    post:
      tags:
      - Housing
      summary: Create Connection
      description: 'Create a connection between an integration partner and an event using an access code provided
        by the Passkey

        event owner. This connection is required to authorize all other API calls for the event. Only one active

        connection is supported per access code at a time.

        '
      operationId: createConnection
      security:
      - OAuth2.clientCredentials:
        - housing/connections:write
      parameters:
      - $ref: '#/components/parameters/accessCode'
      responses:
        '200':
          description: Successfully connected.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connection-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
  /housing-events/summaries:
    get:
      tags:
      - Housing
      summary: Get Housing Events Summaries
      description: 'Gets a paginated list of summary information for your individual housing events. Use this endpoint
        to discover

        which events your integration has access to and to retrieve housing event IDs for use in other endpoints.

        '
      operationId: getHousingEventsSummaries
      security:
      - OAuth2.clientCredentials:
        - housing/housing-events:read
      parameters:
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/housingEventsSummariesFilter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of summary information for your individual housing
            events.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/housing-event-summary-list'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}:
    get:
      tags:
      - Housing
      summary: Get Housing Event Info
      description: 'Retrieves housing event details based on the given housing event ID. Use this endpoint to get
        event-level

        information such as event name, dates, attendee types, and related configuration. Get the housing event
        ID

        from the [Get Housing Events Summaries](#operation/getHousingEventsSummaries) endpoint, from the

        [Create Connection](#operation/createConnection) response, or directly from the Passkey event owner.

        '
      operationId: getHousingEventInfo
      security:
      - OAuth2.clientCredentials:
        - housing/housing-events:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      responses:
        '200':
          description: Successfully retrieved the housing events details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/housing-event'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels:
    get:
      tags:
      - Housing
      summary: Get Housing Event Hotels
      description: 'Get a list of hotels for the given housing event. Returns a paginated list of all hotels in
        the housing event''s

        room block, including hotel names, addresses, and IDs. Use the hotel IDs from this response to query

        [room types](#operation/getHousingEventRoomTypes), [availability](#operation/getHousingEventHotelAvailability),
        and [inventory](#operation/getRoomTypeInventory).

        '
      operationId: getHousingEventHotels
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-hotels:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/locale2'
      responses:
        '200':
          description: Successfully retrieved a paginated list of hotels for the housing event, and their related
            details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/housing-event-hotels-list'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels/{hotelId}:
    get:
      tags:
      - Housing
      summary: Get Housing Event Hotel
      description: 'Gets a single hotel''s details in a housing event. Returns detailed information about a specific
        hotel,

        including address and localized content. Use this endpoint when you need full details for

        a single hotel rather than the [summary list](#operation/getHousingEventHotels).

        '
      operationId: getHousingEventHotel
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-hotels:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/hotelId1'
      - $ref: '#/components/parameters/locale2'
      responses:
        '200':
          description: Successfully retrieved a hotel's details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/housing-event-hotel'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels/{hotelId}/available-nights:
    get:
      tags:
      - Housing
      summary: Get Event Hotel Availability
      description: 'Get a filterable list of available room nights for a particular hotel and housing event. Returns
        availability

        by date, showing which nights have rooms remaining.


        Filter by attendee type and date range to narrow results.

        '
      operationId: getHousingEventHotelAvailability
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-available-nights:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/hotelId1'
      - $ref: '#/components/parameters/availableNightsFilter'
      - $ref: '#/components/parameters/availabilityLimit'
      - $ref: '#/components/parameters/paginationParam'
      responses:
        '200':
          description: Successfully retrieved a paginated list of room nights.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/available-nights'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels/{hotelId}/room-types:
    get:
      tags:
      - Housing
      summary: Get Housing Event Room Types
      description: 'Get a filterable list of room types for a given hotel in a housing event. Room types represent
        categories of

        rooms (for example, Standard King or Double Queen) available at the hotel for this event. Use the returned

        room type IDs to query [room details](#operation/getRoomTypeDetails) and [inventory](#operation/getRoomTypeInventory).


        Filter by attendee type to retrieve only the room types available to a specific attendee segment.

        '
      operationId: getHousingEventRoomTypes
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-room-types:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/hotelId1'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/roomTypesFilter'
      - $ref: '#/components/parameters/locale2'
      responses:
        '200':
          description: Successfully retrieved a paginated list of room types.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/housing-event-room-types-list'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels/{hotelId}/room-types/{roomTypeId}:
    get:
      tags:
      - Housing
      summary: Get Room Type Details
      description: 'Get a room type''s details for the given housing event, hotel, and room type. Returns detailed
        information about

        a specific room type, including room description and available images.

        '
      operationId: getRoomTypeDetails
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-room-types:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/hotelId1'
      - $ref: '#/components/parameters/roomTypeId'
      - $ref: '#/components/parameters/locale2'
      responses:
        '200':
          description: Successfully retrieved room details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/room-type-details'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/hotels/{hotelId}/room-types/{roomTypeId}/inventory:
    get:
      tags:
      - Housing
      summary: Get Room Type Inventory
      description: 'Gets a list of room type inventory details (by date) for the given housing event, hotel, and
        room type. Returns

        date-by-date inventory counts (total rooms, rooms picked up, and rooms remaining) for a specific room type.


        Filter by date range to retrieve inventory for specific nights.

        '
      operationId: getRoomTypeInventory
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-inventory:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/hotelId1'
      - $ref: '#/components/parameters/roomTypeId'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/inventoryFilter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of room type inventory details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inventory-details-list'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/inventory:
    get:
      tags:
      - Housing
      summary: Get Housing Event Inventory
      description: 'Gets a list (sorted by date) of housing event inventory details for the given housing event.
        Returns aggregated

        inventory across all hotels and room types in the event. This provides a high-level view of total event
        capacity

        and pickup.


        For per-hotel or per-room-type breakdowns, use [Get Room Type Inventory](#operation/getRoomTypeInventory)
        instead.

        '
      operationId: getHousingEventInventory
      security:
      - OAuth2.clientCredentials:
        - housing/housing-event-inventory:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/inventoryFilter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of housing event inventory details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inventory-details-list'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /housing-events/{housingEventId}/reservations:
    get:
      tags:
      - Housing
      summary: Get Housing Event Reservations
      description: 'Get a list of reservation details for the given housing event. Returns a paginated list of all
        reservations in

        the event, including guest details, stay dates, hotel, room type, and reservation status. Use the `before`

        and `after` parameters to filter by when a reservation was added or last updated, which is useful for incremental
        syncing.


        Returns an empty list when no reservations match the criteria.

        '
      operationId: getHousingEventReservations
      security:
      - OAuth2.clientCredentials:
        - housing/reservations:read
      parameters:
      - $ref: '#/components/parameters/housingEventId'
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/paginationParam'
      - $ref: '#/components/parameters/housingReservationsFilter'
      responses:
        '200':
          description: Successfully returned reservations details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reservations-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /reservation-requests:
    post:
      tags:
      - Housing
      summary: Create Reservation Request
      description: 'Creates a reservation request from guest details.


        A reservation request represents a registration and stores guest details such as name, email, and preferences.

        The response includes a guest-specific `bookingSite` URL. When the guest books through that URL, Passkey

        pre-populates their details and links the new reservation to the reservation request for tracking.

        '
      operationId: createReservationRequest
      security:
      - OAuth2.clientCredentials:
        - housing/reservation-requests:write
      requestBody:
        description: Reservation request information.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reservation-request'
      responses:
        '200':
          description: Successfully created reservation request.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation-request'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /reservation-requests/{reservationRequestsId}:
    get:
      tags:
      - Housing
      summary: Get Reservation Request
      description: 'Returns reservation request details for a given reservation request ID. The response includes
        guest details,

        the `bookingSite` URL, and a linked Reservation ID/ack number if present.

        '
      operationId: getReservationRequest
      security:
      - OAuth2.clientCredentials:
        - housing/reservation-requests:read
      parameters:
      - $ref: '#/components/parameters/reservationRequestsId'
      responses:
        '200':
          description: Successfully returned response with reservation request information.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation-request'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
    put:
      tags:
      - Housing
      summary: Update Reservation Request
      description: 'Update a reservation request using the given reservation request ID. Use this endpoint to update
        guest details

        (name, email, preferences) on the reservation request. The request body overwrites the current version entirely.


        If a reservation has already been booked through this request, changes to the reservation request do not
        affect

        the linked reservation. To update the hotel booking itself, use [Update Reservation](#operation/updateReservationSync)
        instead.


        You cannot update a cancelled reservation request.

        '
      operationId: updateReservationRequest
      security:
      - OAuth2.clientCredentials:
        - housing/reservation-requests:write
      requestBody:
        description: Reservation request details. This data will overwrite the current version of the reservation
          request for the given ID.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/existing-reservation-request'
      parameters:
      - $ref: '#/components/parameters/reservationRequestsId'
      responses:
        '200':
          description: Successfully returned response with updated reservation request information.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation-request'
        '400':
          description: Reservation request was cancelled and cannot be modified.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-response'
              example:
                code: 400
                message: The reservation request is cancelled and cannot be modified.
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
    delete:
      tags:
      - Housing
      summary: Cancel Reservation Request
      description: 'Update the status of a reservation request to cancelled. If a reservation has already been booked
        through this

        request, cancelling the request does not cancel the linked reservation. To cancel the hotel booking itself,

        use [Cancel Reservation](#operation/cancelReservation).


        You cannot cancel a reservation request that already has a linked reservation. [Unlink the reservation](#operation/unlinkReservation)
        first,

        then cancel the request.

        '
      operationId: cancelReservationRequest
      security:
      - OAuth2.clientCredentials:
        - housing/reservation-requests:delete
      parameters:
      - $ref: '#/components/parameters/reservationRequestsId'
      responses:
        '204':
          description: Successfully cancelled reservation request.
        '400':
          description: Reservation already exists for given reservation request, so we cannot cancel it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-response'
              example:
                code: 400
                message: Reservation record already present.
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /reservation-requests/{reservationRequestsId}/reservations/{reservationId}:
    post:
      tags:
      - Housing
      summary: Link Reservation
      description: 'Link an existing reservation to a reservation request. Commonly used when a reservation was
        created outside the

        normal booking flow, such as when a guest calls the hotel directly or when staff books through the Passkey

        Call Center. Linking associates the reservation with the registration represented by the reservation request,

        enabling tracking and callback reporting.

        '
      operationId: linkReservation
      security:
      - OAuth2.clientCredentials:
        - housing/reservations-link:write
      parameters:
      - $ref: '#/components/parameters/reservationRequestsId'
      - $ref: '#/components/parameters/reservationId'
      responses:
        '204':
          description: Successfully linked reservation to reservation request.
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
    delete:
      tags:
      - Housing
      summary: Unlink Reservation
      description: 'Unlink a reservation from a reservation request. Commonly used when a linked reservation has
        been cancelled and

        you need to free up the reservation request so a new reservation can be linked in its place.

        Unlinking does not cancel or change the reservation itself.


        After unlinking, you can [link a new reservation](#operation/linkReservation) or allow the guest to book
        again using the reservation

        request''s `bookingSite` URL.

        '
      operationId: unlinkReservation
      security:
      - OAuth2.clientCredentials:
        - housing/reservations-link:delete
      parameters:
      - $ref: '#/components/parameters/reservationRequestsId'
      - $ref: '#/components/parameters/reservationId'
      responses:
        '204':
          description: Successfully removed link between reservation request and reservation.
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /reservations:
    post:
      tags:
      - Housing
      summary: Create Reservation
      description: 'Create a hotel reservation in a housing event based on the details provided in the request body.
        This endpoint

        directly creates a hotel booking on behalf of a guest. Requires a valid hotel ID, room type ID, and guest

        details (including arrival and departure dates).


        To generate a booking URL that guests complete themselves, use [Create Reservation Request](#operation/createReservationRequest)
        instead.

        '
      operationId: createReservation
      security:
      - OAuth2.clientCredentials:
        - housing/reservations:write
      requestBody:
        description: Reservation you are creating.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/new-reservation'
      responses:
        '200':
          description: Successfully created the reservation.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /reservations/{reservationId}:
    get:
      tags:
      - Housing
      summary: Get Reservation
      description: 'Get reservation details for the given reservation ID. Commonly used in response to

        [Passkey callbacks](/docs/passkey/REST/callbacks), where a callback payload includes the reservation ID.

        Call this endpoint to retrieve the full reservation details after receiving a callback notification.

        '
      operationId: getReservation
      security:
      - OAuth2.clientCredentials:
        - housing/reservations:read
      parameters:
      - $ref: '#/components/parameters/reservationId'
      responses:
        '200':
          description: Successfully returned reservation details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
    delete:
      tags:
      - Housing
      summary: Cancel Reservation
      description: 'Cancel a reservation for the given reservation ID. Cancelling a reservation does not cancel
        the linked

        reservation request. If you need to also [cancel the reservation request](#operation/cancelReservationRequest),
        do so separately. After cancellation,

        [unlink the reservation](#operation/unlinkReservation) from its reservation request so you can link a new
        one.

        '
      operationId: cancelReservation
      security:
      - OAuth2.clientCredentials:
        - housing/reservations:delete
      parameters:
      - $ref: '#/components/parameters/reservationId'
      responses:
        '204':
          description: Successfully cancelled reservation.
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
    put:
      tags:
      - Housing
      summary: Update Reservation
      description: 'Updates an existing reservation for the given reservation ID. This is a synchronous operation
        that returns

        the updated reservation in the response. The request body must include the full reservation object.

        Use [Get Reservation](#operation/getReservation) to retrieve the current reservation before making changes.


        To update stay dates, room type, or guest details, include all required fields in the request body.

        '
      operationId: updateReservationSync
      security:
      - OAuth2.clientCredentials:
        - housing/reservations:write
      parameters:
      - $ref: '#/components/parameters/reservationId'
      requestBody:
        description: Updated reservation data.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/new-reservation'
      responses:
        '200':
          description: Successfully updated reservation details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-reservation'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
 

# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent-hospitality-cloud/refs/heads/main/openapi/cvent-hospitality-cloud-housing-openapi.yml