# Timekit API reference Documentation > Timekit API documentation of endpoints and usage, for developers ## Guides - [Welcome 👋](https://developers.timekit.io/docs/welcome-1.md) - [Working with our API](https://developers.timekit.io/docs/what-is-timekit.md) - [Before you start](https://developers.timekit.io/docs/basic-concepts.md) - [Your account](https://developers.timekit.io/docs/your-account.md) - [API-key](https://developers.timekit.io/docs/api-keys.md) - [Test & Live Mode](https://developers.timekit.io/docs/test-live-modes.md) - [Resources overview](https://developers.timekit.io/docs/overview-1.md) - [Creating resources](https://developers.timekit.io/docs/creating-resources-via-api.md) - [Resource availability](https://developers.timekit.io/docs/resource-availability.md): Define resource-specific availability-constraints - [Projects overview](https://developers.timekit.io/docs/coming-soon.md) - [Services Overview](https://developers.timekit.io/docs/services-overview-1.md) - [Creating a Service](https://developers.timekit.io/docs/creating-a-service.md) - [Service Hours](https://developers.timekit.io/docs/service-hours.md) - [Availability overview](https://developers.timekit.io/docs/overview.md) - [Constraints](https://developers.timekit.io/docs/constraints-1.md): You can set up general constraints for availability, a typical use-case is opening hours. - [Using the endpoints](https://developers.timekit.io/docs/using-the-endpoint.md): In this tutorial we will teach you how to setup and request availability through the API - [Bookings overview](https://developers.timekit.io/docs/overview-2.md) - [Understanding bookings](https://developers.timekit.io/docs/what-is-bookings.md) - [Creating bookings](https://developers.timekit.io/docs/creating-bookings.md) - [State change on bookings](https://developers.timekit.io/docs/state-change-on-bookings.md) - [Group & class bookings](https://developers.timekit.io/docs/4-groups-and-classes.md) - [Notifications & webhooks](https://developers.timekit.io/docs/notifications-webhooks.md) - [Action links](https://developers.timekit.io/docs/action-links.md): Generate a one-time-use **confirm**, **decline** or **cancel** link for your bookings - [Building a rescheduling flow](https://developers.timekit.io/docs/building-a-reschedule-flow.md) - [Customer Split Name](https://developers.timekit.io/docs/customer-split-name.md) - [Emails Templates](https://developers.timekit.io/docs/emails-templates.md): Customize customer facing booking emails. - [Getting started v3](https://developers.timekit.io/docs/booking-widget-v3.md) - [Advanced Configuration](https://developers.timekit.io/docs/booking-widget-v3-configuration.md) - [Getting started v2](https://developers.timekit.io/docs/booking-widget-v2.md) - [Advanced configuration](https://developers.timekit.io/docs/booking-widget-v2-configuration.md) - [Using it with React, Vue etc.](https://developers.timekit.io/docs/using-it-with-react-vue-etc.md) - [Search overview](https://developers.timekit.io/docs/overview-3.md) - [Searching for resources](https://developers.timekit.io/docs/searching-for-resources.md) - [Searching for bookings](https://developers.timekit.io/docs/searching-based-on-graphs.md) - [Scoping with signed search](https://developers.timekit.io/docs/scoping-with-signed-search-1.md): Use signed search to fetch bookings for a customer on the frontend without an app API token - [Connect to Zapier](https://developers.timekit.io/docs/zapier-recipes.md) - [How to build a customer booking overview](https://developers.timekit.io/docs/how-to-build-a-customer-booking-overview.md): In this guide you will learn about the building blocks you can use to build a customer facing booking overview - [Signed webhooks](https://developers.timekit.io/docs/signed-webhooks.md) - [Introduction](https://developers.timekit.io/docs/store-appointments.md) - [Store Appointments Widget](https://developers.timekit.io/docs/store-appointments-widget.md) ## API Reference - [Introduction](https://developers.timekit.io/reference/getting-started.md): A brief introduction to the API and core data types. - [Timestamps](https://developers.timekit.io/reference/timestamps.md): Timestamps are a critical part of Timekit. - [Dynamic includes](https://developers.timekit.io/reference/dynamic-includes.md) - [Search](https://developers.timekit.io/reference/search.md): A number of the Timekit endpoints provide the ability to search on relevant attributes. - [Responses & errors](https://developers.timekit.io/reference/errors.md) - [Signed search](https://developers.timekit.io/reference/signed-search.md): Use signed search to fetch bookings for a customer on the frontend without an app API token - [Pagination](https://developers.timekit.io/reference/pagination.md) - [App based auth](https://developers.timekit.io/reference/authentication.md) - [Get current app](https://developers.timekit.io/reference/app.md): Get the app for the authenticated App API-Key - [Invite resources to app](https://developers.timekit.io/reference/appsinvite.md): Invite existing resources to your app - [Resources overview](https://developers.timekit.io/reference/resources-overview.md) - [Create a resource](https://developers.timekit.io/reference/resources.md): Create a new resource - [List all resources](https://developers.timekit.io/reference/resources-1.md): Get all resources for the app - [Retrieve a resource](https://developers.timekit.io/reference/resourcesid.md): Get a specific resource by ID - [Update a resource](https://developers.timekit.io/reference/resources-id.md): Update a specific resource - [Delete a resource](https://developers.timekit.io/reference/delete-resource.md) - [Availability constraints](https://developers.timekit.io/reference/resource-availability-constraints.md): Set availability-constraints for a single resource in order to limit availability. A common use-case is to set an employees working hours, especially if these are different than a company's opening hours. Another common use-case is setting up vacation which are also employee-specific and not business-specific. - [Availability overview](https://developers.timekit.io/reference/availability-v2.md) - [Constraints](https://developers.timekit.io/reference/constraints.md): Use constraints to set general rules for availability. - [Query availability](https://developers.timekit.io/reference/query-availability-v2.md): Query for availability of resources - [Dates](https://developers.timekit.io/reference/availabilitydates.md): Endpoint that returns all available dates for given resource. - [Counts](https://developers.timekit.io/reference/availabilitycount.md): The ability to easily show a total number of available time slots. - [Unavailable Slots](https://developers.timekit.io/reference/unavailable-slots.md): Following endpoint will be used to retrieve all the times that are blocked off. - [Caching Availability](https://developers.timekit.io/reference/caching-availability.md): Endpoint that uses cache when fetched frequently - [Bookings overview](https://developers.timekit.io/reference/bookings-overview.md) - [Create a booking](https://developers.timekit.io/reference/bookings.md): Use this endpoint to create a booking. Please refer to our tutorial on creating a booking for a more detailed description: http://help.timekit.io/working-with-the-api/bookings/creating-a-booking If you need an introduction the the booking concept as Timekit sees it, please refer to our introduction: http://help.timekit.io/working-with-the-api/bookings/introduction-to-bookings - [List all bookings](https://developers.timekit.io/reference/bookings-2.md): Use this endpoint to get all bookings - [Retrieve a booking](https://developers.timekit.io/reference/bookingsid.md): Use this endpoint to get a specific booking - [Update booking state](https://developers.timekit.io/reference/bookingsidaction.md): Perform an action on a booking to update its state. For a tutorial on how to perform the "confirm" action, head on over to our help center: http://help.timekit.io/working-with-the-api/bookings/confirming-bookings Please also check out our [Action links](https://developers.timekit.io/docs/action-links) article on how you can create one-time links that will be safe to share with your customers, like links in an email. Use this for your customers to confirm, cancel or perform any other action on a booking without involving your backend. - [Update booking meta data](https://developers.timekit.io/reference/update-booking-meta-data.md): Update meta data related to a given booking. - [List all group bookings](https://developers.timekit.io/reference/bookingsgroups.md): Return all available (`tentative`) group bookings For a complete tutorial on working with group bookings, head on over to our help center: http://help.timekit.io/working-with-the-api/bookings/group-bookings - [Retrieve a group booking](https://developers.timekit.io/reference/bookingsgroupsid.md): Get a specific group booking - [Create bookings in bulk](https://developers.timekit.io/reference/bookingsbulk.md): Use this endpoint to create bookings in bulk - [Update bookings in bulk](https://developers.timekit.io/reference/bookingsbulk-1.md): Bulk update bookings - [Delete a booking](https://developers.timekit.io/reference/delete-a-booking.md): Delete a booking. Please note that only bookings in a final state can be deleted. Final states are typically 'completed', 'declined' or 'cancelled'. We have this limit in order to make sure that all parties are notified as expected, before we delete the booking. So that no customer shows up to a booking that was deleted without being cancelled first. - [Reschedule a booking](https://developers.timekit.io/reference/reschedule-a-booking.md): Following endpoint will be used in order to reschedule a booking. - [Retrieve External Action URLs](https://developers.timekit.io/reference/retrieve-external-action-urls.md): Use this endpoint to retrieve external action URLs for rescheduling or cancelling by customer. You can read more about external action links here: https://developers.timekit.io/docs/action-links These will redirect customers to a UI which will allow them to reschedule or cancel a booking. - [Reminders](https://developers.timekit.io/reference/reminders.md): Setup reminders to send emails or trigger webhooks before or after a booking takes place. - [Booking Notifications](https://developers.timekit.io/reference/booking-notifications.md): Customize how you want to send your booking reminders. - [Graphs overview](https://developers.timekit.io/reference/graphs.md): Graphs are the blueprints/workflows that bookings follow during their lifetimes. - [Instant](https://developers.timekit.io/reference/instant-graph.md): The instant graph is used for the situations where the booking request is automatically confirmed, i.e. the booked user doesn't need to confirm the booking. - [Confirm / decline](https://developers.timekit.io/reference/confirm-decline-graph.md): Use the confirm_decline graph when you have to make sure the booking request is confirmed before the booked timeslot is unavailable and an event is added to the resource's calendar. For a tutorial on how you would confirm a booking, please read this tutorial in our help center: http://help.timekit.io/working-with-the-api/bookings/confirming-bookings - [Group owner](https://developers.timekit.io/reference/group_owner-graph.md): In a booking where a number of seats are bookable, like in a seats in a class. Group_owner is the main booking, specifying when the class takes place. The group_customer graph is for handling each seat-booking. For a complete tutorial on group bookings, please refer to this article in our help center: http://help.timekit.io/working-with-the-api/bookings/group-bookings - [Group customer](https://developers.timekit.io/reference/group_customer-graph.md): The group_customer graph is for booking each seat specified in the group_owner booking - [Projects overview](https://developers.timekit.io/reference/projects-overview.md): Understand Timekits project model - [Create a project](https://developers.timekit.io/reference/projects-1.md): Create a project - [List all projects](https://developers.timekit.io/reference/projects.md): List projects - [Update a project](https://developers.timekit.io/reference/update-a-project.md): You can automatically update the different settings in a project, this means that only the settings that you input are updated, so you don't have to provide the entire project JSON in order to update a single setting. - [Delete a project](https://developers.timekit.io/reference/projectsid-2.md): Delete a specific project - [Add resources to a project](https://developers.timekit.io/reference/add-resource-to-a-project.md): You can add one or more resources to a project using this endpoint - [Set resources on a project](https://developers.timekit.io/reference/setting-resources-on-a-project.md): This will set the resources, any existing resource will be removed and replaced by the once defined in the body. The sequence of the resources will be reflected when using the roundrobin_prioritized mode. - [Remove a resource from a project](https://developers.timekit.io/reference/remove-a-resource-from-a-project.md): You can remove a single resource from a project using the endpoint - [Get resources for a project](https://developers.timekit.io/reference/get-a-projects-resources.md) - [Locations Overview](https://developers.timekit.io/reference/locations-overview.md): Understand Timekit's location model - [List all Locations](https://developers.timekit.io/reference/list-all-locations.md): Lists all the locations - [Create a new location](https://developers.timekit.io/reference/create-a-new-location.md): Create a new location - [Retrieve a location](https://developers.timekit.io/reference/retrieve-a-location.md): Get a specific location - [Update a location](https://developers.timekit.io/reference/update-a-location.md): Update a specific location - [Delete a location](https://developers.timekit.io/reference/delete-a-location.md): Delete a specific location - [Services Overview](https://developers.timekit.io/reference/services-overview.md): Understand Timekit's service model - [Listing services](https://developers.timekit.io/reference/list-all-services.md): Lists all the services - [Creating new service](https://developers.timekit.io/reference/create-a-new-service.md): Create a new service - [Retrieve a service](https://developers.timekit.io/reference/retrieve-a-service.md): Get a specific service - [Update a service](https://developers.timekit.io/reference/update-a-service.md): Update a specific service - [Delete a service](https://developers.timekit.io/reference/delete-a-location-copy.md): Delete a specific service - [Reserving a time](https://developers.timekit.io/reference/reserving-a-time.md): Reserve specific time for your customers. - [Extending Reservation](https://developers.timekit.io/reference/extending-existing-reservation.md): Extend existing reservation. - [List of templates](https://developers.timekit.io/reference/list-of-templates.md): Get list of all available email templates. Please be advised this is restricted to the Platform tier. - [Retrieve a template](https://developers.timekit.io/reference/retrieve-a-template.md): Get specific email template by slug. Please be advised this is restricted to the Platform tier. - [Update a template](https://developers.timekit.io/reference/update-a-template.md): Update specific email template for your project. Please be advise this is restricted to the Platform tier. ## Pages - [Between timestamps filter](https://developers.timekit.io/page/between-timestamps-filter.md) - [Specific day filter](https://developers.timekit.io/page/specific-day.md) - [Specific day and time filter](https://developers.timekit.io/page/specific-day-and-time-filter.md) - [Only weekend filter](https://developers.timekit.io/page/only-weekend-filter.md) - [Exclude week filter](https://developers.timekit.io/page/exclude-week-filter.md) - [Take first filter](https://developers.timekit.io/page/take-first-filter.md) - [Take random filter](https://developers.timekit.io/page/take-random-filter.md) - [Take last filter](https://developers.timekit.io/page/take-last-filter.md)