canonical: https://jentic.com/apis/checkfront.com/checkfront

# Checkfront API

Jentic publishes the only available OpenAPI specification for Checkfront API, keeping it validated and agent-ready. Checkfront is a booking management platform used by tour operators, accommodation providers, equipment renters, and event organisers to take reservations online and run the operations behind them. The v3.0 REST API exposes 12 endpoints for managing bookings, bookable items, categories, customers, and events, including check-in and check-out flows. It is well suited to teams building portals, self-service kiosks, or backend integrations on top of Checkfront.

## For AI agents

Create and update bookings, look up items and customers, and run check-in or check-out flows in Checkfront so an agent can manage the reservations side of a tour, rental, or event business.

## Scope

Does not handle payment processing, payroll, or marketing campaigns - use for managing bookings, bookable items, and check-in/check-out flows only.

## Capabilities

- Create new bookings with selected items, customer details, and dates
- Update existing bookings to change dates, items, or customer info
- Run check-in and check-out flows on confirmed bookings
- List bookable items, categories, and scheduled events for availability
- Read customer records to power loyalty or CRM integrations
- Inspect account-level configuration via the /account endpoint

## Use cases

### Self-Service Booking Portal

Build a custom booking portal that lists available items by category, lets customers pick dates, and creates a Checkfront booking. The portal calls /item and /category to render availability, `/booking/create` to confirm a reservation, and `/booking/{booking_id}` to fetch confirmation details. Useful for operators who want a branded checkout outside the standard Checkfront widgets.

Example prompt: Create a booking via `/booking/create` with item_id 42, start_date 2026-07-15, end_date 2026-07-16, and customer email guest@example.com.

### Check-In Kiosk

Run a tablet-based kiosk at the venue that lets staff (or guests) check in an existing booking on arrival. The kiosk searches /booking by date or customer, displays the result, and calls `/booking/{booking_id}/checkin` to mark them as arrived. `/booking/{booking_id}/checkout` handles the return flow.

Example prompt: Find today's bookings via GET /booking, then call POST `/booking/{booking_id}/checkin` for booking_id 9876.

### Booking Sync with External Systems

Mirror Checkfront bookings into a finance system, CRM, or operations dashboard. List bookings on a schedule, transform the records, and push them downstream. Useful when Checkfront is the source of truth for revenue but other systems need the same data for accounting and reporting.

Example prompt: Pull all bookings from /booking created in the last 24 hours and return their booking_id and total.

### AI Agent for Booking Management

An autonomous agent receives natural-language booking requests, picks the right item, and creates the Checkfront booking - all through Jentic. The agent never holds the OAuth access token in its prompt; Jentic injects it at execution time and returns the booking confirmation.

Example prompt: Through Jentic, search 'create a booking', load the schema for `/booking/create`, and execute with item_id 42 and the requested dates.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/booking/create` | Create a booking |
| GET | `/booking` | List bookings |
| GET | `/booking/{booking_id}` | Fetch a booking |
| POST | `/booking/{booking_id}/checkin` | Check in a booking |
| POST | `/booking/{booking_id}/checkout` | Check out a booking |
| GET | `/item` | List bookable items |
| GET | `/category` | List categories |

## Key resources

- **Bookings** — Create, list, fetch, update, check in, and check out bookings
- **Items** — List bookable items available for reservation
- **Categories** — Group items into categories such as tours or rentals
- **Customers** — List customer records associated with bookings
- **Events** — Inspect scheduled events that can be booked
- **Account** — Read account configuration and metadata

## Why Jentic

- **Setup:** Wiring Checkfront by hand means running its OAuth 2.0 flow, refreshing tokens, and building the tenant-specific subdomain into the base URL yourself. Through Jentic you install once, import the Checkfront API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Checkfront puts the booking id in the URL path (`/booking/{booking_id}/...`), so a rule can pin your agent to one booking: it can check that booking in and out and nothing else. You choose the operations it may call, so creating new bookings is not included unless you add it.
- **Credential handling:** Your Checkfront OAuth access and refresh tokens are stored once, encrypted, by your own Jentic One instance, refreshed automatically, and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a booking' or 'check in a guest', and Jentic returns the matching Checkfront operation with its input schema so the agent picks the right endpoint among 12 without browsing the reference docs.

## Related APIs

- **Checkin.no API** — Hospitality check-in platform with a different focus on guest registration
- **Cheddar Up API** — Group payments and collections platform that can take payments alongside Checkfront bookings
- **Checkly API** — Synthetic monitoring you can use to verify Checkfront booking endpoints stay healthy

## FAQ

### Why is there no official OpenAPI spec for Checkfront API?

Checkfront does not publish an OpenAPI specification on its developer site. Jentic generates and maintains this spec so that AI agents and developers can call Checkfront API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Checkfront API use?

The Checkfront API uses OAuth 2.0 with the authorization code flow. Authorization happens at https://{subdomain}.checkfront.com/oauth and tokens are issued at `/oauth/token.` Through Jentic, OAuth tokens are stored encrypted in your Jentic One instance and refreshed automatically, so agents never see the raw access token.

### Can I create a booking with the Checkfront API?

Yes. POST `/booking/create` accepts the bookable item, dates, customer details, and any extras and returns the new booking_id. You can then update it with POST `/booking/{booking_id}/update` or run check-in via POST `/booking/{booking_id}/checkin.`

### How do I check in a guest with the Checkfront API?

Call POST `/booking/{booking_id}/checkin` to mark a booking as checked in. Use POST `/booking/{booking_id}/checkout` for the return flow. Both endpoints update the booking's status and return the resulting record.

### What are the rate limits for the Checkfront API?

The OpenAPI specification does not declare formal rate limits. Checkfront enforces per-account throttling on its production servers - plan for retry-with-backoff on 429 responses and avoid polling /booking aggressively.

### How do I create a Checkfront booking through Jentic?

Install the SDK with `pip install jentic`, then call Jentic.search('create a booking'), load the schema for `/booking/create`, and execute with the item_id, dates, and customer details. Jentic handles the OAuth token exchange and refresh.

### Can I limit what my agent is allowed to do with the Checkfront API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which Checkfront operations and credentials your agent may use, and you pick exactly which of the 12 endpoints it can call. Checkfront puts the booking id in the URL path, such as `/booking/{booking_id}/checkin` and `/booking/{booking_id}/checkout`, so a rule can pin the agent to a single booking and let it check that booking in and out and nothing else. Creating new bookings via POST `/booking/create` is excluded unless you explicitly grant that operation, and the OAuth tokens stay in your own instance and are injected at execution time rather than exposed to the agent.
