Coda Project Workspace Users API
This API enables viewing and modifying user membership within a workspace. It is accessible both to organization admins and workspace admins for the respective workspaces.
This API enables viewing and modifying user membership within a workspace. It is accessible both to organization admins and workspace admins for the respective workspaces.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/coda-project-workspace-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
version: 0.0.2
title: Superhuman Docs Admin Workspace Users API
license:
name: Superhuman Developer Terms
url: https://docs.superhuman.com/trust/developer
description: '# Introduction
The Superhuman Docs Admin API is a RESTful API that allows programmatic access to administrative reports & capabilities within Superhuman Docs (formerly Coda).'
termsOfService: https://superhuman.com/legal/terms
contact:
name: Developer Support
url: https://superhuman.com/developers
email: care@superhuman.com
x-logo:
url: https://cdn.coda.io/icons/png/color/superhuman-docs-128.png
backgroundColor: transparent
altText: Superhuman Docs Admin API
href: '#'
servers:
- url: https://docs.superhuman.com/apis/admin/v1
description: Superhuman Docs Admin API (v1)
security:
- Bearer: []
tags:
- name: Workspace Users
description: This API enables viewing and modifying user membership within a workspace. It is accessible both to organization admins and workspace admins for the respective workspaces.
paths:
/organizations/{organizationId}/workspaces/{workspaceId}/users:
get:
summary: List workspace users
description: Returns a list of users within a workspace.
operationId: listWorkspaceUsers
tags:
- Workspace Users
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/pageToken'
- $ref: '#/components/parameters/workspaceUserRoles'
- $ref: '#/components/parameters/query'
- name: isActivated
description: Filter results to users based on their activation status.
in: query
required: false
schema:
type: boolean
x-no-default: true
responses:
'200':
description: List of Superhuman Docs users matching the query.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceUserList'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/workspaces/<your workspace id>/users''
res = requests.get(uri, headers=headers, params=params).json()
print(f''First user is: {res["items"][0]["email"]}'')
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/workspaces/<your workspace id>/users' |\n jq .items[0].email\n"
post:
summary: Add workspace user
description: Adds an existing user to a workspace.
operationId: addWorkspaceUser
tags:
- Workspace Users
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
requestBody:
description: Parameters for the workspace user.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddWorkspaceUserRequest'
responses:
'200':
description: Response indicating the user was added to the workspace.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceUser'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/workspaces/<your workspace id>/users'\nbody = {\n 'email': 'april@example.com',\n 'role': 'DocMaker',\n}\nres = requests.post(uri, headers=headers, params=params, json=body).json()\n\nprint(f'Added user to the workspace as a Doc Maker')\n"
/organizations/{organizationId}/workspaces/{workspaceId}/users/{userEmail}:
put:
summary: Update workspace user role
description: Updates the role of the given user in the workspace.
operationId: updateWorkspaceUserRole
tags:
- Workspace Users
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
- $ref: '#/components/parameters/userEmail'
requestBody:
description: Parameters for the workspace user.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorkspaceUserRequest'
responses:
'200':
description: The user's role was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceUser'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/workspaces/<your workspace id>/users/<user email>'\nbody = {\n 'role': 'Admin',\n}\nres = requests.put(uri, headers=headers, params=params, json=body).json()\n\nprint(f'Updated user role to Admin')\n"
delete:
summary: Removes a user from a workspace
description: Removes a user from a workspace. Note this does not remove the user from Superhuman Docs or from other workspaces.
operationId: removeWorkspaceUser
tags:
- Workspace Users
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
- $ref: '#/components/parameters/userEmail'
responses:
'200':
description: Response indicating the user was removed from the workspace.
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveWorkspaceUserResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/workspaces/<your workspace id>/users/<user email>''
res = requests.delete(uri, headers=headers, params=params, json=body).json()
print(f''Removed the user from the workspace'')
'
components:
parameters:
organizationId:
name: organizationId
description: ID of the organization.
in: path
required: true
example: org-AbCDeFGHIj
schema:
type: string
workspaceUserRoles:
name: workspaceUserRoles
description: Filter results to users based on their role in the workspace
in: query
explode: false
schema:
type: array
items:
$ref: '#/components/schemas/WorkspaceUserRole'
pageToken:
name: pageToken
description: An opaque token used to fetch the next page of results.
in: query
example: eyJsaW1pd
schema:
type: string
workspaceId:
name: workspaceId
description: ID of the workspace.
in: path
required: true
example: ws-AbCDeFGHIj
schema:
type: string
query:
name: query
description: Search terms used to narrow down results.
in: query
required: false
example: feature%parity
schema:
type: string
limit:
name: limit
description: Maximum number of results to return in this query.
in: query
example: 10
schema:
type: integer
minimum: 1
default: 100
maximum: 500
userEmail:
name: userEmail
description: User to act upon.
in: path
required: true
example: april@example.com
schema:
type: string
format: email
schemas:
AddWorkspaceUserRequest:
x-schema-name: AddWorkspaceUserRequest
description: Payload for adding an existing user to a workspace.
type: object
required:
- email
- role
additionalProperties: false
properties:
email:
type: string
description: The email address of the existing user to add to the workspace.
example: joe@example.com
role:
$ref: '#/components/schemas/WorkspaceUserRole'
WorkspaceUser:
x-schema-name: WorkspaceUser
description: Metadata of a user in a workspace.
type: object
required:
- id
- email
- role
- name
- registeredAt
additionalProperties: false
properties:
id:
type: number
description: Unique id of the user.
example: 12345
email:
type: string
description: Email of the user.
example: hello@example.com
role:
$ref: '#/components/schemas/WorkspaceUserRole'
name:
type: string
description: Name of the user.
example: Sally Jane
pictureUrl:
type: string
description: Picture url of the user.
format: url
example: codahosted.io/123
registeredAt:
type: string
format: date-time
description: Timestamp for when the user registered in this workspace
example: '2018-04-11T00:18:57.946Z'
roleChangedAt:
type: string
format: date-time
description: Timestamp for when the user's role last changed in this workspace.
example: '2018-04-11T00:18:57.946Z'
lastActiveAt:
type: string
format: date-time
description: Member's last login date to Superhuman Docs.
example: '2018-04-11T00:18:57.946Z'
docsLastActiveAt:
type: string
format: date-time
description: The last date anyone used any of the member's Total docs.
example: '2018-04-11T00:18:57.946Z'
totalDocs:
type: number
description: Docs the member owns, is an admin of, or has taken a Doc Maker action on in the last 90 days.
example: 2
totalCollaborators:
type: number
description: Unique members who have viewed any of the member's Total docs in the last 90 days.
example: 5
NextPageToken:
description: If specified, an opaque token used to fetch the next page of results.
type: string
example: eyJsaW1pd
RemoveWorkspaceUserResponse:
x-schema-name: RemoveWorkspaceUserResponse
description: Result of the user workspace removal request
type: object
additionalProperties: false
UpdateWorkspaceUserRequest:
x-schema-name: UpdateWorkspaceUserRequest
description: Payload for updating an existing user in a workspace.
type: object
required:
- role
additionalProperties: false
properties:
role:
$ref: '#/components/schemas/WorkspaceUserRole'
NextPageLink:
description: If specified, a link that can be used to fetch the next page of results.
type: string
format: url
WorkspaceUserRole:
x-schema-name: WorkspaceUserRole
type: string
enum:
- Admin
- DocMaker
- Editor
x-tsEnumNames:
- Admin
- DocMaker
- Editor
WorkspaceUserList:
x-schema-name: WorkspaceUserList
type: object
required:
- items
additionalProperties: false
properties:
items:
type: array
items:
$ref: '#/components/schemas/WorkspaceUser'
href:
type: string
format: url
description: API link to these results
example: https://docs.superhuman.com/apis/admin/v1/organizations/org-1AbcdeFgh1/workspaces/ws-n123897sfd/users?limit=20
nextPageToken:
$ref: '#/components/schemas/NextPageToken'
nextPageLink:
allOf:
- $ref: '#/components/schemas/NextPageLink'
- type: string
example: https://docs.superhuman.com/apis/admin/v1/organizations/org-1AbcdeFgh1/workspaces/ws-n123897sfd/users?pageToken=eyJsaW1pd
responses:
NotFoundError:
description: The resource could not be located with the current API token.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 404
statusMessage:
type: string
description: HTTP status message of the error.
example: Not Found
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Not Found
TooManyRequestsError:
description: The client has sent too many requests.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 429
statusMessage:
type: string
description: HTTP status message of the error.
example: Too Many Requests
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Too Many Requests
ForbiddenError:
description: The API token does not grant access to this resource.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 403
statusMessage:
type: string
description: HTTP status message of the error.
example: Forbidden
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Forbidden
BadRequestError:
description: The request parameters did not conform to expectations.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 400
statusMessage:
type: string
description: HTTP status message of the error.
example: Bad Request
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Bad Request
UnauthorizedError:
description: The API token is invalid or has expired.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 401
statusMessage:
type: string
description: HTTP status message of the error.
example: Unauthorized
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Unauthorized
securitySchemes:
Bearer:
description: 'The Superhuman Docs Admin API can be accessed using an API token, which can be obtained from [*My account*](https://docs.superhuman.com/account)
in Superhuman Docs. This token should be specified by setting a header as follows.
```Authorization: Bearer <api_token>```
Keep your token safe, as anyone who gets access to it can access your account. Once a token is created
it cannot be viewed or modified, so don''t lose it.
'
type: http
scheme: bearer
bearerFormat: UUID
x-tagGroups:
- name: API Tokens
tags:
- API Tokens
- name: Docs
tags:
- Docs
- Doc Permissions
- Doc Export
- name: Doc Structure
tags:
- Pages
- name: Events
tags:
- Events
- name: Folders
tags:
- Folders
- Folder Permissions
- name: Groups
tags:
- Groups
- name: Import
tags:
- Preferences
- name: LegalHolds
tags:
- LegalHolds
- name: Organizations
tags:
- Organizations
- Organization Users
- Pack Controls
- Pack Configurations
- name: Packs
tags:
- Packs
- name: Webhooks
tags:
- Webhooks
- name: Workspaces
tags:
- Workspaces
- Workspace Users