Introduction

A brief introduction to the API and core data types.

This API reference is focused on server-to-server integrations. If all you need is to make your resources bookable through our widget, please refer to our setting up your first project article.

For a general introduction to working with the API please refer to our API articles.

App specific requests

All endpoints documented here are app specific. This means that all results are from entities located the under the specific app you are requesting for. You can have more than one app on Timekit so keep an eye on which App API-Key you are including in your request since it will determine which app context your requests are made in. You can read more about Timekit apps in our introduction glossary

The Timekit API is organized around REST. Our API is designed to follow common HTTP conventions including response codes to indicate both errors and successful requests. Standard HTTP verbs (GET, POST, PUT, DELETE) are used for all methods, no exceptions.

JSON will be returned in all responses from the API, including error messages.

Root endpoint, versions, and protocol

All API calls should be made to https://api.timekit.io/v2 (note the explicit versioning). The current public version of the API is version 2 and is the only publicly supported version (calls to v1 will result in 404 Not Found).

HTTP over TLS 1.2 is enforced for all calls, so non-secure calls will result in a 301 Moved Permanently pointing to the https URI.

CORS

Our API is intended to be consumed both by browser clients (e.g. SPAs) and servers and supports cross-origin resource sharing. As of right now, JSONP is not supported, but we'd love to hear from you if it's of interest.

UUID as IDs

All IDs used by Timekit are UUIDs. A UUID looks like this: de305d54-75b4-431b-adb2-eb6b9e546014
Read more about uuids here

Timezones

The entire list of supported timezones we use is the timezone database 2021.5 https://github.com/tzinfo/tzinfo-data/releases

Examples:

  • Europe/Copenhagen
  • America/Los_Angeles

If you're getting a response of The customer.timezone must be a valid zone please refer to API Requests with incorrect Timezones

Undocumented attributes

Some of the endpoints referenced here will return more data than specified in this reference. Do not rely on any undocumented data, since it will be subject to change without notice.