Retrieve More Accommodations

  • Booking
  • Option creation
  • 6 routes
How do I add more accommodations to an existing proposal?

This scenario explains how to extend a proposal with additional accommodation arrangements after the initial search and attendee qualification steps.

Overview

The route sequence combines proposal creation, attendee qualification, accommodation category discovery, arrangement search, arrangement update, and final read-back of the updated repartition.

Prerequisites

  • A proposal must already exist or be created at the start of the sequence.
  • proposal_id is required on accommodation arrangement routes.
  • product_id may be needed to resolve accommodation categories.
  • accept-language and x-api-key are required on the documented calls.

Process workflow

Legend:
Mandatory
Optional
1

Search for a proposal

Mandatory

Use POST/v3/proposals/search to search for a proposal.

Prerequisites

Prepare the parameters required by the call. Keep x-api-key and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

Calling CURL

curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "product-1", "start_date": "2026-07-05", "end_date": "2026-07-12", "attendees": [{"birthdate": "1990-03-12"}]}' \
  "https://api.clubmed.com/v3/proposals/search"

Example answer

[
  {
    "id": "proposal-1",
    "product_id": "product-1",
    "price": {
      "amount": 2890,
      "currency": "EUR"
    },
    "remaining_stock": 4
  }
]

info: Keep the returned proposal_id to request additional accommodations on the same proposal.


Response codes

  • 200 OK: the operation succeeds and the resource is returned.
  • 400 Bad Request: the body or parameters are invalid.
  • 404 Not Found: the target resource cannot be found.
Click to expand
POST/v3/proposals/search
See more
2

Qualify proposal attendees

Mandatory

Use PUT/v3/proposals/{proposal_id}/attendees to qualify proposal attendees.

Prerequisites

Prepare proposal_id. Keep x-api-key and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

Calling CURL

curl -X PUT \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Content-Type: application/json" \
  -d '{"attendees": [{"id": "attendee-1", "first_name": "Jane", "last_name": "Doe", "birthdate": "1990-03-12"}]}' \
  "https://api.clubmed.com/v3/proposals/{proposal_id}/attendees"

Example answer

HTTP/1.1 204 No Content

info: Success may be returned without a response body. Read the resource again afterwards if you need to display the final state.


Response codes

  • 204 No Content: the operation is applied successfully.
  • 400 Bad Request: the body or parameters are invalid.
  • 404 Not Found: the target resource cannot be found.
Click to expand
PUT/v3/proposals/{proposal_id}/attendees
See more
3

List the product accommodation categories

Optional

Use GET/v0/products/{product_id}/accommodation_categories to understand which room categories can later be requested in the proposal.

Prerequisites

Prepare product_id. Keep x-api-key and, when the route is customer-scoped, a valid bearer token.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  "https://api.clubmed.com/v0/products/{product_id}/accommodation_categories"

Example answer

[
  {
    "id": "cat-1",
    "label": "Superior rooms"
  }
]

info: Room categories describe the catalog; proposal-level availability still needs to be checked in the next arrangement search.


Response codes

  • 200 OK: the expected data is returned.
  • 400 Bad Request: the request is invalid or incomplete.
  • 404 Not Found: the requested resource cannot be found.
GET/v0/products/{product_id}/accommodation_categories
See more
4

Search for additional accommodation arrangements

Mandatory

Use POST/v1/accommodations_arrangement/search to compare the additional room arrangements that are actually available for the current proposal.

Prerequisites

Prepare the parameters required by the call. Keep x-api-key and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

Calling CURL

curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Content-Type: application/json" \
  -d '[{"id": "room-1", "occupancy": 2, "attendees": [{"id": "attendee-1"}, {"id": "attendee-2"}]}]' \
  "https://api.clubmed.com/v1/accommodations_arrangement/search"

Example answer

[
  {
    "id": "room-1",
    "remaining_stock": 3,
    "differential_prices": {
      "amount": 120,
      "currency": "EUR"
    }
  }
]

info: Compare the returned room splits and price deltas before selecting the arrangement to apply.


Response codes

  • 200 OK: the operation succeeds and the resource is returned.
  • 400 Bad Request: the body or parameters are invalid.
  • 404 Not Found: the target resource cannot be found.
Click to expand
POST/v1/accommodations_arrangement/search
See more
5

Add an accommodation arrangement

Mandatory

Use PUT/v1/proposals/{proposal_id}/accommodations_arrangement to add an accommodation arrangement.

Prerequisites

Prepare proposal_id. Keep x-api-key and, when the route is customer-scoped, a valid bearer token. Validate the request body before the call to avoid a validation error.

Calling CURL

curl -X PUT \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  -H "Content-Type: application/json" \
  -d '[{"id": "room-1", "occupancy": 2, "attendees": [{"id": "attendee-1"}, {"id": "attendee-2"}]}]' \
  "https://api.clubmed.com/v1/proposals/{proposal_id}/accommodations_arrangement"

Example answer

HTTP/1.1 204 No Content

info: Success may be returned without a response body. Read the resource again afterwards if you need to display the final state.


Response codes

  • 204 No Content: the operation is applied successfully.
  • 400 Bad Request: the body or parameters are invalid.
  • 404 Not Found: the target resource cannot be found.
Click to expand
PUT/v1/proposals/{proposal_id}/accommodations_arrangement
See more
6

Review the updated accommodation arrangement

Mandatory

Use GET/v1/proposals/{proposal_id}/accommodations_arrangement to read back the arrangement currently applied on the proposal after the accommodation change.

Prerequisites

Prepare proposal_id. Keep x-api-key and, when the route is customer-scoped, a valid bearer token.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: en-US" \
  "https://api.clubmed.com/v1/proposals/{proposal_id}/accommodations_arrangement"

Example answer

[
  {
    "id": "room-1",
    "label": "Superior Room",
    "attendees": [
      {
        "id": "attendee-1"
      }
    ]
  }
]

info: Check households, room assignment, and price consequences before exposing the updated proposal to the user.


Response codes

  • 200 OK: the expected data is returned.
  • 400 Bad Request: the request is invalid or incomplete.
  • 404 Not Found: the requested resource cannot be found.
GET/v1/proposals/{proposal_id}/accommodations_arrangement
See more