# Skipcall Public Documentation ## Docs - [Authentication](https://docs.skipcall.app/api-reference/api-documentation/authentication.md): Learn how to authenticate your API requests using API keys - [Rate limits](https://docs.skipcall.app/api-reference/api-documentation/rate-limiting.md): Understand API rate limits and how to handle them - [Get current API key info](https://docs.skipcall.app/api-reference/authentication/get-current-api-key-info.md): Returns information about the authenticated API key and organization - [Get a call](https://docs.skipcall.app/api-reference/calls/get-a-call.md): Returns a single call by ID. Returns 404 if the call is in a workspace outside the API key scope. - [Get call recording](https://docs.skipcall.app/api-reference/calls/get-call-recording.md): Returns the recording metadata for a call. Returns 404 if the call is in a workspace outside the API key scope. - [Get call transcription](https://docs.skipcall.app/api-reference/calls/get-call-transcription.md): Returns the transcription for a call. Returns 404 if the call is in a workspace outside the API key scope. - [List calls](https://docs.skipcall.app/api-reference/calls/list-calls.md): Returns a paginated list of calls scoped to the workspaces accessible by the API key. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces. - [Create a contact](https://docs.skipcall.app/api-reference/contacts/create-a-contact.md): Creates a new contact in your organization - [Delete a contact](https://docs.skipcall.app/api-reference/contacts/delete-a-contact.md): Soft-deletes a contact. The contact can no longer be retrieved after deletion. Returns 404 if the contact is in a workspace outside the API key scope. - [Get a contact](https://docs.skipcall.app/api-reference/contacts/get-a-contact.md): Returns a single contact by ID. Returns 404 if the contact is in a workspace outside the API key scope. - [List contacts](https://docs.skipcall.app/api-reference/contacts/list-contacts.md): Returns a paginated list of contacts scoped to the workspaces accessible by the API key. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces. - [Update a contact](https://docs.skipcall.app/api-reference/contacts/update-a-contact.md): Updates an existing contact. Only provided fields will be updated. Returns 404 if the contact is in a workspace outside the API key scope. - [Create a custom field](https://docs.skipcall.app/api-reference/custom-fields/create-a-custom-field.md): Creates a new custom field in your organization. A stable `slug` is automatically generated from the `name` and returned in the response. The slug is immutable: renaming the custom field later will not change it. - [Delete a custom field](https://docs.skipcall.app/api-reference/custom-fields/delete-a-custom-field.md): Permanently deletes a custom field and all its associated values across contacts. Returns 404 if the custom field is in a workspace outside the API key scope. - [Get a custom field](https://docs.skipcall.app/api-reference/custom-fields/get-a-custom-field.md): Returns a single custom field by ID. Returns 404 if the custom field is in a workspace outside the API key scope. - [List custom fields](https://docs.skipcall.app/api-reference/custom-fields/list-custom-fields.md): Returns a paginated list of custom fields scoped to the workspaces accessible by the API key. Each custom field has a stable `slug` (immutable) and a human-readable `name` (editable). Use the `slug` as the key when setting custom field values on contacts. Use the `workspaceIds` query parameter to na… - [Update a custom field](https://docs.skipcall.app/api-reference/custom-fields/update-a-custom-field.md): Updates an existing custom field name. The `slug` is **not** modified by this operation — it remains stable for integrations. Returns 404 if the custom field is in a workspace outside the API key scope. - [Health check endpoint](https://docs.skipcall.app/api-reference/health/health-check-endpoint.md) - [Introduction](https://docs.skipcall.app/api-reference/introduction.md): Get started with the Skipcall API to programmatically manage your data - [Add contacts to a sequence](https://docs.skipcall.app/api-reference/sequences/add-contacts-to-a-sequence.md): Adds contacts to an existing sequence. Each item may optionally specify an `assignedToWorkspaceMembershipId` (a workspace membership id obtained via `GET /v1/workspaces/:id/members`). Items without `assignedToWorkspaceMembershipId` are auto-assigned via round-robin among the sequence assignees (leas… - [Create a sequence](https://docs.skipcall.app/api-reference/sequences/create-a-sequence.md): Creates a new sequence. Use the /users endpoint to get organizationMembershipIds for assignedToIds and creatorId. - [Get a sequence by ID](https://docs.skipcall.app/api-reference/sequences/get-a-sequence-by-id.md): Returns the details of a specific sequence. Returns 404 if the sequence is in a workspace outside the API key scope. - [List contacts of a sequence](https://docs.skipcall.app/api-reference/sequences/list-contacts-of-a-sequence.md): Returns a paginated list of contacts in a sequence, enriched with their tags and call history within the sequence. Supports filtering by tag label and contact status. Returns 404 if the parent sequence is in a workspace outside the API key scope. - [List sequences](https://docs.skipcall.app/api-reference/sequences/list-sequences.md): Returns a paginated list of sequences scoped to the workspaces accessible by the API key. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces. - [Remove contacts from a sequence](https://docs.skipcall.app/api-reference/sequences/remove-contacts-from-a-sequence.md): Removes contacts from an existing sequence (soft-delete). Idempotent: contacts not in the sequence are silently ignored. Returns 404 if the sequence is outside the API key scope. - [Get call duration statistics](https://docs.skipcall.app/api-reference/statistics/get-call-duration-statistics.md): Returns call count, average duration, and total duration. Can be filtered by sequence, user, date range, and workspace. Pass `workspaceId` to narrow to a single workspace within the API key scope. The legacy `teamId` parameter is still accepted but adds a `Deprecation: true` response header. - [Get call status distribution](https://docs.skipcall.app/api-reference/statistics/get-call-status-distribution.md): Returns the distribution of calls by status, plus count of contacts not yet called. Pass `workspaceId` to narrow to a single workspace within the API key scope. The legacy `teamId` parameter is still accepted but adds a `Deprecation: true` response header. - [Get tag distribution](https://docs.skipcall.app/api-reference/statistics/get-tag-distribution.md): Returns the distribution of contacts by tags applied after calls. Pass `workspaceId` to narrow to a single workspace within the API key scope. The legacy `teamId` parameter is still accepted but adds a `Deprecation: true` response header. - [Create a tag](https://docs.skipcall.app/api-reference/tags/create-a-tag.md): Creates a new tag for use in sequences to qualify call results. - [Delete a tag](https://docs.skipcall.app/api-reference/tags/delete-a-tag.md): Deletes a tag. Cannot delete the last success tag — at least one must remain per workspace. Returns 404 if the tag is in a workspace outside the API key scope. - [Get a tag by ID](https://docs.skipcall.app/api-reference/tags/get-a-tag-by-id.md): Returns the details of a specific tag. Returns 404 if the tag is in a workspace outside the API key scope. - [List tags](https://docs.skipcall.app/api-reference/tags/list-tags.md): Returns a paginated list of tags scoped to the workspaces accessible by the API key. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces. - [Update a tag](https://docs.skipcall.app/api-reference/tags/update-a-tag.md): Updates an existing tag. Only provided fields will be updated. Returns 404 if the tag is in a workspace outside the API key scope. - [Get stats aggregated by team](https://docs.skipcall.app/api-reference/teams-deprecated-—-use-workspaces/get-stats-aggregated-by-team.md): **Deprecated** — Use GET /workspaces/stats instead. - [List teams accessible by this API key](https://docs.skipcall.app/api-reference/teams-deprecated-—-use-workspaces/list-teams-accessible-by-this-api-key.md): **Deprecated** — Use GET /workspaces instead. - [List organization users](https://docs.skipcall.app/api-reference/users/list-organization-users.md): Returns a paginated list of users (organization members) who have access to at least one of the workspaces accessible by the API key. Use the `organizationMembershipId` to create sequences. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces. - [Get stats aggregated by workspace](https://docs.skipcall.app/api-reference/workspaces/get-stats-aggregated-by-workspace.md): Returns call, contact, and sequence stats per workspace. Scope is limited to the API key's accessible workspaces. - [List members of a workspace](https://docs.skipcall.app/api-reference/workspaces/list-members-of-a-workspace.md): Returns paginated members of a workspace. Each item exposes a workspace membership id (`id` field) usable as `assignedToWorkspaceMembershipId` when adding contacts to a sequence in this workspace. Includes members of every status; filter to ACTIVE if needed. Excludes pending workspace invitations th… - [List workspaces accessible by this API key](https://docs.skipcall.app/api-reference/workspaces/list-workspaces-accessible-by-this-api-key.md): Returns all workspaces within the scope of the API key. ## OpenAPI Specs - [docs-json](https://api-public.skipcall.app/docs-json) - [openapi](https://docs.skipcall.app/api-reference/openapi.json) ## Optional - [Site internet](https://skipcall.io)