Hotel Bergsonne Allgäu Bookings API

The Bookings API from Hotel Bergsonne Allgäu — 1 operation(s) for bookings.

Operations 1

POST /bookings Create a hotel reservation #

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/bergsonne-allgaeu-de:bergsonne-allgaeu-de-bookings-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

bergsonne-allgaeu-de-bookings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bergsonne Allgaeu De Bookings API
  version: 1.3.0
  contact:
    name: Hotel Bergsonne Allgäu
    url: https://bergsonne-allgaeu.de
    email: servus@bergsonne-allgaeu.de
  description: 'Operations tagged Bookings across 2 of this provider''s published API definitions: bergsonne-allgaeu-de-openapi.json, bergsonne-allgaeu-de-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://bergsonne-allgaeu.de/api/booking
  description: Production Booking API
- url: https://bergsonne-allgaeu.de/api/booking/sandbox
  description: 'Sandbox — separate base URL, identical paths and payloads. Test mode is forced server-side: full validation and pricing, no real reservation, bookingId is prefixed with TEST-. No credentials required.'
  x-sandbox: true
security:
- {}
- oauth2:
  - hotel:read
  - booking:read
- agentBearer:
  - hotel:read
  - booking:read
tags:
- name: Bookings
paths:
  /bookings:
    post:
      operationId: createBooking
      summary: Create a hotel reservation
      description: 'Creates a real reservation at Hotel Bergsonne Allgäu. Requires user confirmation. Add test:true to the body for sandbox mode (no real reservation created). To prevent duplicate bookings on retries, send an idempotency key either as the Idempotency-Key request header (preferred, header wins) or as idempotencyKey in the body; a repeated key returns the original booking with status already_created. Call via: POST /?action=bookings'
      parameters:
      - name: action
        in: query
        required: true
        schema:
          type: string
          const: bookings
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          type: string
        description: Unique key to make booking creation idempotent. Alternative to the idempotencyKey body field; when both are sent, the header wins.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - roomId
              - rateId
              - checkIn
              - checkOut
              - adults
              - customer
              properties:
                roomId:
                  type: string
                  enum:
                  - KAPDZ
                  - KDZ
                  - KFZ
                  - SDZ
                  description: Room type abbreviation code from availability results
                rateId:
                  type: string
                  description: Rate plan ID (from availability/price-quote)
                checkIn:
                  type: string
                  example: '2027-01-01'
                  description: Check-in date (YYYY-MM-DD)
                checkOut:
                  type: string
                  example: '2027-01-03'
                  description: Check-out date (YYYY-MM-DD)
                adults:
                  type: integer
                  minimum: 1
                  example: 2
                children:
                  type: integer
                  minimum: 0
                  default: 0
                customer:
                  type: object
                  required:
                  - firstName
                  - lastName
                  - email
                  - phone
                  - country
                  properties:
                    firstName:
                      type: string
                      example: Max
                    lastName:
                      type: string
                      example: Mustermann
                    email:
                      type: string
                      format: email
                      example: max@example.com
                    phone:
                      type: string
                      example: +49 170 1234567
                    country:
                      type: string
                      example: DE
                      description: ISO country code
                    salutation:
                      type: string
                      example: Herr
                    address:
                      type: string
                    city:
                      type: string
                    zip:
                      type: string
                    remarks:
                      type: string
                      description: Special requests or notes
                test:
                  type: boolean
                  default: false
                  description: Set to true for sandbox mode. Returns a TEST bookingId without creating a real reservation.
                idempotencyKey:
                  type: string
                  description: Unique key to prevent duplicate bookings on retries.
            example:
              roomId: KAPDZ
              rateId: DIREKTUEBERNACHTUNGS
              checkIn: '2027-01-01'
              checkOut: '2027-01-03'
              adults: 2
              customer:
                firstName: Max
                lastName: Mustermann
                email: max@example.com
                phone: +49 170 1234567
                country: DE
              test: true
      responses:
        '201':
          description: Booking created successfully
          headers:
            RateLimit:
              schema:
                type: string
              description: IETF rate limit state, e.g. "per-minute";limit=100;remaining=99;reset=42. Sent on every API response.
            RateLimit-Policy:
              schema:
                type: string
              description: Rate limit policy, e.g. "per-minute";q=100;w=60 (100 requests per 60 seconds per client IP). Sent on every API response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  bookingId:
                    type: string
                  roomId:
                    type: string
                  status:
                    type: string
                    enum:
                    - confirmed
                    - pending
                    - test_created
                  checkIn:
                    type: string
                  checkOut:
                    type: string
                  totalPrice:
                    type: object
                    properties:
                      amount:
                        type: number
                      currency:
                        type: string
                  _pricing:
                    type: object
                    properties:
                      currency:
                        type: string
                      taxIncluded:
                        type: boolean
                      note:
                        type: string
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          description: Rate limit exceeded (100 requests per 60 seconds per client IP)
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds until the rate limit window resets.
            RateLimit:
              schema:
                type: string
              description: Rate limit state with remaining=0.
            RateLimit-Policy:
              schema:
                type: string
              description: Rate limit policy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2:
        - booking:write
      - {}
      x-required-scope: booking:write
      x-sandbox-flag: test
      x-openai-isConsequential: true
      tags:
      - Bookings
    servers:
    - url: https://bergsonne-allgaeu.de/api/booking
      description: Production Booking API
    - url: https://bergsonne-allgaeu.de/api/booking/sandbox
      description: 'Sandbox — separate base URL, identical paths and payloads. Test mode is forced server-side: full validation and pricing, no real reservation, bookingId is prefixed with TEST-. No credentials required.'
      x-sandbox: true
components:
  responses:
    Unauthorized:
      description: Missing or invalid credential. The WWW-Authenticate header names the required scope and points at the protected-resource metadata.
      headers:
        WWW-Authenticate:
          schema:
            type: string
          example: Bearer resource_metadata="https://bergsonne-allgaeu.de/.well-known/oauth-protected-resource", scope="booking:write"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Credential is valid but lacks the required scope (booking:write).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        hint:
          type: string
        docs:
          type: string
        openapi:
          type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: 'OAuth 2.1 Authorization Code with PKCE (S256). Least-privilege: request only the scopes you need. Reservation writes are performed on behalf of a named human guest and therefore require booking:write.'
      flows:
        authorizationCode:
          authorizationUrl: https://bergsonne-allgaeu.de/.well-known/oauth-authorization-server
          tokenUrl: https://bergsonne-allgaeu.de/.well-known/oauth-authorization-server
          refreshUrl: https://bergsonne-allgaeu.de/.well-known/oauth-authorization-server
          scopes:
            hotel:read: Read hotel metadata, room types, amenities, fact sheet and bookable extras.
            booking:read: Read availability, rates and price quotes.
            booking:write: Create a reservation on behalf of a named human guest.
        clientCredentials:
          tokenUrl: https://bergsonne-allgaeu.de/.well-known/oauth-authorization-server
          scopes:
            hotel:read: Read hotel metadata, room types, amenities, fact sheet and bookable extras.
            booking:read: Read availability, rates and price quotes.
      x-pkce-code-challenge-methods:
      - S256
    agentBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Self-serve agent credential. POST https://bergsonne-allgaeu.de/agent/auth — anonymous, no account, no human approval. Grants the read-only scopes hotel:read and booking:read. booking:write requires the OAuth user flow.
      x-self-serve-registration: https://bergsonne-allgaeu.de/agent/auth
      x-scopes-granted:
      - hotel:read
      - booking:read
x-refined-from:
- bergsonne-allgaeu-de-openapi.json
- bergsonne-allgaeu-de-openapi.json
x-oauth-protected-resource: https://bergsonne-allgaeu.de/.well-known/oauth-protected-resource
x-authorization-server: https://bergsonne-allgaeu.de/.well-known/oauth-authorization-server
x-agent-instructions: https://bergsonne-allgaeu.de/.well-known/agent-instructions.md
x-auth-documentation: https://bergsonne-allgaeu.de/.well-known/auth.md
x-sandbox:
  supported: true
  mode: server-url-or-request-flag
  baseUrl: https://bergsonne-allgaeu.de/api/booking/sandbox
  flag: test
  description: 'Either call the sandbox base URL https://bergsonne-allgaeu.de/api/booking/sandbox (test mode forced server-side) or set "test": true in the POST /bookings body against production. Same validation and pricing, no real reservation, bookingId prefixed with TEST-.'
  credentialsRequired: false
  documentation: https://bergsonne-allgaeu.de/developers