ChatBedsDevelopers
API reference

Identity

Check a credential, read the property it acts for, and discover what the API supports at that hotel.

Call these first. GET /me tells you which property a key or token belongs to; GET /properties gives that property's address, time zone, currency and local date; GET /capabilities tells you what the hotel has switched on, such as card payment links.

Who am I

GET/me
Operation identity.probe

Returns the credential (its name, partner name and prefix) and the property it acts for. It needs no scope, so it works with any valid key or token: use it to check a credential after the hotel connects your app.

Parameters

None.

Example

Request
curl -X GET "https://api.chatbeds.app/partner/v1/me" \
  -H "Authorization: Bearer cbk_••••"
200 OK
{
  "api_version": "1",
  "key": {
    "id": "465f3661-c8f0-4a15-8ad6-9bdc1cce118d",
    "name": "Sandbox key",
    "partner": "sandbox",
    "prefix": "cbk_8iT8Ct0S"
  },
  "property": {
    "id": "19306340-c7cf-465a-93d3-0b7873a7e85d",
    "name": "Sandbox Hotel"
  }
}
FieldMeaning
key.partnerThe partner name. Bookings you make carry the source PARTNER:<partner>
key.prefixThe first characters of the key, safe to show in your UI and logs
property.idThe {property_id} to use in every property path

For an app token, key describes the connection's key that ChatBeds made behind the scenes when the hotel connected your app.

Errors

StatusWhen
401No credential, or it is wrong, revoked or expired. For an app, this is also how you learn the hotel disconnected it
403The hotel's ChatBeds account is not active

List properties

GET/properties
Scope property:readOperation property.list

Returns the property the credential acts for, as a one-item list: its type, time zone, currency, address, check-in and check-out times, and today's date at the hotel.

Parameters

None.

Example

Request
curl -X GET "https://api.chatbeds.app/partner/v1/properties" \
  -H "Authorization: Bearer cbk_••••"
200 OK
{
  "properties": [
    {
      "id": "19306340-c7cf-465a-93d3-0b7873a7e85d",
      "name": "Sandbox Hotel",
      "type": "hotel",
      "timezone": "America/New_York",
      "currency": "USD",
      "address": {
        "line1": "100 Test Street",
        "line2": null,
        "city": "Newark",
        "state": "DE",
        "country": "United States",
        "postal_code": "19713"
      },
      "check_in_time": "14:00",
      "check_out_time": "12:00",
      "today": "2026-10-10"
    }
  ]
}

Use the hotel's today

today is the date in the hotel's time zone. Offers cannot start before it, so use it rather than your server's date when you build a date picker.

Errors

StatusWhen
403The app token lacks property:read

Describe capabilities

GET/capabilities
Operation capability.describe

Returns the API version, the operations, the features this hotel supports, the payment methods you may record, and the limits. It needs no scope. Read it once per connection and again from time to time: payment_links changes when the hotel connects or disconnects Stripe.

Parameters

None.

Example

Request
curl -X GET "https://api.chatbeds.app/partner/v1/capabilities" \
  -H "Authorization: Bearer cbk_••••"
200 OK
{
  "api_version": "1",
  "operations": [
    "identity.probe",
    "property.list",
    "capability.describe",
    "roomType.list",
    "ratePlan.list",
    "unit.list",
    "extra.list",
    "offer.search",
    "policy.get",
    "reservation.create",
    "reservation.get",
    "reservation.search",
    "reservation.modify",
    "reservation.cancel",
    "reservation.addExtra",
    "folio.get",
    "folio.addCharge",
    "folio.addPayment",
    "payment.createLink",
    "payment.getStatus"
  ],
  "currency": "USD",
  "features": {
    "idempotency_key": true,
    "external_ref": true,
    "room_assignment_on_create": true,
    "rate_plans": true,
    "extras": true,
    "payment_links": false,
    "webhooks": [
      "reservation.created",
      "reservation.modified",
      "reservation.cancelled"
    ],
    "webhook_signature": "ChatBeds-Signature: t=<unix>,v1=<hex HMAC-SHA256 of 't.body'>"
  },
  "payment_methods": [
    "CASH",
    "CARD",
    "BANK_TRANSFER"
  ],
  "limits": {
    "max_offer_nights": 60,
    "max_search_results": 100
  }
}
FieldMeaning
features.payment_linkstrue when the hotel has connected Stripe, so payment.createLink works
features.room_assignment_on_createYou may pick a specific room with unit_id when booking
features.webhooksThe webhook event types
payment_methodsThe values folio.addPayment accepts for method
limits.max_offer_nightsThe longest stay offer.search prices
limits.max_search_resultsThe highest limit for reservation.search

Errors

Only the common ones (401, 403 for an inactive account, 429, 503).

Building something?

On this page