API keys and external system access
The API keys screen is the actual place where you manage API access for external systems.
When to use this page
- when a CRM, website, mobile app, or another external system needs API access to your data;
- when you want to give different access levels to different external systems;
- when you need to stop, limit, or remove existing API access.
Access
- Open Integrations.
- Select
API keys.
What you see in the list
NameExpires at(orNever)Active- Actions:
Edit API key,Delete API key
Create a new key
- Select
New API Key. - Fill in
Name(required),Expires at(optional),Active, andSelect permissions. - Select
Create. - Securely store the displayed token and provide it to the external system.
What each field means
Nameis your internal label for the key.Expires atdefines when the key should stop working. If left empty, the key has no expiration.Activelets you stop or allow access without deleting the key.Select permissionsdefines which resources and actions will be available through this key.
How permissions work
- Permissions are selected separately for each key.
- The key can access only the resources and actions you have allowed.
- Each permission carries a short description of what it allows.
- If access should be more limited, create a separate key with fewer permissions.
Permissions that change your calendar
Three permissions let the external system change appointments that already exist. Each one carries a short description on the screen — what follows is the consequences that do not fit there:
Reschedule appointmentsworks for single appointments only. Group appointments, and appointments that have already started or passed, are refused. Scheduled reminders move to the new time, but the client does not automatically get an "appointment changed" notification — in the Business app that is a separate choice when saving, and the API offers no such choice.Change participant status (cancel / no-show)applies to the individual person, not to the whole group. It can set any of your business's statuses, including your own custom ones — not only the three in the permission name. Cancelling in a group automatically promotes a client from the waiting list into the freed seat.Delete appointmentsremoves the appointment from the calendar entirely.
Grant these only to a system you trust to manage your calendar. A deleted appointment cannot be restored from the Business app. For a cancellation that stays visible in the history, use the participant status permission instead of deletion.
Changing the number of seats in a group appointment is not available through the API.
Permissions for client data
View clients listallows searching your entire client list — by phone, email, external number or part of a name.View clientopens an individual client profile.
The appointment permissions also expose client data. A key holding only
View appointments list sees the clients on those appointments, without you having
granted it the client permissions.
Phone and email are shown partially masked everywhere. Full contact details are revealed
only if you also grant View sensitive information from the Clients group.
This is a decision about your clients' personal data, not a technical detail.
Notifications and wallet
Actions performed through the API send the client the same notifications that the same actions send from the Business app, according to your settings for channels and notification types — deletion included.
One exception: rescheduling sends no automatic "appointment changed" notification (see above).
Paid channels (SMS, Viber) draw from the business wallet. When the balance runs out the channel is skipped and the notification is not sent through it.
How to manage an existing key
- use
Edit API keywhen you need to change the name, expiration, status, or permissions; - disable
Activeif you want to stop access temporarily; - use
Delete API keyif the integration no longer needs access.
For keys created before the separate availability permission was introduced, the checkbox is already ticked. Unticking it stops the external system from receiving available slots and breaks the integration.
How API access works
- The external system uses the token as
Authorization: Bearer <api-key>. - Access depends on the key being active, not expired, and having the required permissions.
- The business must also have the
external_connectivityfeature active in its subscription.
What is available in the current product
- JSON:API v2 supports API key access.
- The public v2 specification documents resources such as services, available slots, appointments (viewing, creating, cancelling, rescheduling, and deleting), clients (lookup by phone, email, or keywords), working hours, installments, and payments.
- If
external_connectivityis not active, some requests can return402 Payment Required.
Critical security note
- After creation, the system shows
API Access tokenin a dedicated modal. - This token is shown once only. After closing the modal, it cannot be viewed again.
- Store the token securely and do not share it.
What is not available in the current UI
Logsis present in the menu but currently disabled in the UI.- If you edit an existing key, the system does not show the previous token again. The token display is only part of creation.
- There is no dedicated webhook setup screen in the Business UI.