# PracticeHub API ## Docs - [Introduction](https://build.practicehub.io/introduction.md): The PracticeHub API — one API for integrations, automations and AI agents - [Why the new API](https://build.practicehub.io/why-the-new-api.md): What changed from the legacy /api, and why each change makes integrations simpler, safer and faster to build - [Authentication](https://build.practicehub.io/authentication.md): API keys for integrations; OAuth for AI connectors - [Quickstart](https://build.practicehub.io/quickstart.md): From zero to a booked appointment in six requests - [Postman collection](https://build.practicehub.io/postman.md): Import a ready-made collection and start calling the API in a minute - [Resources & roadmap](https://build.practicehub.io/resources.md): Every resource on the API, what you can do with it, and what is coming - [Security & data handling](https://build.practicehub.io/security.md): How the API isolates, authenticates, logs and delivers — written from the implementation, for your security review - [FAQ & troubleshooting](https://build.practicehub.io/faq.md): The questions integrators ask most — and the first thing to check for each - [Changelog](https://build.practicehub.io/changelog.md): Every change to the API contract, newest first - [Querying](https://build.practicehub.io/guides/querying.md): Filters, sorting, pagination and discovering the model - [Writing](https://build.practicehub.io/guides/writing.md): Creating, updating and deleting records — with PracticeHub's own rules applied - [Booking](https://build.practicehub.io/guides/booking.md): Find a free slot, book it, and handle the clash if someone got there first - [Metadata](https://build.practicehub.io/guides/metadata.md): Store your own identifiers on any PracticeHub record — and filter by them - [Errors](https://build.practicehub.io/guides/errors.md): One error shape, meaningful status codes, and how to handle them - [Webhooks](https://build.practicehub.io/guides/webhooks.md): Be told when something changes — from the API, the app, or the background - [Best practices](https://build.practicehub.io/guides/best-practices.md): How to build an integration that stays correct and fast under real clinic load — limits, retries, pagination, time, money, data hygiene, credentials - [Migrating from the legacy API](https://build.practicehub.io/guides/migrating-from-legacy.md): Moving an integration from the legacy /api to the PracticeHub API at /v3/api - [Examples](https://build.practicehub.io/examples/overview.md): Complete, runnable integrations — each one a real flow end to end, with the calls, the payloads and the gotchas - [Online booking widget](https://build.practicehub.io/examples/booking-widget.md): A website booking flow in TypeScript — reference data, free slots, find-or-create the patient, book safely, handle clashes, cancel or move - [CRM sync](https://build.practicehub.io/examples/crm-sync.md): Keep a CRM and PracticeHub in step in Python — cursor backfill, metadata as the id map, webhooks for changes, both directions - [Accounting export](https://build.practicehub.io/examples/accounting-export.md): A nightly export of invoices, line items, payments and allocations to an accounting system in PHP — incremental by updated, voids and refunds handled, money and time done right - [Webhook receiver](https://build.practicehub.io/examples/webhook-receiver.md): A production-shaped Node receiver — verify the signature, acknowledge in milliseconds, process idempotently, fetch the record behind a thin event - [Liveness check](https://build.practicehub.io/api-reference/utility/liveness-check.md) - [Identify the authenticated credential and the account it reaches](https://build.practicehub.io/api-reference/utility/identify-the-authenticated-credential-and-the-account-it-reaches.md) - [Describe every resource (attributes, filters, write operations, input)](https://build.practicehub.io/api-reference/utility/describe-every-resource-attributes-filters-write-operations-input.md) - [Describe one resource](https://build.practicehub.io/api-reference/utility/describe-one-resource.md) - [List free, bookable slots for a location and appointment type](https://build.practicehub.io/api-reference/availability/list-free-bookable-slots-for-a-location-and-appointment-type.md): Computed from the same availability engine as the calendar and online booking, so a returned slot is one the practice would book. `visibility=online` (default) is the patient view: the location, appointment type and (if given) practitioner must be enabled for online booking, and every online-booking… - [List addresses](https://build.practicehub.io/api-reference/addresses/list-addresses.md) - [Get one of addresses](https://build.practicehub.io/api-reference/addresses/get-one-of-addresses.md) - [List appointment_types](https://build.practicehub.io/api-reference/appointmenttypes/list-appointment_types.md) - [Create appointment_types](https://build.practicehub.io/api-reference/appointmenttypes/create-appointment_types.md) - [Get one of appointment_types](https://build.practicehub.io/api-reference/appointmenttypes/get-one-of-appointment_types.md) - [Update appointment_types (alias of PATCH)](https://build.practicehub.io/api-reference/appointmenttypes/update-appointment_types-alias-of-patch.md) - [Update appointment_types](https://build.practicehub.io/api-reference/appointmenttypes/update-appointment_types.md) - [List appointments](https://build.practicehub.io/api-reference/appointments/list-appointments.md) - [Create appointments](https://build.practicehub.io/api-reference/appointments/create-appointments.md) - [Get one of appointments](https://build.practicehub.io/api-reference/appointments/get-one-of-appointments.md) - [Update appointments (alias of PATCH)](https://build.practicehub.io/api-reference/appointments/update-appointments-alias-of-patch.md) - [Delete appointments](https://build.practicehub.io/api-reference/appointments/delete-appointments.md) - [Update appointments](https://build.practicehub.io/api-reference/appointments/update-appointments.md) - [List banners](https://build.practicehub.io/api-reference/banners/list-banners.md) - [Create banners](https://build.practicehub.io/api-reference/banners/create-banners.md) - [Get one of banners](https://build.practicehub.io/api-reference/banners/get-one-of-banners.md) - [Update banners (alias of PATCH)](https://build.practicehub.io/api-reference/banners/update-banners-alias-of-patch.md) - [Delete banners](https://build.practicehub.io/api-reference/banners/delete-banners.md) - [Update banners](https://build.practicehub.io/api-reference/banners/update-banners.md) - [List deleted_entities](https://build.practicehub.io/api-reference/deletedentities/list-deleted_entities.md) - [Get one of deleted_entities](https://build.practicehub.io/api-reference/deletedentities/get-one-of-deleted_entities.md) - [List discount_codes](https://build.practicehub.io/api-reference/discountcodes/list-discount_codes.md) - [Get one of discount_codes](https://build.practicehub.io/api-reference/discountcodes/get-one-of-discount_codes.md) - [List exercises](https://build.practicehub.io/api-reference/exercises/list-exercises.md) - [Get one of exercises](https://build.practicehub.io/api-reference/exercises/get-one-of-exercises.md) - [List files](https://build.practicehub.io/api-reference/files/list-files.md) - [Create files](https://build.practicehub.io/api-reference/files/create-files.md) - [Get one of files](https://build.practicehub.io/api-reference/files/get-one-of-files.md) - [Update files (alias of PATCH)](https://build.practicehub.io/api-reference/files/update-files-alias-of-patch.md) - [Delete files](https://build.practicehub.io/api-reference/files/delete-files.md) - [Update files](https://build.practicehub.io/api-reference/files/update-files.md) - [List invoices](https://build.practicehub.io/api-reference/invoices/list-invoices.md) - [Create invoices](https://build.practicehub.io/api-reference/invoices/create-invoices.md) - [Get one of invoices](https://build.practicehub.io/api-reference/invoices/get-one-of-invoices.md) - [Update invoices (alias of PATCH)](https://build.practicehub.io/api-reference/invoices/update-invoices-alias-of-patch.md) - [Delete invoices](https://build.practicehub.io/api-reference/invoices/delete-invoices.md) - [Update invoices](https://build.practicehub.io/api-reference/invoices/update-invoices.md) - [List line_items](https://build.practicehub.io/api-reference/lineitems/list-line_items.md) - [Create line_items](https://build.practicehub.io/api-reference/lineitems/create-line_items.md) - [Get one of line_items](https://build.practicehub.io/api-reference/lineitems/get-one-of-line_items.md) - [Update line_items (alias of PATCH)](https://build.practicehub.io/api-reference/lineitems/update-line_items-alias-of-patch.md) - [Delete line_items](https://build.practicehub.io/api-reference/lineitems/delete-line_items.md) - [Update line_items](https://build.practicehub.io/api-reference/lineitems/update-line_items.md) - [List locations](https://build.practicehub.io/api-reference/locations/list-locations.md) - [Get one of locations](https://build.practicehub.io/api-reference/locations/get-one-of-locations.md) - [List modalities](https://build.practicehub.io/api-reference/modalities/list-modalities.md) - [Create modalities](https://build.practicehub.io/api-reference/modalities/create-modalities.md) - [Get one of modalities](https://build.practicehub.io/api-reference/modalities/get-one-of-modalities.md) - [Update modalities (alias of PATCH)](https://build.practicehub.io/api-reference/modalities/update-modalities-alias-of-patch.md) - [Update modalities](https://build.practicehub.io/api-reference/modalities/update-modalities.md) - [List notifications](https://build.practicehub.io/api-reference/notifications/list-notifications.md) - [Get one of notifications](https://build.practicehub.io/api-reference/notifications/get-one-of-notifications.md) - [Update notifications (alias of PATCH)](https://build.practicehub.io/api-reference/notifications/update-notifications-alias-of-patch.md) - [Update notifications](https://build.practicehub.io/api-reference/notifications/update-notifications.md) - [List numbers](https://build.practicehub.io/api-reference/numbers/list-numbers.md) - [Get one of numbers](https://build.practicehub.io/api-reference/numbers/get-one-of-numbers.md) - [List patient_log_tags](https://build.practicehub.io/api-reference/patientlogtags/list-patient_log_tags.md) - [Create patient_log_tags](https://build.practicehub.io/api-reference/patientlogtags/create-patient_log_tags.md) - [Get one of patient_log_tags](https://build.practicehub.io/api-reference/patientlogtags/get-one-of-patient_log_tags.md) - [Update patient_log_tags (alias of PATCH)](https://build.practicehub.io/api-reference/patientlogtags/update-patient_log_tags-alias-of-patch.md) - [Delete patient_log_tags](https://build.practicehub.io/api-reference/patientlogtags/delete-patient_log_tags.md) - [Update patient_log_tags](https://build.practicehub.io/api-reference/patientlogtags/update-patient_log_tags.md) - [List patient_logs](https://build.practicehub.io/api-reference/patientlogs/list-patient_logs.md) - [Create patient_logs](https://build.practicehub.io/api-reference/patientlogs/create-patient_logs.md) - [Get one of patient_logs](https://build.practicehub.io/api-reference/patientlogs/get-one-of-patient_logs.md) - [Update patient_logs (alias of PATCH)](https://build.practicehub.io/api-reference/patientlogs/update-patient_logs-alias-of-patch.md) - [Delete patient_logs](https://build.practicehub.io/api-reference/patientlogs/delete-patient_logs.md) - [Update patient_logs](https://build.practicehub.io/api-reference/patientlogs/update-patient_logs.md) - [List patient_payment_methods](https://build.practicehub.io/api-reference/patientpaymentmethods/list-patient_payment_methods.md) - [Get one of patient_payment_methods](https://build.practicehub.io/api-reference/patientpaymentmethods/get-one-of-patient_payment_methods.md) - [List patients](https://build.practicehub.io/api-reference/patients/list-patients.md) - [Create patients](https://build.practicehub.io/api-reference/patients/create-patients.md) - [Get one of patients](https://build.practicehub.io/api-reference/patients/get-one-of-patients.md) - [Update patients (alias of PATCH)](https://build.practicehub.io/api-reference/patients/update-patients-alias-of-patch.md) - [Delete patients](https://build.practicehub.io/api-reference/patients/delete-patients.md) - [Update patients](https://build.practicehub.io/api-reference/patients/update-patients.md) - [List payment_allocations](https://build.practicehub.io/api-reference/paymentallocations/list-payment_allocations.md) - [Create payment_allocations](https://build.practicehub.io/api-reference/paymentallocations/create-payment_allocations.md) - [Get one of payment_allocations](https://build.practicehub.io/api-reference/paymentallocations/get-one-of-payment_allocations.md) - [Delete payment_allocations](https://build.practicehub.io/api-reference/paymentallocations/delete-payment_allocations.md) - [List payment_methods](https://build.practicehub.io/api-reference/paymentmethods/list-payment_methods.md) - [Create payment_methods](https://build.practicehub.io/api-reference/paymentmethods/create-payment_methods.md) - [Get one of payment_methods](https://build.practicehub.io/api-reference/paymentmethods/get-one-of-payment_methods.md) - [Update payment_methods (alias of PATCH)](https://build.practicehub.io/api-reference/paymentmethods/update-payment_methods-alias-of-patch.md) - [Update payment_methods](https://build.practicehub.io/api-reference/paymentmethods/update-payment_methods.md) - [List payments](https://build.practicehub.io/api-reference/payments/list-payments.md) - [Create payments](https://build.practicehub.io/api-reference/payments/create-payments.md) - [Get one of payments](https://build.practicehub.io/api-reference/payments/get-one-of-payments.md) - [Update payments (alias of PATCH)](https://build.practicehub.io/api-reference/payments/update-payments-alias-of-patch.md) - [Delete payments](https://build.practicehub.io/api-reference/payments/delete-payments.md) - [Update payments](https://build.practicehub.io/api-reference/payments/update-payments.md) - [List practitioner_availabilities](https://build.practicehub.io/api-reference/practitioneravailabilities/list-practitioner_availabilities.md) - [Get one of practitioner_availabilities](https://build.practicehub.io/api-reference/practitioneravailabilities/get-one-of-practitioner_availabilities.md) - [List practitioners](https://build.practicehub.io/api-reference/practitioners/list-practitioners.md) - [Get one of practitioners](https://build.practicehub.io/api-reference/practitioners/get-one-of-practitioners.md) - [List referral_sources](https://build.practicehub.io/api-reference/referralsources/list-referral_sources.md) - [Create referral_sources](https://build.practicehub.io/api-reference/referralsources/create-referral_sources.md) - [Get one of referral_sources](https://build.practicehub.io/api-reference/referralsources/get-one-of-referral_sources.md) - [Update referral_sources (alias of PATCH)](https://build.practicehub.io/api-reference/referralsources/update-referral_sources-alias-of-patch.md) - [Update referral_sources](https://build.practicehub.io/api-reference/referralsources/update-referral_sources.md) - [List self_service_portals](https://build.practicehub.io/api-reference/selfserviceportals/list-self_service_portals.md) - [Get one of self_service_portals](https://build.practicehub.io/api-reference/selfserviceportals/get-one-of-self_service_portals.md) - [MCP Server](https://build.practicehub.io/mcp/overview.md): Let Claude, ChatGPT or your own agent work inside a clinic - [Connectors](https://build.practicehub.io/mcp/connectors.md): Connecting Claude, ChatGPT and other AI apps with OAuth - [Tools reference](https://build.practicehub.io/mcp/tools.md): The tools an AI client finds on the PracticeHub MCP server - [Recipes for AI assistants](https://build.practicehub.io/mcp/recipes.md): What a connected assistant can actually do for a front desk, a practitioner and an owner — realistic prompts, the tools they use, and where role permissions draw the line ## OpenAPI Specs - [openapi](https://build.practicehub.io/openapi.json)