List meeting rooms, optionally filtered to a free time window
Not paginated — returns the full filtered set (no meta). Pass startDateTime + endDateTime to get only rooms free to book for that window — a room whose cleaning time (cleanupMinutes) the window would run into is left out too; rooms free but not bookable for a configuration reason carry unavailableReason (OPERATING_HOURS or BREAK_TIME). Absence of unavailableReason means bookable.
Authorization
bearerAuth Access token from POST /auth/accessToken
In: header
Query Parameters
Project (property) to list rooms for
Restrict to specific room IDs
Value in
- "normal"
- "bedroom"
1 <= valueAvailability window start (ISO 8601 with offset)
date-timeAvailability window end — required together with startDateTime
date-timeResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/meeting-rooms?projectId=string"{ "code": "KS000", "success": true, "message": "string", "data": [ { "_id": "string", "name": "string", "email": "string", "capacity": 0, "status": "active", "type": "normal", "brandId": "string", "projectId": "string", "zoneId": "string", "floorId": "string", "equipmentsAvailability": { "camera": true, "display": true, "mic": true, "projector": true, "speaker": true }, "pictureUrls": [ "string" ], "facilities": [ "string" ], "isPublic": true, "chargeRate": { "perHour": 0, "perDay": 0 }, "config": { "dayConfig": { "Mon": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Tue": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Wed": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Thu": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Fri": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Sat": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Sun": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] } }, "start": "string", "end": "string", "minimumLeadTime": { "minutes": 0, "hours": 0, "days": 0 }, "maxAdvanceBookingDays": 0, "maxDurationMinutes": 0, "bookMultipleDayRoom": true, "meetingConfig": { "preStartMinutes": 0, "postStartWarnMinutes": 0, "postStartExpireMinutes": 0, "preEndMinutes": 0 } }, "unavailableReason": "OPERATING_HOURS", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "polygon": [ { "xPct": 0, "yPct": 0 } ], "cleanupMinutes": 0 } ]}Obtain or refresh an access token POST
OAuth 2.0 token endpoint. Use grant_type app_credentials with app_id/app_secret for the initial token, or grant_type refresh_token to rotate. Advanced: grant_type act_as (RFC-8693 token-exchange; the URN urn:ietf:params:oauth:grant-type:token-exchange is accepted as an alias) mints a short-lived, member-scoped token on behalf of one of your OWN federated members — send app_id/app_secret plus subject (default subject_type external_user_id). The delegated token is authorized at member ∩ app scope and carries NO refresh token (re-run act_as instead). Returns the token object directly (NOT wrapped in the standard envelope) and no token_type field — always send the token as `Authorization: Bearer <access_token>`. Token lifetimes are environment configuration: derive expiry from expires_in, never hardcode.
Get one meeting room (includes booking calendar) GET
Next Page