openapi: 3.0.3 info: title: Beds24 API V2 Accounts Messages API description: 'The Beds24 API V2 lets you read, create, and alter data across almost all aspects of a Beds24 account, including properties, room inventory, bookings, prices, invoices, channels, and account settings. Beds24 is a vacation rental and hotel channel manager, property management system, and booking engine. Base URL is https://api.beds24.com/v2. Authentication uses expiring access tokens that are generated from a refresh token (or a read-only long-life token) obtained via the /authentication endpoints; the token is sent in the "token" request header. Every category except /authentication requires a matching scope. Usage is governed by an account-level credit limit over a rolling 5-minute window, reported via the x-five-min-limit-remaining, x-five-min-limit-resets-in, and x-request-cost response headers. This document models the public V2 surface from Beds24''s Swagger UI (https://api.beds24.com/v2/) and wiki. Endpoint shapes marked as modeled are grounded in the published documentation but were not byte-verified against the live Swagger JSON, which requires an authenticated token to retrieve.' version: '2.0' contact: name: Beds24 url: https://beds24.com license: name: Proprietary url: https://beds24.com/terms.html servers: - url: https://api.beds24.com/v2 description: Beds24 API V2 production security: - tokenAuth: [] tags: - name: Messages description: Guest and channel messages attached to bookings. paths: /bookings/messages: get: operationId: getBookingMessages tags: - Messages summary: Get booking messages description: Returns guest and channel messages for the specified bookings. parameters: - name: bookingId in: query schema: type: integer - name: maxAge in: query schema: type: integer description: Only messages newer than N seconds. responses: '200': description: A list of messages. content: application/json: schema: type: object properties: success: type: boolean data: type: array items: $ref: '#/components/schemas/Message' '401': $ref: '#/components/responses/Unauthorized' post: operationId: postBookingMessages tags: - Messages summary: Post booking messages description: Posts a guest or channel message to one or more bookings. requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageWrite' responses: '200': description: Message write results. content: application/json: schema: type: array items: $ref: '#/components/schemas/Success' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Error: type: object properties: success: type: boolean example: false code: type: integer example: 401 error: type: string example: Token is missing MessageWrite: type: object properties: bookingId: type: integer message: type: string Success: type: object properties: success: type: boolean new: type: object additionalProperties: true modified: type: object additionalProperties: true warnings: type: array items: type: string Message: type: object properties: id: type: integer bookingId: type: integer source: type: string read: type: boolean time: type: string format: date-time message: type: string responses: Unauthorized: description: The token is missing, invalid, expired, or lacks the required scope. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: tokenAuth: type: apiKey in: header name: token description: Short-lived access token generated from a refresh token via the /authentication endpoints, sent in the "token" request header.