Error Response Format
All API errors follow RFC 9457 Problem Details:| Field | Type | Description |
|---|---|---|
| title | string | Error category (e.g., “Not Found”, “Bad Request”, “Conflict”) |
| status | integer | HTTP status code |
| detail | string | Human-readable explanation of the specific error |
| errorCode | integer | Domain-specific error code for programmatic handling |
HTTP Status Codes
| Status | Title | When |
|---|---|---|
| 400 | Bad Request | Invalid input, pagination, or filter parameters |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | Insufficient permissions for the resource |
| 404 | Not Found | Resource does not exist |
| 409 | Conflict | State conflict, duplicate name, or archived resource |
| 429 | Too Many Requests | Rate limit exceeded |
Domain Error Codes
Error codes are scoped per domain. The same numeric code may have different meanings across domains.Sequences
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Sequence not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | SchedulerNotFound | 404 | Associated scheduler not found |
| 4 | EmailAccountNotFound | 404 | Associated email account not found |
| 5 | LinkedInAccountNotFound | 404 | Associated LinkedIn account not found |
| 6 | SequenceArchived | 409 | Sequence is archived |
| 7 | InvalidStep | 400 | Invalid step configuration |
| 8 | EmptySubject | 400 | Email template subject is empty |
| 9 | EmailTemplateNotFound | 404 | Email template not found |
| 10 | InvalidPagination | 400 | Invalid pagination parameters |
Sequence Actions
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 0 | Unknown | 400 | Unknown error |
| 1 | NotFound | 404 | Sequence not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | Archived | 409 | Sequence is already archived |
| 4 | New | 409 | Sequence is in New status |
| 5 | Active | 409 | Sequence is already active |
| 6 | NoContacts | 400 | Sequence has no contacts |
| 7 | NoEmailAccounts | 400 | Sequence has no email accounts |
| 8 | SalesAgentNotAllowed | 403 | Sales agent is not allowed |
| 9 | Status | 409 | Invalid status transition |
| 10 | OwnerLimitExceeded | 400 | Owner sequence limit exceeded |
| 11 | TeamMemberNotFound | 400 | Team member not found |
Sequence Steps
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | InvalidInput | 400 | Invalid input data |
| 2 | InvalidStep | 400 | Invalid step configuration |
| 3 | InternalError | 400 | Internal processing error |
| 4 | NotFound | 404 | Step not found |
| 5 | StepLocked | 400 | Step is locked and cannot be modified |
| 6 | UnsupportedOperation | 400 | Operation not supported for this step type |
| 7 | StepLockedHasChildren | 400 | Step is locked because it has child steps |
| 8 | StepLockedSubjectSource | 400 | Step is locked as subject source |
| 9 | StepLockedSubjectSourceWithChildren | 400 | Step is locked as subject source with children |
Sequence Contacts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | InvalidInput | 400 | Invalid input data |
| 2 | SequenceNotFound | 404 | Sequence not found |
| 3 | NoStepsInSequence | 400 | Sequence has no steps |
| 4 | InternalError | 400 | Internal error |
| 5 | ContactLimitExceeded | 400 | Contact limit for sequence exceeded |
| 6 | ContactAlreadyInSequence | 409 | Contact already in sequence |
| 7 | ContactNotFound | 404 | Contact not found |
| 8 | NotInSequence | 404 | Contact not in sequence |
| 9 | InvalidStatusTransition | 409 | Invalid status transition |
| 10 | SequenceArchived | 409 | Sequence is archived |
| 11 | Forbidden | 403 | Access forbidden |
Sequence Templates
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Template not found |
| 2 | DuplicateName | 409 | Template name already exists |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | SequenceNotFound | 404 | Associated sequence not found |
| 5 | InvalidScope | 400 | Invalid template scope |
| 6 | OrgTemplatesDisabled | 403 | Organization-wide templates are disabled |
Sequence Folders
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Folder not found |
| 2 | DuplicateName | 409 | Folder name already exists |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | InvalidPagination | 400 | Invalid pagination parameters |
| 5 | InvalidSort | 400 | Invalid sort parameter |
Sequence Email Accounts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Email account not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | LimitReached | 409 | Limit reached |
| 4 | Common | 400 | General error |
Contacts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Contact not found |
| 2 | InvalidInput | 400 | Invalid input |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | Duplicate | 400 | Contact already exists |
| 5 | InvalidPagination | 400 | Invalid pagination |
| 6 | LimitExceeded | 400 | Contact limit exceeded |
| 7 | EmailAccountNotFound | 400 | Email account not found |
| 8 | ContactInBlackList | 400 | Contact is in blacklist |
| 9 | EmailSendingFailed | 400 | Email sending failed |
| 10 | SequenceNotFound | 400 | Sequence not found |
Accounts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Account not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | InvalidInput | 400 | Invalid input |
| 4 | InvalidPagination | 400 | Invalid pagination parameters |
Contact Lists
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | List not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | DuplicateName | 409 | List name already exists |
| 4 | NameTooShort | 400 | Name too short |
| 5 | NameIsEmpty | 400 | Name is empty |
| 6 | AccessChangeRejected | 400 | Access change rejected |
| 7 | InvalidPagination | 400 | Invalid pagination parameters |
| 8 | ContactNotProcessed | 400 | Contact not processed |
Contact Blacklist Rules
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Rule not found |
| 2 | Duplicate | 409 | Rule already exists |
| 3 | GlobalRuleReadOnly | 403 | Global rule cannot be modified |
| 4 | InvalidPattern | 400 | Invalid blacklist pattern |
| 5 | NotAdded | 400 | Rule was not added |
| 6 | InvalidPagination | 400 | Invalid pagination parameters |
Custom Fields
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Field not found |
| 2 | InvalidInput | 400 | Invalid input |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | DuplicateName | 409 | Field name already exists |
| 5 | LimitExceeded | 400 | Custom field limit exceeded |
| 6 | HasValues | 400 | Field has existing values and cannot be deleted |
Email Accounts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | InvalidInput | 400 | Invalid input |
| 2 | LimitReached | 409 | Account limit reached |
| 3 | InternalError | 400 | Internal error |
| 4 | NotFound | 404 | Email account not found |
| 5 | Forbidden | 403 | Access forbidden |
| 6 | ConnectionFailed | 400 | Connection test failed |
| 7 | InvalidPagination | 400 | Invalid pagination parameters |
Email Templates
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Template not found |
| 2 | DuplicateName | 409 | Template name already exists |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | InvalidPagination | 400 | Invalid pagination parameters |
| 5 | InvalidFilter | 400 | Invalid filter parameters |
| 6 | FolderNotFound | 404 | Template folder not found |
| 7 | AttachmentNotFound | 404 | Attachment not found |
| 8 | EmailAccountNotFound | 404 | Email account not found |
| 9 | ContactNotFound | 404 | Contact not found |
| 10 | RenderFailed | 400 | Template rendering failed |
| 11 | SendTestFailed | 400 | Test email sending failed |
| 12 | TooManyAttachments | 400 | Too many attachments |
Email Template Folders
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Folder not found |
| 2 | DuplicateName | 409 | Folder name already exists |
| 3 | Forbidden | 403 | Access forbidden |
| 4 | AlreadyShared | 409 | Folder is already shared |
| 5 | IsDefault | 400 | Cannot modify default folder |
Holiday Calendars
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Calendar not found |
| 2 | Forbidden | 403 | Access forbidden |
| 3 | DuplicateName | 409 | Calendar name already exists |
| 4 | NotCustomCalendar | 400 | Only custom calendars can be modified |
LinkedIn Accounts
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | InvalidInput | 400 | Invalid input |
| 2 | NotFound | 404 | LinkedIn account not found |
| 3 | AccountInUse | 409 | Account is in use |
| 4 | CookieInvalid | 400 | LinkedIn cookie is invalid |
| 5 | LimitReached | 400 | Account limit reached |
| 6 | PaymentFailed | 400 | Payment verification failed |
| 7 | InternalError | 400 | Internal error |
| 8 | VoiceProfileConflict | 400 | Voice profile conflict |
Schedulers
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Scheduler not found |
| 2 | DeleteRejected | 403 | Cannot delete scheduler |
| 3 | DuplicateName | 409 | Scheduler name already exists |
| 4 | InvalidTimezone | 400 | Invalid timezone identifier |
| 5 | HolidayCalendarNotFound | 404 | Holiday calendar not found |
| 6 | Forbidden | 403 | Access forbidden |
| 7 | LinkNotFound | 400 | Calendar link not found |
| 8 | AlreadyLinked | 409 | Calendar already linked |
Tasks
| errorCode | Name | HTTP | Description |
|---|---|---|---|
| 1 | NotFound | 404 | Task not found |
| 2 | InvalidInput | 400 | Invalid input |
| 3 | CanOnlyEditNewTasks | 400 | Can only edit tasks in New status |
| 4 | CannotChangeSequenceTaskType | 400 | Cannot change type of sequence task |
| 5 | CannotChangeSequenceTaskContact | 400 | Cannot change contact of sequence task |
| 6 | InvalidDates | 400 | Invalid date values |
| 7 | CannotComplete | 409 | Cannot complete in current state |
| 8 | CannotDelete | 409 | Cannot delete in current state |
| 9 | RenderError | 409 | Template rendering error |
| 10 | TooManyAttachments | 400 | Too many attachments |
| 11 | ContactNotAccessible | 400 | Contact is not accessible |
| 12 | Forbidden | 403 | Access forbidden |
| 13 | InvalidPagination | 400 | Invalid pagination parameters |
| 14 | TooManyTasksToDelete | 400 | Too many tasks in single delete request |