communicate-so Workspaces API

The Workspaces API from communicate-so — 79 operation(s) for workspaces.

Operations 95

GET /workspaces List workspaces of the authenticated user #
POST /workspaces Create a workspace owned by the authenticated user #
POST /workspaces/{workspaceId}/contacts Create a standalone workspace contact; restricted-agent members cannot create… #
GET /workspaces/{workspaceId}/contacts Search and page accessible contact profiles without hidden-agent totals #
DELETE /workspaces/{workspaceId}/contacts/{contactId} Remove a directory profile while retaining historical conversations; this is… #
GET /workspaces/{workspaceId}/contacts/{contactId} Read a contact profile and only the conversations visible to this member #
PATCH /workspaces/{workspaceId}/contacts/{contactId} Edit supplied contact fields; restricted members cannot edit profiles shared… #
POST /workspaces/{workspaceId}/support-requests/merge Merge duplicate support requests at their expected versions #
POST /workspaces/{workspaceId}/support-requests/{requestId}/split Split a support request into separate goals by message #
POST /workspaces/{workspaceId}/support-requests/{requestId}/transitions Activate, wait, end or reopen a support request at its expected version #
POST /workspaces/{workspaceId}/support-requests/{requestId}/evidence Attach a verified resolution receipt to a support request #
POST /workspaces/{workspaceId}/support-requests/{requestId}/sla/bind Bind the matching SLA policy to a support request #
POST /workspaces/{workspaceId}/support-requests/{requestId}/sla/milestones Record an SLA milestone for a support request reply #
GET /workspaces/{workspaceId}/support-requests/{requestId}/sla/clocks/{kind} Read one SLA clock for a support request #
GET /workspaces/{workspaceId}/labels List the workspace labels conversations can carry #
POST /workspaces/{workspaceId}/labels Create a workspace label with a hex color or color token name #
PATCH /workspaces/{workspaceId}/labels/{labelId} Rename or recolor a workspace label #
DELETE /workspaces/{workspaceId}/labels/{labelId} Delete a workspace label and remove it from every conversation #
GET /workspaces/{destinationWorkspaceId}/linked-conversations List conversations on agents shared with this workspace #
GET /workspaces/{destinationWorkspaceId}/linked-conversations/counts Count linked conversations by status #
GET /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId} Read one linked conversation with its messages #
PATCH /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId} Open, close, snooze or mark a linked conversation spam #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/read Mark a linked conversation read for the caller #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/copilot Draft, summarise or answer from a linked thread without sending anything… #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/copilot/endorse Record that a teammate used a learning-backed copilot suggestion in a linked… #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/attachments/presign Stage a linked reply attachment and return a short-lived upload URL; unusable… #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/attachments/confirm Verify and scan an uploaded linked reply attachment #
GET /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/attachments/{attachmentId}/url Return a short-lived download URL for an attachment on a linked conversation #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/messages Send a teammate reply in a linked conversation #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/messages/{messageId}/undo Undo a queued linked reply before it sends #
PATCH /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/messages/{messageId} Edit a queued linked reply #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/messages/{messageId}/retry Retry a failed linked reply #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/notes Add an internal note to a linked conversation #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/labels/{labelId} Add a source label to a linked conversation #
DELETE /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/labels/{labelId} Remove a source label from a linked conversation #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/assign Assign a linked conversation to the caller or a teammate #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/takeover Take a linked conversation over from the AI #
POST /workspaces/{destinationWorkspaceId}/linked-conversations/{conversationId}/actions/{actionId}/run Run an allowed action in a linked conversation #
GET /workspaces/{workspaceId}/conversations List conversations, optionally for one agent #
POST /workspaces/{workspaceId}/conversations Start a conversation with a contact and send the first message #
GET /workspaces/{workspaceId}/conversations/{conversationId} Read one conversation with its messages #
PATCH /workspaces/{workspaceId}/conversations/{conversationId} Open or close a conversation; active support requests need dispositions or force #
GET /workspaces/{workspaceId} Read a workspace of the authenticated member #
PATCH /workspaces/{workspaceId} Rename a workspace or change its timezone #
DELETE /workspaces/{workspaceId} Delete an owned workspace with its name as confirmation #
GET /workspaces/{workspaceId}/custom-domains List custom domains with the DNS records each still needs #
POST /workspaces/{workspaceId}/custom-domains Register a custom domain for an agent on a paid workspace #
POST /workspaces/{workspaceId}/custom-domains/{domainId}/verify Check DNS now and mark the custom domain verified when it matches #
DELETE /workspaces/{workspaceId}/custom-domains/{domainId} Remove a custom domain; one that ever served traffic is parked until DNS moves… #
GET /workspaces/{workspaceId}/webhooks List workspace webhooks without their signing secrets #
POST /workspaces/{workspaceId}/webhooks Create a webhook; the signing secret is returned once #
PATCH /workspaces/{workspaceId}/webhooks/{webhookId} Pause, resume or change the events of a webhook #
DELETE /workspaces/{workspaceId}/webhooks/{webhookId} Delete a webhook #
GET /workspaces/{workspaceId}/analytics Read workspace conversation analytics for the last N days #
GET /workspaces/{workspaceId}/analytics/insights Read cached topic and sentiment insights for one agent; never spends credits #
GET /workspaces/{workspaceId}/billing Read the workspace billing overview the caller may see #
GET /workspaces/{workspaceId}/billing/purchases Read whether the workspace has bought before, for checkout copy #
GET /workspaces/{workspaceId}/billing/usage Read credit usage for a date range #
GET /workspaces/{destinationWorkspaceId}/linked-analytics Read conversation analytics for agents shared with this workspace #
GET /workspaces/{destinationWorkspaceId}/linked-analytics/insights Read cached insights for a linked agent; never spends credits #
GET /workspaces/{destinationWorkspaceId}/linked-agents List agents other workspaces share with this workspace #
GET /workspaces/{destinationWorkspaceId}/linked-agents/{grantId} Read one linked agent grant #
GET /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/settings Read the settings a Manage grant may change #
GET /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/actions List actions on a Manage-linked agent #
PATCH /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/settings/ai Change prompt, model or temperature on a Manage-linked agent #
PATCH /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/settings/widget Change widget settings on a Manage-linked agent #
PATCH /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/settings/pause Pause or resume a Manage-linked agent #
PATCH /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/actions/{actionId} Edit an action on a Manage-linked agent #
POST /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/unlink Remove a linked agent from this workspace #
POST /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/member-assignments Give a teammate access to a linked agent #
DELETE /workspaces/{destinationWorkspaceId}/linked-agents/{grantId}/member-assignments/{memberId} Remove a teammate from a linked agent #
POST /linked-agent-grants/{token}/accept Accept a shared agent into one of your workspaces #
POST /linked-agent-grants/{token}/decline Decline a shared agent #
GET /workspaces/{workspaceId}/transfers List outgoing agent transfers from this workspace #
GET /transfers List agent transfers offered to you #
GET /transfers/{transferId} Read one agent transfer offered to you #
POST /transfers/{transferId}/accept Accept an agent transfer into one of your workspaces #
POST /transfers/{transferId}/decline Decline an agent transfer offered to you #
GET /workspaces/{workspaceId}/api-keys List workspace API keys by prefix; tokens are never returned #
POST /workspaces/{workspaceId}/api-keys Create a workspace API key; the token is returned once #
DELETE /workspaces/{workspaceId}/api-keys/{keyId} Revoke a workspace API key #
DELETE /workspaces/{workspaceId}/api-keys/{keyId}/permanent Permanently remove an already-revoked workspace API key #
POST /workspaces/{workspaceId}/billing/checkout Start a hosted checkout for a paid plan #
POST /workspaces/{workspaceId}/billing/topups/checkout Start a hosted checkout for a credit top-up pack #
POST /workspaces/{workspaceId}/billing/change/preview Preview the charge for changing plan #
POST /workspaces/{workspaceId}/billing/change Change the subscription plan; may charge the saved card #
POST /workspaces/{workspaceId}/billing/cancel Cancel the subscription at the end of the period #
POST /workspaces/{workspaceId}/billing/resume Resume a subscription set to cancel #
POST /workspaces/{workspaceId}/billing/payment-method Start the hosted flow to replace the saved card #
PUT /workspaces/{workspaceId}/billing/auto-top-up Set the automatic credit top-up policy #
GET /workspaces/{workspaceId}/compliance/export Export every conversation, message and contact in the workspace #
DELETE /workspaces/{workspaceId}/compliance/conversations Permanently erase every conversation in the workspace #
DELETE /workspaces/{workspaceId}/support-requests/{requestId}/evidence/{evidenceId}/payload Permanently erase one evidence payload from a support request #
POST /workspaces/{workspaceId}/analytics/insights/refresh Recompute topic and sentiment insights for one agent; spends credits #
POST /workspaces/{destinationWorkspaceId}/linked-analytics/insights/refresh Recompute insights for a linked agent; spends credits #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/communicate-so:communicate-so-workspaces-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

communicate-so-workspaces-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Communicate So Workspaces API
  version: 0.1.5
  description: 'Operations tagged Workspaces across 2 of this provider''s published API definitions: communicate-so-openapi.json, communicate-so-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.communicate.so/api/v1
  description: Canonical external base URL served through the Next.js /api/v1 rewrite.
security:
- oauth2: []
- bearerAuth: []
tags:


# --- truncated at 32 KB (234 KB total) ---
# Full source: https://artifacts.apis.io/communicate-so/openapi/communicate-so-workspaces-api-openapi.yml