---
title: "Add one or multiple reservations to an existing group booking using blocked inventory."
method: POST
path: "/booking/v0-nsfw/groups/{id}/reservations"
tags: ["Group"]
---

# Add one or multiple reservations to an existing group booking using blocked inventory.

`POST /booking/v0-nsfw/groups/{id}/reservations`

## Request

- Base URL: `https://api.apaleo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.apaleo.com/booking/v0-nsfw/groups/{id}/reservations`
- Auth: OAuth 2
  - Implicit: `https://identity.apaleo.com/connect/authorize`
  - Scopes: `groups.manage`, `reservations.manage`, `admin`

Creates new reservations and adds them to an existing group booking taking a list of reservations as input<br>You must have at least one of these scopes: 'groups.manage, reservations.manage'.<br>For fine-grained clients, you must have this permission: 'core.groups.modify'.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- PickUpReservationsModel: With this request you can pick up reservations to an existing group booking
  - `reservations` PickUpReservationModel[], required: List of reservations to pick up to the existing group booking
    - `blockId` string, required: ID of the block
    - `services` BookReservationServiceModel[], nullable: Additional services (extras, add-ons) that should be added to the reservation
      - `serviceId` string, required: The id of the service you want to book
      - `count` integer, nullable: The number of services to book for each service date. It defaults to the service offer count when not specified.
      - `amount` MonetaryValueModel
        - `amount` number, double, required
        - `currency` string, required
      - `dates` Date[], nullable: The optional dates you want to book the service for; if not specified the default service pattern will be used (e.g. whole stay).
        - `serviceDate` string, date, required: The date the service is delivered
        - `count` integer, nullable: The number of services to book for this date. It defaults to the service offer count when not specified.
        - `amount` MonetaryValueModel
          - `amount` number, double, required
          - `currency` string, required
    - `arrival` string, required: Date of arrival and the optional time with UTC offset<br />Specify either a pure date or a date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `departure` string, required: Date of departure and the optional time with UTC offset<br />Specify either a pure date or a date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `adults` integer, required: Number of adults
    - `childrenAges` integer[], nullable: The ages of the children
    - `comment` string, nullable: Additional information and comments
    - `guestComment` string, nullable: Additional information and comment by the guest
    - `primaryGuest` GuestModel: Guest on v0-nsfw booking endpoints. Sibling of Apaleo.Api.Modules.Booking.Models.Reservation.GuestModel (not a subclass): Swagger schema ids strip "Unstable", so inheriting the stable type would collide on "GuestModel".
      - `title` 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other', nullable: Title of the guest
      - `gender` 'Female' | 'Male' | 'Other' | 'Unknown', nullable: Gender of the guest Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/Gender/allowed-values to check what values are allowed.
      - `firstName` string, nullable: First name of the guest
      - `middleInitial` string, nullable: Middle initial of the guest
      - `lastName` string, required: Last name of the guest
      - `secondLastName` string, nullable: Second last name of the guest
      - `email` string, nullable: Email address of the guest
      - `phone` string, nullable: Phone number of the guest
      - `address` PersonAddressModel
        - `addressLine1` string, nullable
        - `addressLine2` string, nullable
        - `postalCode` string, nullable
        - `city` string, nullable
        - `regionCode` string, nullable: ISO 3166-2 region code including the country prefix (e.g. US-CA, DE-BY).
        - `countryCode` string, nullable
      - `nationalityCountryCode` string, nullable: The guest's nationality, in ISO 3166-1 alpha-2 code
      - `identificationNumber` string, nullable: The guest's identification number for the given identificationType.
      - `identificationAdditionalNumber` string, nullable: The guest's additional identification number for the given identificationType.
      - `identificationIssueDate` string, date, nullable: The issue date of the guest's identification document.
      - `identificationExpiryDate` string, date, nullable: The expiry date of the guest's identification document.
      - `identificationIssuePlace` string, nullable: The issue place of the guest's identification document.
      - `identificationType` 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other', nullable: The type of the identificationNumber Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/IdentificationType/allowed-values to check what values are allowed.
      - `personalTaxId` string, nullable: The personal tax id of the guest
      - `company` PersonCompanyModel
        - `name` string, nullable: Name of the company
        - `taxId` string, nullable: Tax or Vat ID of the company
      - `preferredLanguage` string, nullable: ISO 639-1 language code (the language, not the country code): e.g. vi not vn, ja not jp, cs not cz, zh not cn.
      - `birthDate` string, date, nullable: Guest's birthdate
      - `birthPlace` string, nullable: Guest's place of birth
      - `birthFirstName` string, nullable: Guest's first name right after birth
      - `birthLastName` string, nullable: Guest's last name right after birth
      - `motherFirstName` string, nullable: Guest's mother's first name
      - `motherLastName` string, nullable: Guest's mother's last name
      - `borderCrossingPlace` string, nullable: The place through which the guest crossed the border
      - `borderCrossingDate` string, date, nullable: Date on which the guest crossed the border
      - `nextDestination` string, nullable: The guest's next destination address
      - `relationshipToPrimaryGuest` 'Grandparent' | 'Grandchild' | 'GreatGrandparent' | 'GreatGrandchild' | 'Parent' | 'Child' | 'Sibling' | 'ParentInLaw' | 'ChildInLaw' | 'SiblingInLaw' | 'Spouse' | 'UncleOrAunt' | 'NephewOrNiece' | 'Guardian' | 'Other', nullable: The relationship of the guest to the primary guest.
      - `vehicleRegistration` VehicleRegistrationModel
        - `number` string, nullable: The number of a vehicle registration plate
        - `countryCode` string, nullable: Code of the country of vehicle registration
      - `loyaltyMemberships` LoyaltyMembershipModel[], nullable: Loyalty program memberships of the guest. Stored as sent; program codes are not validated against a catalog.
        - `program` string, nullable: Loyalty program code. Stored as sent; not validated against a catalog.
        - `membershipNumber` string, nullable: Membership number in the loyalty program.
        - `tier` string, nullable: Optional loyalty tier. Stored as sent.
      - `isVip` boolean, nullable: Whether the guest is a VIP. Omitted on update leaves the stored value unchanged. Omitted on create means the guest is not a VIP.
      - `marketingConsent` MarketingConsentModel
        - `granted` boolean, required: Whether the guest granted marketing consent.
        - `capturedAt` string, date-time, nullable: When the guest gave or withdrew consent. Defaults to the time Apaleo receives the write.<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
        - `source` string, nullable: Free-text source of the consent, e.g. booking-engine, front-desk, comms-app.
        - `receivedAt` string, date-time, nullable: Set by Apaleo whenever a write changes the consent. Ignored on input.<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `additionalGuests` GuestModel[], nullable: Additional guests of the reservation.
      - `title` 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other', nullable: Title of the guest
      - `gender` 'Female' | 'Male' | 'Other' | 'Unknown', nullable: Gender of the guest Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/Gender/allowed-values to check what values are allowed.
      - `firstName` string, nullable: First name of the guest
      - `middleInitial` string, nullable: Middle initial of the guest
      - `lastName` string, required: Last name of the guest
      - `secondLastName` string, nullable: Second last name of the guest
      - `email` string, nullable: Email address of the guest
      - `phone` string, nullable: Phone number of the guest
      - `address` PersonAddressModel
        - `addressLine1` string, nullable
        - `addressLine2` string, nullable
        - `postalCode` string, nullable
        - `city` string, nullable
        - `regionCode` string, nullable: ISO 3166-2 region code including the country prefix (e.g. US-CA, DE-BY).
        - `countryCode` string, nullable
      - `nationalityCountryCode` string, nullable: The guest's nationality, in ISO 3166-1 alpha-2 code
      - `identificationNumber` string, nullable: The guest's identification number for the given identificationType.
      - `identificationAdditionalNumber` string, nullable: The guest's additional identification number for the given identificationType.
      - `identificationIssueDate` string, date, nullable: The issue date of the guest's identification document.
      - `identificationExpiryDate` string, date, nullable: The expiry date of the guest's identification document.
      - `identificationIssuePlace` string, nullable: The issue place of the guest's identification document.
      - `identificationType` 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other', nullable: The type of the identificationNumber Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/IdentificationType/allowed-values to check what values are allowed.
      - `personalTaxId` string, nullable: The personal tax id of the guest
      - `company` PersonCompanyModel
        - `name` string, nullable: Name of the company
        - `taxId` string, nullable: Tax or Vat ID of the company
      - `preferredLanguage` string, nullable: ISO 639-1 language code (the language, not the country code): e.g. vi not vn, ja not jp, cs not cz, zh not cn.
      - `birthDate` string, date, nullable: Guest's birthdate
      - `birthPlace` string, nullable: Guest's place of birth
      - `birthFirstName` string, nullable: Guest's first name right after birth
      - `birthLastName` string, nullable: Guest's last name right after birth
      - `motherFirstName` string, nullable: Guest's mother's first name
      - `motherLastName` string, nullable: Guest's mother's last name
      - `borderCrossingPlace` string, nullable: The place through which the guest crossed the border
      - `borderCrossingDate` string, date, nullable: Date on which the guest crossed the border
      - `nextDestination` string, nullable: The guest's next destination address
      - `relationshipToPrimaryGuest` 'Grandparent' | 'Grandchild' | 'GreatGrandparent' | 'GreatGrandchild' | 'Parent' | 'Child' | 'Sibling' | 'ParentInLaw' | 'ChildInLaw' | 'SiblingInLaw' | 'Spouse' | 'UncleOrAunt' | 'NephewOrNiece' | 'Guardian' | 'Other', nullable: The relationship of the guest to the primary guest.
      - `vehicleRegistration` VehicleRegistrationModel
        - `number` string, nullable: The number of a vehicle registration plate
        - `countryCode` string, nullable: Code of the country of vehicle registration
      - `loyaltyMemberships` LoyaltyMembershipModel[], nullable: Loyalty program memberships of the guest. Stored as sent; program codes are not validated against a catalog.
        - `program` string, nullable: Loyalty program code. Stored as sent; not validated against a catalog.
        - `membershipNumber` string, nullable: Membership number in the loyalty program.
        - `tier` string, nullable: Optional loyalty tier. Stored as sent.
      - `isVip` boolean, nullable: Whether the guest is a VIP. Omitted on update leaves the stored value unchanged. Omitted on create means the guest is not a VIP.
      - `marketingConsent` MarketingConsentModel
        - `granted` boolean, required: Whether the guest granted marketing consent.
        - `capturedAt` string, date-time, nullable: When the guest gave or withdrew consent. Defaults to the time Apaleo receives the write.<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
        - `source` string, nullable: Free-text source of the consent, e.g. booking-engine, front-desk, comms-app.
        - `receivedAt` string, date-time, nullable: Set by Apaleo whenever a write changes the consent. Ignored on input.<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `travelPurpose` 'Business' | 'Leisure', nullable: The purpose of the trip, leisure or business

## Response `201`

All new reservations were created and added to the group booking.

- ReservationsCreatedModel
  - `reservationIds` ReservationCreatedModel[], required: List of ids for newly created reservations
    - `id` string, required: Id of the reservation

## Other responses

- `400`: Bad request.
- `401`: You are unauthorized.
- `403`: Forbidden.
- `404`: The Request-URI could not be found.
- `415`: Unsupported media type.
- `422`: Validation errors in the request body or query params.
- `499`: Client closed request.
- `500`: An unexpected error occurred.
- `503`: The server is currently unavailable. Please try later.

---

[API](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work.md) - [All operations](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work/llms.txt) - [OpenAPI document](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work/revisions/a1b6a2f6b879?raw)
