# Docs - [Booking Pro API](/docs): Read and manage availability, catalog, contacts, and bookings programmatically. - [Quickstart](/docs/quickstart): Get a key and make your first authenticated request. - [Authentication](/docs/authentication): How API keys work, scopes, environments, and keeping keys safe. - [Errors](/docs/errors): The error envelope, types, and how to handle failures. - [Rate limits](/docs/rate-limits): Per-key limits, the headers we return, and how to back off. - [Pagination](/docs/pagination): How to page through list endpoints with cursors. - [Idempotency](/docs/idempotency): Make create requests safely retryable. - [Versioning](/docs/versioning): How we version the API and what counts as a breaking change. - [Members and check-in](/docs/members-and-check-in): Resolve a member from a code, fob, or biometric device, and check them in. - [Classes](/docs/classes): Read the class timetable, see who is booked, and book, cancel or check in a spot. - [Use with an AI agent](/docs/ai-agents): Drop our Claude Agent Skill into your agent, or feed it Markdown. - [Changelog](/docs/changelog): API changes, additions, and deprecations. - **API Reference** - API Reference - General - [Verify a key](/docs/api-reference/general/ping): Returns the identity a key resolves to. Use it to confirm a key works and to see which company, scopes, environment, and locations it is bound to. - Availability - [List open slots](/docs/api-reference/availability/getAvailability): Returns bookable start times for a service at a location on a given date (or date range). Honors the location's business hours, staff schedules, existing bookings, and booking rules, exactly like the public booking page. - Catalog - [Retrieve a service](/docs/api-reference/catalog/getService) - [List locations](/docs/api-reference/catalog/listLocations): The locations this key may act on. - [List services](/docs/api-reference/catalog/listServices): The bookable services offered, scoped to the key's locations. - Contacts - [Create a contact](/docs/api-reference/contacts/createContact): Creates a customer record. Phone numbers are normalized to E.164. If a contact with the same phone already exists at the location, the existing record is returned (idempotent on phone) rather than duplicated. - [Retrieve a contact](/docs/api-reference/contacts/getContact) - [List contacts](/docs/api-reference/contacts/listContacts) - [Update a contact](/docs/api-reference/contacts/updateContact) - Bookings - [Cancel a booking](/docs/api-reference/bookings/cancelBooking) - [Create a booking](/docs/api-reference/bookings/createBooking): Books an appointment. Enforces the location's booking rules and hard-blocks any time conflict (staff or room), exactly like the public booking page. A conflicting request returns `409`. - [Retrieve a booking](/docs/api-reference/bookings/getBooking) - [List bookings](/docs/api-reference/bookings/listBookings) - [Reschedule a booking](/docs/api-reference/bookings/rescheduleBooking): Moves a booking to a new start time. Same conflict rules as create. - Gift cards - [Retrieve a gift card](/docs/api-reference/gift-cards/getGiftCard) - [List gift cards](/docs/api-reference/gift-cards/listGiftCards) - Packages - [List package templates](/docs/api-reference/packages/listPackages) - Memberships - [List a contact's memberships](/docs/api-reference/memberships/listContactMemberships): The memberships a contact holds (as primary member or family member), with status and remaining credits. - [List membership plans](/docs/api-reference/memberships/listMembershipPlans) - Members - [Check a member in](/docs/api-reference/members/checkInMember): Records a facility check-in for a member. Provide either an `identifier` (member code or fob UID, which is resolved for you) or an explicit `membership_id` + `contact_id`. Enforces the same rules as the dashboard: membership active, plan allows facility access, the location is covered, cross-location rules, and available credits. Send an `Idempotency-Key` so a retry or a double-scan does not log two visits. - [List a membership's check-ins](/docs/api-reference/members/listMemberVisits) - [Resolve a member and check eligibility](/docs/api-reference/members/resolveMember): Given a credential (a member code or an RFID fob/card UID) and a location, returns the matching membership and whether the member is currently eligible to check in. Use this from a kiosk, turnstile, or a biometric device (map a face/fingerprint to the member's code, then call this) to decide whether to let someone in, without recording a visit.