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
/meidentity.probeReturns 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
curl -X GET "https://api.chatbeds.app/partner/v1/me" \
-H "Authorization: Bearer cbk_••••"{
"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"
}
}| Field | Meaning |
|---|---|
key.partner | The partner name. Bookings you make carry the source PARTNER:<partner> |
key.prefix | The first characters of the key, safe to show in your UI and logs |
property.id | The {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
| Status | When |
|---|---|
401 | No credential, or it is wrong, revoked or expired. For an app, this is also how you learn the hotel disconnected it |
403 | The hotel's ChatBeds account is not active |
List properties
/propertiesproperty:readOperation property.listReturns 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
curl -X GET "https://api.chatbeds.app/partner/v1/properties" \
-H "Authorization: Bearer cbk_••••"{
"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
| Status | When |
|---|---|
403 | The app token lacks property:read |
Describe capabilities
/capabilitiescapability.describeReturns 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
curl -X GET "https://api.chatbeds.app/partner/v1/capabilities" \
-H "Authorization: Bearer cbk_••••"{
"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
}
}| Field | Meaning |
|---|---|
features.payment_links | true when the hotel has connected Stripe, so payment.createLink works |
features.room_assignment_on_create | You may pick a specific room with unit_id when booking |
features.webhooks | The webhook event types |
payment_methods | The values folio.addPayment accepts for method |
limits.max_offer_nights | The longest stay offer.search prices |
limits.max_search_results | The highest limit for reservation.search |
Errors
Only the common ones (401, 403 for an inactive account, 429, 503).
Building something?