Skip to main content

API Getting Started Guide

This guide is designed to help developers get started with the Kadence REST API. Whether you're building internal tools or integrating Kadence with your existing systems, this article walks you through the basics.

Liza avatar
Written by Liza
Updated this week

🛠️ Prerequisites

To use the Kadence API, you'll need:

👉 New to Kadence? Sign up or book a demo


📚 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

These examples demonstrate how to:

  • Authenticate via OAuth 2.0

  • Fetch and manage users, bookings, and resources

  • Parse response payloads


🔐 Authentication: OAuth 2.0

Kadence uses OAuth 2.0 Client Credentials Flow for secure API access.

Step 1: Get Your Credentials

Ask a Global Admin in your Kadence account to:

  • Navigate to Settings → API Keys → Add API Key

  • Add a name and description and click the “Create API key” button when complete.

    We recommend that you add a meaningful name and associated description to help you identify how the key is being used.

  • You’ll be navigated to the API key details page when your API key has been created. From this page, you can find the Client Identifier and Secret.

Step 2: Request an Access Token

Follow the steps below to request a token to communicate with our API:

  1. Send a POST request to the Kadence Auth endpoint with your Client Identifier and Client Secret.

URL

Method

POST

Content type

application/x-www-form-urlencoded

Body

grant_type=client_credentials&client_id={API_KEY_IDENTIFIER}&client_secret={API_KEY_SECRET}&scope=public

For ease of reading you can see the post body in the table below:

Key

Value

grant_type

client_credentials

client_id

Insert your client identifier

client_secret

Insert your client secret

scope

public

Step 3: Handle the Response

If you have successfully authenticated you’ll receive a HTTP 200 - OK status code and accompanying JSON payload containing your authentication token.

{   "token_type": "Bearer",   "expires_in": 43200,   "access_token": "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }

Use this token in your request headers:

Authorization: Bearer YOUR_ACCESS_TOKEN

In the event you are unable to authenticate you’ll receive a response with an HTTP 401 - Not Authorised status code and accompanying error message.

{   "error": "invalid_client",   "error_description": "Client authentication failed",   "message": "Client authentication failed" }

Check that your client credentials are correct.

Token Expiry


🚦 Rate Limiting

To protect Kadence services and ensure a reliable experience for all customers, the Kadence API enforces rate limiting.

Rate Limit Details

  • Each application or developer is limited to 2,500 requests per hour

  • Rate limit information is returned in the response headers of every API request

Rate Limit Headers

Header

Example Value

Description

X-RateLimit-Limit

2500

The maximum number of API requests allowed per hour

X-RateLimit-Remaining

2000

The number of requests remaining in the current window

X-RateLimit-Retry-After

596505600

A Unix timestamp indicating when rate limiting resets

📌 If you exceed the rate limit, requests will be temporarily blocked until the reset time indicated in the headers.


⚡ Quick Start Guides

To help developers get up and running faster, Kadence provides Quick Start Guides that walk through common API use cases.

Currently available guides include:

  • 📅 Retrieve bookings

  • ✅ Check in to and check out of bookings

  • ➕ Create a booking

  • 🗺️ Display space availability on a floorplan

We’ll continue to add more guides as the Kadence REST API expands.


📬 API Response Format

  • All responses follow standard HTTP status codes

  • Custom headers prefixed with X- may be included

  • Body content is JSON-formatted

👉 For status code reference, see: MDN HTTP Status Codes


🆘 Getting Help

If you encounter an issue while using the Kadence API, we're here to help. To speed up troubleshooting and resolution, please include as much detail as possible in your support request.

What to Include in Your Request

  • A clear summary of what you're trying to achieve using the Kadence API

  • The API request(s) you've made:

    • Endpoint URL

    • Request headers and body (if applicable)

    • Response status code, headers, and body

  • A detailed description of:

    • What you expected to happen

    • What actually happened

  • If applicable, include the Kadence Trace ID from the response header X-WX-Trace

    • If unavailable, please include the approximate time the issue occurred

  • If the issue is intermittent, include a frequency estimate (e.g. "3 out of 10 times")

Providing this information up front helps us resolve your issue faster and more accurately.

Please email this information to [email protected]


💬 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?