Skip to main content

API Guide: Check-in/Out of Bookings

This guide provides developers with a quick and effective way to check users in and out of bookings using the Kadence Public API.

Liza avatar
Written by Liza
Updated yesterday

🛠️ Prerequisites

Before getting started:

  • You must have a Kadence account

  • A Global Admin must generate an API key

Need help? Follow the API Getting Started Guide.

All datetime values must be in UTC and follow the format YYYY-MM-DDThh:mm:ss.


📚 API Documentation & Sample Code

Explore the API

Visit our full API specification: https://api.kadence.co/

You'll find:

  • Full list of available endpoints

  • Request/response examples

  • Supported query parameters

Sample Applications

View example code and starter projects on GitHub: https://github.com/wearekadence/kadence-public-api-examples


🔑 Step 1: Get an Access Token

Use your API key to obtain a bearer token via OAuth 2.0 client credentials grant.

See our Authentication section for example request and response bodies.


✅ Prerequisites

Before getting started:

  • You must create an API Key

  • The user must already have a booking

  • The booking must be eligible for check-in (future, not checked in yet)

  • You must have the booking ID and user ID


🔐 Step 1: Create an API Key

To authenticate requests, you'll need to:

  1. Create an API Key in Kadence (admin only)

  2. Generate a token using Client Credentials Flow

🛠️ See our [Getting Started Guide] for step-by-step instructions.


👤 Step 2: Find the User

Use the v1/public/users endpoint to look up a user by email, first name, or last name.

Example request:

GET <https://api.onkadence.co/v1/public/[email protected]>

Example response:

{ "hydra:member": [ { ... "id": "01GTBV1CT3BM8A42SEJ2J5F4EG", "email": "[email protected]", "firstName": "John", "lastName": "Smith", ... } ], "hydra:totalItems": 1 }

Save the userId from this response to use in later steps.


📅 Step 3: Find the Booking

Use v1/public/users/{userId}/bookings to find the user's booking.

You can filter by:

  • startDate, endDate

  • type

  • status=booked

Example request:

GET <https://api.onkadence.co/v1/public/users/{userId}/bookings?type=desk&status=booked&startDate=2023-01-01&endDate=2023-01-02>

Example response:

{ "hydra:member": [ { ... "id": "01GTBV1CT3BM8A42SEJ2J5F4EG", "startDate": "2023-01-01T09:00:00+00:00", "endDate": "2023-01-01T17:00:00+00:00", "status": "booked", "type": "desk", "building": "/v1/public/buildings/01GTBV1CT3BM8A42SEJ2J5F4EG" } ], "hydra:totalItems": 1 }

✅ Step 4: Check In to a Booking

Use the v1/public/bookings/{bookingId}/check-in endpoint.

This endpoint requires:

  • userId (who is performing the check-in)

  • Optional method (how the check-in happened)

Example:

https://api.onkadence.co/v1/public/bookings/{bookingId}/check-in

🧠 You may want to use a service account as the userId making the check-in call or you may want it to appear as if the user themselves had checked in


✅ Supported Check-in Methods

Method

Description

doorAccess

User checked in via door system

wifi

User connected to corporate Wi-Fi

geofence

User's location reported in building

sensor

Occupancy sensor detected presence


⛔ Self-Certification Warning

If self-certification is enabled, the API will not allow check-in unless the user has completed their self-certification.


🔁 Step 5: Check Out of a Booking

To check out a user, use v1/public/bookings/{bookingId}/check-out.

This endpoint requires:

  • A checked-in booking

  • The userId performing the action

  • Optional method for how the checkout occurred

Example:

https://api.onkadence.co/v1/public/bookings/{bookingId}/check-out

✅ Supported Check-out Methods

Method

Description

doorAccess

User checked out via door system

wifi

User disconnected from corporate Wi-Fi

geofence

User's location reported outside building

sensor

Occupancy sensor presence gone


💬 Need Help?

For support, reach out to:
📩 [email protected]

Check our service status at:

For more helpful articles see:
📚 Kadence Help Center

Did this answer your question?