message field describing what went wrong. Build your error handling around the HTTP status code first, then read message for additional context.
Error codes
Standard error body
All errors except422 return a JSON body with a single message field:
message value for a human-readable description. Don’t rely on the exact wording in code. Key your error handling on the HTTP status code.
Plan required (403)
Creating a default service beyond the Free plan’s limit returns403 with an extra error field:
error to show an upgrade prompt. See Scopes.
Conflict (409)
DELETE /services/{id} returns 409 for a single-use service that has already been booked, and PATCH /services/{id} returns 409 for any single-use service.
Validation error body (422)
When a request fails validation, the response body includes anerrors object keyed by the name of each invalid parameter. Each key maps to an array of one or more error strings describing the problem with that parameter:
errors object to surface specific field-level messages to your users or logs.
Rate limiting (429)
Tikk allows 60 requests per minute per credential. Every successful response carries the current state:
When you exceed the limit, the API responds with
429 Too Many Requests and includes a Retry-After header indicating the number of seconds to wait before retrying:
Retry-After header and pause your requests for at least that many seconds before retrying. The following example shows how to handle a 429 response and respect the header:
404 and user isolation
The API enforces strict user isolation. A booking or service ID that exists but belongs to another user returns404 Not Found, not 403 Forbidden. The API never confirms whether a resource exists outside your account. On a 404, check the ID belongs to a resource on your account before assuming it doesn’t exist.