Coda Project Organization Users API

This API enables viewing and modifying user information at the Organization level.

Operations 4

GET /organizations/{organizationId}/users List organization users #
POST /organizations/{organizationId}/users/transferResources Transfer user resources #
POST /organizations/{organizationId}/users/{userEmail}/activate Activate a user #
POST /organizations/{organizationId}/users/{userEmail}/deactivate Deactivate a user #

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/coda-project:coda-project-organization-users-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

coda-project-organization-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.0.2
  title: Superhuman Docs Admin Organization 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: Organization Users
  description: This API enables viewing and modifying user information at the Organization level.
paths:
  /organizations/{organizationId}/users:
    get:
      summary: List organization users
      description: Returns a list of users within an organization, across all registered domains.
      operationId: listOrgUsers
      tags:
      - Organization Users
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/isActivated'
      - $ref: '#/components/parameters/query'
      - name: emails
        description: List of emails of users to retrieve.
        in: query
        required: false
        example:
        - april@example.com
        - june@example.com
        explode: false
        schema:
          type: array
          items:
            type: string
            format: email
      - name: deactivatedAfter
        in: query
        description: Return users deactivated at or after the given Unix timestamp.
        schema:
          type: number
      - name: includeOwnedDocCounts
        in: query
        description: Include the count of docs owned by each user.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: List of Superhuman Docs users matching the query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgUserList'
        '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>/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>/users' |\n  jq .items[0].email\n"
  /organizations/{organizationId}/users/transferResources:
    post:
      summary: Transfer user resources
      description: Transfers resources such as docs and workspace membership from a deactivated user to an active user.
      operationId: transferResources
      tags:
      - Organization Users
      parameters:
      - $ref: '#/components/parameters/organizationId'
      requestBody:
        description: Parameters for the resource transfer.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferResourcesRequest'
      responses:
        '202':
          description: Request accepted and being processed asynchronously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResourcesResponse'
        '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>/users/transferResources'\nbody = {\n  'fromUser': 'joe@example.com',\n  'toUser': 'april@example.com',\n}\nres = requests.get(uri, headers=headers, json=body).json()\n\nprint(f'Result: {res.status_code}')\n# => Result: 201\n"
  /organizations/{organizationId}/users/{userEmail}/activate:
    post:
      summary: Activate a user
      description: Activates a deactivated user.
      operationId: activateOrgUser
      tags:
      - Organization Users
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/userEmail'
      requestBody:
        description: Parameters for activating a deactivated user.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgUserActivationChangeRequest'
      responses:
        '200':
          description: Response indicating the user activation request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgUserActivationChangeResult'
        '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>/users/<user email>/activate''

          res = requests.get(uri, headers=headers, params=params).json()


          print(f''Successully activated!'')

          '
      - 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>/users/<user email>/activate'\n"
  /organizations/{organizationId}/users/{userEmail}/deactivate:
    post:
      summary: Deactivate a user
      description: Deactivates a user, ensuring the user is no longer paid and allowing their docs to be reassigned to a new owner.
      operationId: deactivateOrgUser
      tags:
      - Organization Users
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/userEmail'
      requestBody:
        description: Parameters for deactivating a user.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgUserActivationChangeRequest'
      responses:
        '200':
          description: Response indicating the user deactivation request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgUserActivationChangeResult'
        '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>/users/<user email>/deactivate''

          res = requests.get(uri, headers=headers, params=params).json()


          print(f''Successully deactivated!'')

          '
      - 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>/users/<user email>/deactivate'\n"
components:
  parameters:
    query:
      name: query
      description: Search terms used to narrow down results.
      in: query
      required: false
      example: feature%parity
      schema:
        type: string
    isActivated:
      name: isActivated
      description: Filter results to users based on their activation status.
      in: query
      required: false
      schema:
        type: boolean
        x-no-default: true
    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
    organizationId:
      name: organizationId
      description: ID of the organization.
      in: path
      required: true
      example: org-AbCDeFGHIj
      schema:
        type: string
    pageToken:
      name: pageToken
      description: An opaque token used to fetch the next page of results.
      in: query
      example: eyJsaW1pd
      schema:
        type: string
    userEmail:
      name: userEmail
      description: User to act upon.
      in: path
      required: true
      example: april@example.com
      schema:
        type: string
        format: email
  responses:
    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
    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
    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
    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
  schemas:
    OrgUser:
      x-schema-name: OrgUser
      description: Metadata of a user in an organization.
      type: object
      required:
      - email
      - name
      - status
      - 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
        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
        status:
          $ref: '#/components/schemas/OrgUserStatus'
        registeredAt:
          type: string
          format: date-time
          description: Timestamp representing when the user registered with Superhuman Docs.
          example: '2018-04-11T00:18:57.946Z'
        deactivatedAt:
          type: string
          format: date-time
          description: Timestamp representing when the user was deactivated from Superhuman Docs.
          example: '2018-04-11T00:18:57.946Z'
        ownedDocCount:
          type: number
          description: Number of docs owned by this user.
          example: 12
    TransferResourcesResponse:
      x-schema-name: TransferResourcesResponse
      description: Result of the transfer resources request
      type: object
      required:
      - requestId
      additionalProperties: false
      properties:
        requestId:
          type: string
          description: An opaque identifier that represents the request.
          example: c5cb3278-800e-4ae3-be53-19b0b794f8e1
    NextPageToken:
      description: If specified, an opaque token used to fetch the next page of results.
      type: string
      example: eyJsaW1pd
    OrgUserList:
      x-schema-name: OrgUserList
      type: object
      required:
      - items
      additionalProperties: false
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrgUser'
        href:
          type: string
          format: url
          description: API link to these results
          example: https://docs.superhuman.com/apis/admin/v1/organizations/org-1AbcdeFgh1/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/users?pageToken=eyJsaW1pd
    OrgUserActivationChangeRequest:
      x-schema-name: OrgUserActivationChangeRequest
      description: Payload for making changes to an org user's state.
      type: object
      additionalProperties: false
      properties:
        bypassScim:
          type: boolean
          description: By default, requests to update org users' activation state are rejected if SCIM is enabled for the organization. Updating membership here may cause Superhuman Docs to be out of sync with your identity provider and/or refreshes from SCIM may overwrite your changes here. Set this flag to bypass this protection.
    OrgUserActivationChangeResult:
      x-schema-name: OrgUserActivationChangeResult
      description: The result of a change to an org user's state.
      type: object
      additionalProperties: false
      properties: {}
    OrgUserStatus:
      x-schema-name: OrgUserStatus
      type: string
      enum:
      - Active
      - Deactivated
      - Deleted
      x-tsEnumNames:
      - Active
      - Deactivated
      - Deleted
    NextPageLink:
      description: If specified, a link that can be used to fetch the next page of results.
      type: string
      format: url
    TransferResourcesRequest:
      x-schema-name: TransferResourcesRequest
      description: Payload for transferring resources between users.
      type: object
      required:
      - fromEmail
      - toEmail
      additionalProperties: false
      properties:
        fromEmail:
          type: string
          description: The email address of the user to transfer resources away from.
          example: joe@example.com
        toEmail:
          type: string
          description: The email address of the user to transfer resources to.
          example: april@example.com
        filterDocIds:
          type: array
          description: List of IDs of docs to transfer. Must be owned by the from user. If unspecified transfers all docs the from user owns.
          example:
          - AbCDeFGH
          items:
            type: string
  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