openapi: 3.0.1 info: title: Channex ARI Channels API description: 'Channex is a white-label hotel channel manager API. This specification describes the JSON-based REST API (v1) for managing properties, room types, rate plans, availability and restrictions (ARI), bookings, channels, and webhooks. Requests and responses use a resource envelope: response bodies carry a `data` (or `meta` / `errors`) root key, and `data` objects contain `type` and `attributes`. Write requests wrap their payload under a resource-type key (e.g. `property`, `room_type`, `rate_plan`).' termsOfService: https://channex.io/terms-of-service/ contact: name: Channex Support email: support@channex.io url: https://docs.channex.io/ version: '1.0' servers: - url: https://secure.channex.io/api/v1 description: Production - url: https://staging.channex.io/api/v1 description: Staging / sandbox security: - userApiKey: [] tags: - name: Channels description: Manage OTA distribution channels. paths: /channels: get: operationId: listChannels tags: - Channels summary: List channels parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' - name: filter[property_id] in: query schema: type: string format: uuid responses: '200': description: A list of channels. content: application/json: schema: $ref: '#/components/schemas/ChannelList' post: operationId: createChannel tags: - Channels summary: Add a channel description: Connect an OTA channel. Available to white-label accounts. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChannelWriteRequest' responses: '201': description: The created channel. content: application/json: schema: $ref: '#/components/schemas/ChannelResponse' /channels/{id}: parameters: - $ref: '#/components/parameters/Id' get: operationId: getChannel tags: - Channels summary: Get a channel responses: '200': description: The requested channel. content: application/json: schema: $ref: '#/components/schemas/ChannelResponse' put: operationId: updateChannel tags: - Channels summary: Update a channel requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChannelWriteRequest' responses: '200': description: The updated channel. content: application/json: schema: $ref: '#/components/schemas/ChannelResponse' delete: operationId: deleteChannel tags: - Channels summary: Delete a channel responses: '200': description: Channel deleted. components: parameters: Limit: name: limit in: query schema: type: integer minimum: 1 maximum: 100 default: 10 Page: name: page in: query schema: type: integer minimum: 1 default: 1 Id: name: id in: path required: true schema: type: string format: uuid schemas: ChannelResponse: type: object properties: data: $ref: '#/components/schemas/Channel' ChannelWriteRequest: type: object required: - channel properties: channel: $ref: '#/components/schemas/ChannelAttributes' Channel: type: object properties: id: type: string format: uuid type: type: string example: channel attributes: $ref: '#/components/schemas/ChannelAttributes' ChannelAttributes: type: object required: - property_id - channel properties: property_id: type: string format: uuid title: type: string channel: type: string description: OTA channel identifier (e.g. Booking.com, Airbnb, Expedia). is_active: type: boolean settings: type: object properties: type: object description: Channel-specific configuration and room/rate mappings. ChannelList: type: object properties: data: type: array items: $ref: '#/components/schemas/Channel' meta: type: object securitySchemes: userApiKey: type: apiKey in: header name: user-api-key description: Channex API key passed in the `user-api-key` request header. Generate a key in the Channex application under your account settings.