Search skmtc…
⌘K
Docs
Sign in
APIs
Generators
Stacks
Projects
Docs
History
Schema
Generate
Filter operations
get
/api/v1/public/{slug}/services
List services for a business, with the price range across the team (price_min_minor, price_max_minor)
get
/api/v1/public/{slug}/providers
List staff and locations
get
/api/v1/public/{slug}/availability
Search provisional slots
get
/api/v1/public/{slug}/capabilities
Booking features this business supports (multi-service visits, calendar files)
post
/api/v1/public/{slug}/bookings
Create a held booking awaiting deposit (idempotent)
get
/api/v1/public/{slug}/bookings/{reference}
Read a booking with its manage token
post
/api/v1/public/{slug}/bookings/{reference}/deposit
Create or return the hosted deposit checkout
get
/api/v1/public/{slug}/bookings/{reference}/payment
Authoritative payment status
post
/api/v1/public/{slug}/bookings/{reference}/reschedule
Reschedule within policy
post
/api/v1/public/{slug}/bookings/{reference}/cancel
Cancel within policy
get
/api/v1/public/{slug}/bookings/{reference}/cancel-preview
Read cancellation policy and stored money without mutation
post
/api/v1/public/{slug}/messages
Leave a message for the team
post
/api/v1/public/{slug}/handover
Request a human handover
get
/api/v1/me
Current credential, scopes and MCP tools
get
/api/v1/services
List services
post
/api/v1/services
Create a service
delete
/api/v1/services/{id}
Delete a service. One with no history is deleted (outcome deleted); one with past bookings or other records is removed from every list and kept on those records (outcome removed). Refused with the upcoming bookings listed, or when another service needs it first
patch
/api/v1/services/{id}
Update a service
get
/api/v1/providers
List staff, hours and locations
put
/api/v1/providers/{id}/working-hours
Replace weekly hours
post
/api/v1/providers/{id}/time-off
Add leave or a block
get
/api/v1/availability
Search slots
get
/api/v1/capabilities
Booking features this business supports
get
/api/v1/bookings
List bookings (from, to as YYYY-MM-DD)
post
/api/v1/bookings
Create a held booking
get
/api/v1/bookings/{reference}
Read a booking with history
post
/api/v1/bookings/{reference}/deposit
Create deposit request
get
/api/v1/bookings/{reference}/payment
Payment status
post
/api/v1/bookings/{reference}/reschedule
Reschedule
post
/api/v1/bookings/{reference}/cancel
Cancel
post
/api/v1/bookings/{reference}/confirm-without-deposit
Staff: confirm a booking waiting for its deposit without taking it (paid in the salon). Closes the payment link; the client gets the normal confirmation
post
/api/v1/bookings/{reference}/add-service
Staff: add a service to an appointment as its next segment, by default straight after the last one with the same team member. Past appointments up to 30 days back too. Nothing is sent to the client
post
/api/v1/bookings/{reference}/change-client
Staff: move an appointment (every segment of a visit) to another client, for example a relative who shares the phone number. Nothing is sent; the unsent reminder goes to the new client
get
/api/v1/bookings/{reference}/cancel-preview
Read cancellation preview and saved version without mutation
post
/api/v1/bookings/{reference}/outcome
Mark completed or no-show
post
/api/v1/bookings/{reference}/refund
Refund a settled deposit (owner approval)
post
/api/v1/bookings/{reference}/adjust
Move or resize a booking with a version check (drag and drop)
post
/api/v1/bookings/{reference}/approval
Approve or decline a booking that needs staff approval
post
/api/v1/bookings/{reference}/manage-link
Rotate the customer manage link; the old link stops working
post
/api/v1/public/{slug}/bookings/{reference}/manage-link
Customer: rotate your manage link (needs the current link token)
get
/api/v1/calendar
Calendar for a date range: bookings, working hours, leave, closures and external busy time (from, to, location_id, staff_ids, resource_ids)
get
/api/v1/approvals
Bookings waiting for staff approval
post
/api/v1/recurring-series
Staff: create a series every N weeks or monthly, for count times, until a date, or open-ended (neither); each occurrence is held independently and open-ended series are topped up daily
post
/api/v1/recurring-series/{id}/cancel
Cancel the rest of a series (from_reference onwards, or all future occurrences)
get
/api/v1/locations
Locations with opening hours
post
/api/v1/locations
Create a location
get
/api/v1/resources
Rooms and equipment
post
/api/v1/resources
Add a room or piece of equipment
get
/api/v1/closures
Company closures (from, to)
post
/api/v1/closures
Add a closure for all locations or one; returns clashing bookings
post
/api/v1/messages
Capture a message
post
/api/v1/handover
Request a human handover
get
/api/v1/inbox
Messages, handovers and staff actions
post
/api/v1/inbox/{id}/resolve
Resolve an inbox item
get
/api/v1/reports/summary
Owner report
get
/api/v1/notifications
Notification outbox (simulated delivery)
get
/api/v1/audit
Audit trail
get
/api/v1/api-keys
List API keys
post
/api/v1/api-keys
Create a scoped API key
post
/api/v1/api-keys/{id}/revoke
Revoke a key
get
/api/v1/webhook-endpoints
List webhook endpoints and deliveries
post
/api/v1/webhook-endpoints
Add a signed webhook endpoint (loopback in sandbox)
post
/api/v1/users
Add a staff or admin user
post
/api/v1/tenants
Create a sandbox business and owner account
post
/api/v1/auth/login
Staff sign in (sets an HttpOnly session cookie)
post
/api/v1/payments/webhooks/{provider}
Signed payment provider events (simpay, stripe_test)
get
/api/v1/health
Health check: 200 while the service and database answer, with job lag, oldest pending job and mail outbox figures; 503 when the database does not answer
get
/api/v1/health/deep
Monitor check for a degraded service: 200 when database, job lag, stuck jobs and mail outbox age are within limits, otherwise 503. Recent server errors, jobs with no handler and closed businesses with a deletion approval due are reported, not judged. Aggregate counts only
post
/api/v1/auth/mfa
Complete sign-in with a TOTP or recovery code (after MFA_REQUIRED)
post
/api/v1/auth/choose
Choose a business after signing in with an identity that has several memberships
post
/api/v1/auth/password/forgot
Request a password reset email (always answers the same way)
post
/api/v1/auth/password/reset
Set a new password with a reset token; revokes every session
post
/api/v1/auth/email/verify
Verify an email address with a verification token
post
/api/v1/auth/invitations/preview
Show who an invitation is for and which business
post
/api/v1/auth/invitations/accept
Accept an invitation: set a password, or link the signed-in account
get
/api/v1/auth/providers
Sign-in methods available
get
/api/v1/auth/csrf
CSRF token for cookie-authenticated writes
get
/api/v1/auth/memberships
Businesses the signed-in person belongs to
post
/api/v1/auth/switch
Switch business (new session for the chosen membership)
get
/api/v1/me/security
Security overview of the signed-in person
get
/api/v1/me/sessions
List my active sessions in this business
post
/api/v1/me/sessions/{id}/revoke
Revoke one of my sessions
post
/api/v1/me/sessions/revoke-others
Revoke all my other sessions, in every business
post
/api/v1/me/email/send-verification
Send a verification email
post
/api/v1/me/mfa/enrol
Start TOTP enrolment (secret shown once; the current password is required when the account has one)
post
/api/v1/me/mfa/confirm
Confirm TOTP enrolment with a code; returns 10 recovery codes once
post
/api/v1/me/mfa/disable
Turn off TOTP (password and a current code required)
post
/api/v1/me/mfa/recovery-codes
Replace recovery codes (password and a current code required)
post
/api/v1/me/oidc/google/link
Start linking a Google account to the signed-in person
post
/api/v1/me/oidc/google/unlink
Unlink Google (needs a password on the account)
get
/api/v1/team/roles
Roles and their capabilities
get
/api/v1/team/members
List team members and roles
get
/api/v1/team/two-step
The business two-step sign-in rule and the owners and managers who still need to set it up
put
/api/v1/team/two-step
Require two-step sign-in for owners and managers, or make it optional (signed-in owner with two-step sign-in on)
post
/api/v1/team/members/{id}/role
Change a member role (not above your own; owners only for owner)
post
/api/v1/team/members/{id}/deactivate
Deactivate a member: ends sessions and revokes keys they created
post
/api/v1/team/members/{id}/reactivate
Reactivate a member
get
/api/v1/team/invitations
List invitations
post
/api/v1/team/invitations
Invite a person by email (single-use link, 7 days)
post
/api/v1/team/invitations/{id}/revoke
Revoke a pending invitation
patch
/api/v1/categories/{id}
Update a category (order, visibility, calendar colour)
Copy
Copy Markdown
Copy Markdown
Copying…
Copied
Copy failed
Changes to Update a category (order, visibility, calendar colour)
patch
/api/v1/categories/{id}
Oct 19, 2026
81704199cd37
Revision changes
info
added the new optional request property
colour