Beds24 Inventory API

Per-day availability calendar, availability status, and fixed prices.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/beds24-inventory-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

beds24-inventory-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Beds24 API V2 Accounts Inventory 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: Inventory
  description: Per-day availability calendar, availability status, and fixed prices.
paths:
  /inventory/rooms/calendar:
    get:
      operationId: getRoomCalendar
      tags:
      - Inventory
      summary: Get per-day price and availability
      description: Retrieves per-day price and availability for rooms in bulk (for example a year at a time) suitable for caching locally. Returns number of units available, min/max stay, prices, and open/close status per date.
      parameters:
      - name: roomId
        in: query
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: true
      - name: startDate
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: includePrices
        in: query
        schema:
          type: boolean
      - name: includeNumAvail
        in: query
        schema:
          type: boolean
      - name: includeMinStay
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: Per-day calendar entries.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CalendarDay'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: postRoomCalendar
      tags:
      - Inventory
      summary: Update per-day price and availability
      description: Updates prices and availability per room and date range - number of units available, min/max stay, and open/close status - which propagates to connected channels.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CalendarWrite'
      responses:
        '200':
          description: Calendar write results.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /inventory/rooms/availability:
    get:
      operationId: getRoomAvailability
      tags:
      - Inventory
      summary: Get availability status of dates
      description: Returns whether dates are available or not for the specified rooms.
      parameters:
      - name: roomId
        in: query
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: true
      - name: startDate
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: true
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Availability status per date.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AvailabilityDay'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: postRoomAvailability
      tags:
      - Inventory
      summary: Update availability of dates
      description: Sets availability (open/close and number of units) for rooms and dates. Modeled.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AvailabilityDay'
      responses:
        '200':
          description: Availability write results.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /inventory/fixedPrices:
    get:
      operationId: getFixedPrices
      tags:
      - Inventory
      summary: Get fixed prices
      description: Returns the fixed price rules and rate plans configured for rooms.
      parameters:
      - name: propertyId
        in: query
        schema:
          type: integer
      - name: roomId
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: A list of fixed prices.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FixedPrice'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: postFixedPrices
      tags:
      - Inventory
      summary: Create or modify fixed prices
      description: Creates or updates fixed price rules and rate plans.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/FixedPrice'
      responses:
        '200':
          description: Fixed price write results.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteFixedPrices
      tags:
      - Inventory
      summary: Delete fixed prices
      description: Deletes fixed price rules by id. Modeled.
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Delete result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    AvailabilityDay:
      type: object
      properties:
        roomId:
          type: integer
        date:
          type: string
          format: date
        available:
          type: boolean
        numAvail:
          type: integer
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        code:
          type: integer
          example: 401
        error:
          type: string
          example: Token is missing
    CalendarDay:
      type: object
      properties:
        roomId:
          type: integer
        date:
          type: string
          format: date
        numAvail:
          type: integer
        price1:
          type: number
        minStay:
          type: integer
        maxStay:
          type: integer
        override:
          type: string
    CalendarWrite:
      type: object
      properties:
        roomId:
          type: integer
        calendar:
          type: array
          items:
            type: object
            properties:
              from:
                type: string
                format: date
              to:
                type: string
                format: date
              numAvail:
                type: integer
              price1:
                type: number
              minStay:
                type: integer
    FixedPrice:
      type: object
      properties:
        id:
          type: integer
        propertyId:
          type: integer
        roomId:
          type: integer
        name:
          type: string
        firstNight:
          type: string
          format: date
        lastNight:
          type: string
          format: date
        minNights:
          type: integer
        maxNights:
          type: integer
        roomPrice:
          type: number
    Success:
      type: object
      properties:
        success:
          type: boolean
        new:
          type: object
          additionalProperties: true
        modified:
          type: object
          additionalProperties: true
        warnings:
          type: array
          items:
            type: string
  responses:
    TooManyRequests:
      description: The account credit limit for the current rolling 5-minute window has been exceeded. Inspect x-five-min-limit-remaining and x-five-min-limit-resets-in.
      headers:
        x-five-min-limit-remaining:
          schema:
            type: integer
          description: Credits remaining in the current 5-minute period.
        x-five-min-limit-resets-in:
          schema:
            type: integer
          description: Seconds until the current period resets.
        x-request-cost:
          schema:
            type: integer
          description: Credits this request cost.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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.