Endpoint
Authentication
- Required header:
api-key: <partner-api-key> - Required body field:
settings.access.code
Headers
| Header | Required | Description |
|---|---|---|
Content-Type | Yes | application/json |
api-key | Yes | Partner API key |
connection-code | Optional | Auto-filled from settings.access.code |
session-id | Optional | Auto-generated if missing |
Request Body
Top-level fields
| Field | Type | Required | Notes |
|---|---|---|---|
searchCriteria | object | Yes | Search input details |
settings | object | Yes | Connection access + business rules |
filters | object | No | Optional filtering controls |
distributionContext | object | No | Optional distribution metadata |
listing | boolean | No | Default false |
requestFromPortal | boolean | No | Default false |
searchCriteria fields
| Field | Type | Required | Notes |
|---|---|---|---|
destinations.accommodations[] | array | Yes | Destination list (at least one accommodation code) |
destinations.accommodations[].type | string | No | Default Hotel |
destinations.accommodations[].code | string | Yes | Accommodation ID |
occupancies[] | array | Yes | Room occupancies |
occupancies[].occupancyId | number | No | Optional reference ID |
occupancies[].paxes[] | array | Yes | Guests in occupancy |
occupancies[].paxes[].age | number | Yes | Guest age |
occupancies[].paxes[].nationality | string | No | ISO country code |
geo.lat | number | No | Geo search latitude |
geo.lng | number | No | Geo search longitude |
geo.radiusKm | number | No | Geo search radius in km |
markets[] | string[] | No | Market codes |
checkIn | string | Yes | YYYY-MM-DD |
checkOut | string | Yes | YYYY-MM-DD |
language | string | No | Language code |
currency | string | No | Currency code |
nationality | string | No | Nationality code |
settings fields
| Field | Type | Required | Notes |
|---|---|---|---|
access.code | number | Yes | Partner connection code |
access.user | string | No | Reserved |
access.password | string | No | Reserved |
access.apiKey | string | No | Reserved |
access.urls | object | No | Reserved (book/search/quote/generic) |
access.parameters | object | No | Reserved key-value map |
businessRules.optionsQuota | number | No | >=1 |
businessRules.businessRuleType | string | No | CHEAPEST or DEFAULT |
supplier | string | No | Reserved |
platform | string | No | Reserved |
client | string | No | Reserved |
timeout | string | No | Upstream timeout hint |
includeProviderTransactions | boolean | No | Reserved |
filters fields
| Field | Type | Required | Notes |
|---|---|---|---|
status.includes[] | string[] | No | Include statuses |
status.excludes[] | string[] | No | Exclude statuses |
rateRuleFilter.includes[] | string[] | No | Include rate rules |
rateRuleFilter.excludes[] | string[] | No | Exclude rate rules |
rateRuleFilter.includeEmptyRateRulesOptions | boolean | No | Include options with empty rate rules |
distributionContext fields (top-level)
| Field | Type | Required | Notes |
|---|---|---|---|
customer | object | No | Device/user/location context |
salesChannel | string | No | WEB / APP / OFFLINE |
distributionMode | string | No | CUSTOMER / REDISTRIBUTION |
supportedVisibilityTypes[] | string[] | No | PUBLIC / PACKAGE / OPAQUE_PROPERTY |
/api-reference/models/common-objects.
Example Request
Success Response
POST /api/search returns flattened options per accommodation (current default implementation):
Response Field Map
| Field | Type | Notes |
|---|---|---|
data.accommodations[] | array | Accommodation list |
data.accommodations[].accommodationCode | string | Accommodation ID |
data.accommodations[].accommodationName | string | Accommodation name |
data.accommodations[].accommodationType | string | Usually Hotel |
data.accommodations[].location | object | Country/geo info |
data.accommodations[].options[] | array | Available options |
data.accommodations[].options[].id | string | Option reference (optionId) for quote |
data.accommodations[].options[].boardCode | string | Board code |
data.accommodations[].options[].boardName | string | Board label |
data.accommodations[].options[].isRefundable | boolean | Refundability flag |
data.accommodations[].options[].rate | object | Option-level price block |
data.accommodations[].options[].cancelPolicy | object | Cancellation policy |
data.accommodations[].options[].rooms[] | array | Room-level details |
data.requestId | string | Trace ID |
data.responseTime | number | Milliseconds |
message | string | Always success for success |
Rate Limit Headers
/search includes:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetRetry-Afterwhen limited (429)
Common Errors
400 Invalid connection code400 No connection401 API key is required401 Invalid API key401 Connection not found401 Connection access denied429 Rate limit exceeded