The Bookem API lets you request data from Bookem directly, whenever you need it, such as client details, booking details, or attribution data. Your system, whether that's a CRM, an automation tool, or something you've built yourself, sends Bookem a request, and Bookem sends the data back to that same system. This is what's meant by a "pull": you're the one asking, and the answer goes wherever you asked from.
What an API key is and how it works
An API key is what lets an external application securely access your Bookem data. Think of it as an ID card: you show it when you ask Bookem for something, and Bookem checks it before handing anything back. No key, no answer.
Each key carries its own permissions, so you control exactly what it's allowed to access, at a resource level such as clients and bookings. This is what makes it possible to connect Bookem to other systems, build integrations, or automate workflows, safely and on your terms.
Create an API key
Follow these steps to add an API key in Bookem:
Go to Settings in the main menu
Select Developers
Open the API keys tab
Click + Create key
Enter a name for your API key
Select the permissions to grant or revoke for resources: Create – allow new records to be added Read – allow data to be viewed or retrieved Update – allow existing records to be edited Delete – allow records to be removed Full – allow all actions (create, read, update, and delete)
Click Create key
Choose only the permissions needed for your use case. For example, if you are syncing client data to another system, you may only need Read access.
Booking Attribution Data in Webhooks
When a patient books through your public booking page after clicking a tracked link, Bookem attaches where that booking came from to the booking object, alongside the usual client and booking details, automatically and with no setup needed.
This means you can trace any booking back to the exact link someone clicked, whether that's a page on your site, an email, an ad, or a referral link.
Included data:
Referring page and landing page
UTM values (tracking tags such as utm_source or utm_campaign)
Related tracking identifiers on the booking object
Examples
Identifying which link or source a booking came from
Reporting on which campaigns generate the most bookings
Comparing booking volume across sources
Feeding booking source data into a CRM or analytics platform
Important notes
Attribution rides on the booking object itself, it isn't a separate webhook event.
Included in the push by default; can also be fetched on demand via the Bookem API.
Not yet available in CSV exports or the Bookem interface.
How to fetching marketing attribution data via the API
Attribution only works if the links you share already carry tracking information.
Here's how:
Add tracking tags to your marketing links. Whenever you share your booking page link in an email, ad, QR code, or referral partnership, add UTM parameters to the end of it to allow identification of the specific send or push.
Give each channel or send its own unique link. A Facebook ad, a flu reminder email, and a referring doctor's link should each carry different UTM values, even if they point to the same booking page.
Fetch a booking's attribution data using the API. Once you have a booking's ID, request it through the API to get the referring page, landing page, and UTM values attached to that booking. This works well if you only need to check a source occasionally, rather than track it continuously.
Map the data into fields you can filter or report on. Since attribution data isn't visible in the Bookem interface yet, bring it into a spreadsheet, CRM, or reporting tool where you can group and compare it.
Compare bookings by source. Group them by campaign or channel to see which ones are actually converting, not just generating clicks.
To automate this, set up webhooks, so attribution data arrives the moment a booking is created.
Tips
Keep your API keys secure and do not share them publicly
Treat API keys like passwords, anyone with access can use them
Create separate keys for different integrations so you can manage them independently
Revoke or regenerate a key if you suspect it has been exposed