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-teams-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: 3.2.0
info:
title: Communicate So Teams API
version: 0.1.5
description: 'Operations tagged Teams 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:
- name: Teams
paths:
/workspaces/{workspaceId}/teams:
get:
operationId: listTeams
summary: List workspace teams and memberships
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:read
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: List workspace teams and memberships
content:
application/json:
schema:
$ref: '#/components/schemas/listTeamsResponse'
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
post:
operationId: createTeam
summary: Create a workspace team
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:write
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/createTeamRequest'
responses:
'201':
description: Create a workspace team
content:
application/json:
schema:
$ref: '#/components/schemas/createTeamResponse'
'400':
description: Invalid request, timezone, resource association or confirmation.
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
servers:
- url: https://app.communicate.so/api/v1
description: Canonical external base URL served through the Next.js /api/v1 rewrite.
/workspaces/{workspaceId}/teams/{teamId}:
patch:
operationId: updateTeam
summary: Rename a workspace team
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:write
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
- name: teamId
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updateTeamRequest'
responses:
'200':
description: Rename a workspace team
content:
application/json:
schema:
$ref: '#/components/schemas/updateTeamResponse'
'400':
description: Invalid request, timezone, resource association or confirmation.
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
delete:
operationId: deleteTeam
summary: Delete a workspace team
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:write
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
- name: teamId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Delete a workspace team
content:
application/json:
schema:
$ref: '#/components/schemas/deleteTeamResponse'
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
servers:
- url: https://app.communicate.so/api/v1
description: Canonical external base URL served through the Next.js /api/v1 rewrite.
/workspaces/{workspaceId}/teams/{teamId}/members:
post:
operationId: addTeamMember
summary: Add a workspace member to a team
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:write
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
- name: teamId
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/addTeamMemberRequest'
responses:
'201':
description: Add a workspace member to a team
content:
application/json:
schema:
$ref: '#/components/schemas/addTeamMemberResponse'
'400':
description: Invalid request, timezone, resource association or confirmation.
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
servers:
- url: https://app.communicate.so/api/v1
description: Canonical external base URL served through the Next.js /api/v1 rewrite.
/workspaces/{workspaceId}/teams/{teamId}/members/{memberId}:
delete:
operationId: removeTeamMember
summary: Remove a member from a team
description: Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
tags:
- Teams
security:
- accountBearer: []
- accountSession: []
- localAccountSession: []
x-required-account-scopes:
- teams:write
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
minLength: 1
- name: teamId
in: path
required: true
schema:
type: string
minLength: 1
- name: memberId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Remove a member from a team
content:
application/json:
schema:
$ref: '#/components/schemas/removeTeamMemberResponse'
'401':
description: Missing, invalid, expired or revoked account credential or application session.
'402':
description: Plan entitlement or seat capacity does not allow the operation.
'403':
description: Required account scope, live verified identity, membership or role permission is missing.
'404':
description: Workspace or addressed resource is not visible to this member.
'500':
description: Unexpected server failure.
'503':
description: Authorization service temporarily unavailable.
servers:
- url: https://app.communicate.so/api/v1
description: Canonical external base URL served through the Next.js /api/v1 rewrite.
components:
schemas:
updateTeamRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
required:
- name
deleteTeamResponse:
type: object
properties:
deleted:
type: boolean
const: true
required:
- deleted
additionalProperties: false
addTeamMemberRequest:
type: object
properties:
memberId:
type: string
minLength: 1
required:
- memberId
removeTeamMemberResponse:
type: object
properties:
deleted:
type: boolean
const: true
required:
- deleted
additionalProperties: false
updateTeamResponse:
type: object
properties:
id:
type: string
minLength: 1
workspaceId:
type: string
minLength: 1
name:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
required:
- id
- workspaceId
- name
- createdAt
additionalProperties: false
listTeamsResponse:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
name:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
members:
type: array
items:
type: object
properties:
memberId:
type: string
minLength: 1
userId:
type: string
minLength: 1
role:
type: string
enum:
- owner
- admin
- agent_builder
- support_lead
- member
- analyst
- viewer
required:
- memberId
- userId
- role
additionalProperties: false
required:
- id
- name
- createdAt
- members
additionalProperties: false
addTeamMemberResponse:
type: object
properties:
teamId:
type: string
minLength: 1
memberId:
type: string
minLength: 1
required:
- teamId
- memberId
additionalProperties: false
createTeamRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
required:
- name
createTeamResponse:
type: object
properties:
id:
type: string
minLength: 1
workspaceId:
type: string
minLength: 1
name:
type: string
createdAt:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
members:
type: array
items:
not: {}
required:
- id
- workspaceId
- name
- createdAt
- members
additionalProperties: false
securitySchemes:
accountSession:
type: apiKey
in: cookie
name: __Secure-better-auth.session_token
description: Signed Better Auth session cookie for an HTTPS application origin. Credential management additionally requires verified email and fresh password proof on writes.
localAccountSession:
type: apiKey
in: cookie
name: better-auth.session_token
description: Signed session cookie used when the configured application auth origin is HTTP, such as local development.
accountBearer:
type: http
scheme: bearer
bearerFormat: Account credential
description: Opaque user-bound `ca_` account credential. Each request checks live account scopes, verified email, expiry, revocation and the issuer session. Not a workspace `ck_` key or OAuth access token.
clientCredentialsBasic:
type: http
scheme: basic
description: Use the API key ID as the username and the one-time `ck_` API key token as the password.
oauth2:
type: oauth2
description: OAuth 2.0 client-credentials tokens bounded by the source API key scope ceiling.
flows:
clientCredentials:
tokenUrl: https://app.communicate.so/api/v1/oauth/token
scopes:
agents:read: List agents in the authenticated workspace.
chat:write: Create chat turns with an agent in the authenticated workspace.
bearerAuth:
type: http
scheme: bearer
bearerFormat: API key
description: Workspace API key token with the `ck_` prefix.
x-refined-from:
- communicate-so-openapi.json
- communicate-so-openapi.json