# Skipcall Public Documentation - [Introduction](https://docs.skipcall.app/api-reference/introduction.md): Get started with the Skipcall API to programmatically manage your data - [Authentication](https://docs.skipcall.app/api-reference/api-documentation/authentication.md): Learn how to authenticate your API requests using API keys - [Rate limiting](https://docs.skipcall.app/api-reference/api-documentation/rate-limiting.md) - [Health check endpoint](https://docs.skipcall.app/api-reference/health/health-check-endpoint.md) - [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 - [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. - [Create a contact](https://docs.skipcall.app/api-reference/contacts/create-a-contact.md): Creates a new contact in your organization - [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. - [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. - [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. - [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. - [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, including `audioUrl`: the absolute URL of `GET /v1/calls/{id}/recording/audio`, which streams the audio with the same API key. Returns 403 `RECORDING_DISABLED` when call recording is disabled for the workspace of the call (behaviour change: this endpoint pr… - [Delete a call recording](https://docs.skipcall.app/api-reference/calls/delete-a-call-recording.md): Permanently deletes the call recording (the audio is also removed from the telephony provider). This CASCADES: the call transcription and its summary, if any, are deleted as well. - [Stream the audio of a call recording](https://docs.skipcall.app/api-reference/calls/stream-the-audio-of-a-call-recording.md): Streams the audio of the call recording, authenticated with the same API key as every other endpoint (no public or pre-signed link). Defaults to mp3 (`audio/mpeg`); `?format=wav` returns `audio/wav` and any other value falls back to mp3. Served inline unless `?download=true`, which sets `Content-Dis… - [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. - [Delete a call transcription](https://docs.skipcall.app/api-reference/calls/delete-a-call-transcription.md): Deletes the call transcription, including its summary. The recording (audio) is kept. - [Delete a call summary](https://docs.skipcall.app/api-reference/calls/delete-a-call-summary.md): Deletes only the summary of the call transcription. The transcript and the recording are kept. - [Stream the audio of the dropped voicemail clip for a call](https://docs.skipcall.app/api-reference/calls/stream-the-audio-of-the-dropped-voicemail-clip-for-a-call.md): Streams the audio of the voicemail clip dropped on the answering machine for this call. Returns 404 if the call has no dropped clip (none dropped, or the clip was later deleted), if the call does not exist, or if it is in a workspace outside the API key scope. - [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. - [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. - [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. - [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… - [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. - [Archive a sequence](https://docs.skipcall.app/api-reference/sequences/archive-a-sequence.md): Archives a sequence. An archived sequence no longer appears in GET /v1/sequences, returns 404 on GET /v1/sequences/:id and its contacts endpoints, and can be restored with POST /v1/sequences/:id/unarchive. Its contacts and call history are kept. Returns 404 if the sequence is outside the API key sco… - [Unarchive a sequence](https://docs.skipcall.app/api-reference/sequences/unarchive-a-sequence.md): Restores an archived sequence, with its contacts and call history. 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. - [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. - [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 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. - [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 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. - [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. - [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. - [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. - [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. - [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… - [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. - [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. - [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. - [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. ## OpenAPI Specs - [openapi](/api-reference/openapi.json) - [docs-json](https://api-public.skipcall.app/docs-json) ## Optional - [Site internet](https://skipcall.io) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.