Coda Project Docs API

Documents are foundational, top-level collaborative projects that contain pages. The API lets you list and search your documents.

Operations 14

GET /organizations/{organizationId}/docs List docs #
GET /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId} Get doc metadata #
DELETE /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId} Delete doc #
POST /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/revive Revive doc #
POST /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/move Move doc #
GET /organizations/{organizationId}/docs/{docId} Get doc metadata #
DELETE /organizations/{organizationId}/docs/{docId} Delete doc #
POST /organizations/{organizationId}/docs/{docId}/revive Revive doc #
POST /organizations/{organizationId}/docs/{docId}/move Move doc #
GET /docs List available docs #
POST /docs Create doc #
GET /docs/{docId} Get info about a doc #
DELETE /docs/{docId} Delete doc #
PATCH /docs/{docId} Update doc #

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-docs-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-docs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coda Project Docs API
  contact:
    name: Developer Support
    url: https://superhuman.com/developers
    email: care@superhuman.com
  license:
    name: Superhuman Developer Terms
    url: https://docs.superhuman.com/trust/developer
  termsOfService: https://superhuman.com/legal/terms
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Docs across 2 of this provider''s published API definitions: coda-project-admin-openapi-original.json, coda-project-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://docs.superhuman.com/apis/admin/v1
  description: Superhuman Docs Admin API (v1)
- url: https://docs.superhuman.com/apis/v1
  description: Superhuman Docs API (v1)
security:
- Bearer: []
tags:
- name: Docs
  description: Documents are foundational, top-level collaborative projects that contain pages. The API lets you list and search your documents.
paths:
  /organizations/{organizationId}/docs:
    get:
      summary: List docs
      description: Returns a list of docs in the organization
      operationId: listDocs
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/docIds'
      - $ref: '#/components/parameters/folderIds'
      - $ref: '#/components/parameters/workspaceIds'
      - $ref: '#/components/parameters/docAvailabilityState'
      - $ref: '#/components/parameters/docTypes'
      - name: dateActivity
        description: Activity type to apply the date range filter to. Only available if a search query is provided.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DateActivity'
      - name: since
        description: Return docs with the specified date activity on or after the given date. Only available if a search query is provided.
        in: query
        required: false
        schema:
          type: string
      - name: until
        description: Return docs with the specified date activity on or before the given date. Only available if a search query is provided.
        in: query
        required: false
        schema:
          type: string
      - name: ownerUserEmails
        description: List of emails of doc owners whose docs to retrieve.
        in: query
        required: false
        example:
        - april@example.com
        - june@example.com
        explode: false
        schema:
          type: array
          items:
            type: string
            format: email
      - name: title
        description: If specified, filter docs whose title contains this string.
        in: query
        required: false
        schema:
          type: string
      - name: sharedWithWorkspace
        description: If true, filter docs shared with their workspace. All sharedWith params are ORed together.
        in: query
        required: false
        schema:
          type: boolean
      - name: sharedWithDomains
        description: Filter docs shared with the specified domains. All sharedWith params are ORed together.
        in: query
        required: false
        example:
        - example.com
        explode: false
        schema:
          type: array
          items:
            type: string
            format: domain
      - name: sharedWithAnyone
        description: Filter docs shared publicly if specified. All sharedWith params are ORed together.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SharedWithAnyoneFilter'
      - name: sharedWithExternalDomain
        description: Filter docs shared with a user external to the organization. All sharedWith params are ORed together.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SharedWithExternalDomainFilter'
      - name: sortField
        description: Sort the list of docs by the specified field.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DocListSortField'
      - name: sortDirection
        description: Sort by the specified direction.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
      - name: includeInstalledPackCount
        description: Include the count of installed Packs in the response.
        in: query
        required: false
        schema:
          type: boolean
      - name: fetchPermissionsMode
        description: How to fetch permissions for a doc. Defaults to list all permissions.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/FetchPermissionsMode'
      responses:
        '200':
          description: List of documents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocList'
        '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>/docs''

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


          print(f''First doc is: {res["items"][0]["name"]}'')

          '
      - 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>/docs' |\n  jq .items[0].name\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}:
    get:
      summary: Get doc metadata
      description: Returns metadata for a specific doc
      operationId: getDocV2
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/workspaceId'
      - $ref: '#/components/parameters/docId'
      - name: fetchPermissionsMode
        description: How to fetch permissions for a doc. Defaults to list all permissions.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/FetchPermissionsMode'
      responses:
        '200':
          description: Metadata for the doc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Doc'
        '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>/docs/<your doc id>''

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


          print(f''Doc name is: {res["name"]}'')

          '
      - 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>/docs/<your doc id>' |\n  jq .name\n"
    delete:
      summary: Delete doc
      description: Deletes an existing doc
      operationId: deleteDocV2
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/workspaceId'
      - $ref: '#/components/parameters/docId'
      responses:
        '200':
          description: Confirmation that the request was applied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDocResult'
        '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>/docs/<your doc id>''

          res = requests.delete(uri, headers=headers).json()


          # => Delete the doc

          '
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X DELETE \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>' |\n# => Delete the doc\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/revive:
    post:
      summary: Revive doc
      description: Revives a deleted doc in the organization
      operationId: reviveDocV2
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/workspaceId'
      - $ref: '#/components/parameters/docId'
      responses:
        '200':
          description: Doc URL of the revived doc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviveDocResult'
        '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>/docs/<your doc id>/revive''

          res = requests.post(uri, headers=headers, json=payload)

          res = requests.delete(uri, headers=headers).json()


          # => Revive the deleted doc

          '
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/revive'\n# => Revive the deleted doc\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/move:
    post:
      summary: Move doc
      description: Moves a doc to another folder within the organization
      operationId: moveDocV2
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/workspaceId'
      - $ref: '#/components/parameters/docId'
      requestBody:
        description: Parameters for moving the doc.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveDocRequest'
      responses:
        '200':
          description: Confirmation that the request was applied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveDocResult'
        '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>/docs/<your doc id>/move'\npayload = {\n  'destinationFolderId': 'fl-AbCDeFGHIj',\n}\nres = requests.post(uri, headers=headers, json=payload)\nres = requests.delete(uri, headers=headers).json()\n\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n"
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/move' \\\n  -d '{\"destinationFolderId\": \"fl-AbCDeFGHIj\"}}'\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/docs/{docId}:
    get:
      deprecated: true
      summary: Get doc metadata
      description: Returns metadata for a specific doc
      operationId: getDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/docId'
      - name: fetchPermissionsMode
        description: How to fetch permissions for a doc. Defaults to list all permissions.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/FetchPermissionsMode'
      responses:
        '200':
          description: Metadata for the doc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Doc'
        '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>/docs/<your doc id>''

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


          print(f''Doc name is: {res["name"]}'')

          '
      - 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>/docs/<your doc id>' |\n  jq .name\n"
    delete:
      deprecated: true
      summary: Delete doc
      description: Deletes an existing doc
      operationId: deleteDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/docId'
      responses:
        '200':
          description: Confirmation that the request was applied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDocResult'
        '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>/docs/<your doc id>''

          res = requests.delete(uri, headers=headers).json()


          # => Delete the doc

          '
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X DELETE \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>' |\n# => Delete the doc\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/docs/{docId}/revive:
    post:
      deprecated: true
      summary: Revive doc
      description: Revives a deleted doc in the organization
      operationId: reviveDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/docId'
      responses:
        '200':
          description: Doc URL of the revived doc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviveDocResult'
        '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>/docs/<your doc id>/revive''

          res = requests.post(uri, headers=headers, json=payload)

          res = requests.delete(uri, headers=headers).json()


          # => Revive the deleted doc

          '
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/revive'\n# => Revive the deleted doc\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /organizations/{organizationId}/docs/{docId}/move:
    post:
      deprecated: true
      summary: Move doc
      description: Moves a doc to another folder within the organization
      operationId: moveDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/docId'
      requestBody:
        description: Parameters for moving the doc.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveDocRequest'
      responses:
        '200':
          description: Confirmation that the request was applied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveDocResult'
        '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>/docs/<your doc id>/move'\npayload = {\n  'destinationFolderId': 'fl-AbCDeFGHIj',\n}\nres = requests.post(uri, headers=headers, json=payload)\nres = requests.delete(uri, headers=headers).json()\n\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n"
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n  'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/move' \\\n  -d '{\"destinationFolderId\": \"fl-AbCDeFGHIj\"}}'\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n"
    servers:
    - url: https://docs.superhuman.com/apis/admin/v1
      description: Superhuman Docs Admin API (v1)
  /docs:
    get:
      summary: List available docs
      description: 'Returns a list of documents accessible by the user, and which they have opened at least once. These are returned in the same order as on the docs page: reverse chronological by the latest event relevant to the user (last viewed, edited, or shared).'
      operationId: listDocs
      tags:
      - Docs
      parameters:
      - name: isOwner
        in: query
        description: Show only docs owned by the user.
        schema:
          type: boolean
      - name: isPublished
        in: query
        description: Show only published docs.
        schema:
          type: boolean
      - $ref: '#/components/parameters/query_2'
      - name: sourceDoc
        in: query
        description: Show only docs copied from the specified doc ID.
        schema:
          type: string
      - name: isStarred
        in: query
        description: If true, returns docs that are starred. If false, returns docs that are not starred.
        schema:
          type: boolean
      - name: inGallery
        in: query
        description: Show only docs visible within the gallery.
        schema:
          type: boolean
      - name: workspaceId
        in: query
        description: Show only docs belonging to the given workspace.
        schema:
          type: string
      - name: folderId
        in: query
        description: Show only docs belonging to the given folder.
        schema:
          type: string
      - $ref: '#/components/parameters/limit_2'
      - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          description: List of documents matching the query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocList_2'
        '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/v1/docs'\nparams = {\n  'isOwner': True,\n  'query': 'New',\n}\nres = requests.get(uri, headers=headers, params=params).json()\n\nprint(f'First doc is: {res[\"items\"][0][\"name\"]}')\n# => First doc is: New Document\n"
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n  'https://docs.superhuman.com/apis/v1/docs' |\n  jq .items[0].name\n# => \"New Document\"\n"
      - label: Google Apps Script
        lang: javascript
        source: '// Import the SuperhumanDocs library via Resource->Libraries...:

          // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl

          SuperhumanDocs.authenticate(''<your API token>'');

          var docs = SuperhumanDocs.listDocs().items;

          Logger.log(''First doc is '' + docs[0].name);

          // => First doc is: New Document

          '
    post:
      summary: Create doc
      description: Creates a new document, optionally copying an existing document. Note that creating a document requires you to be a Doc Maker in the applicable workspace (or be auto-promoted to one).
      operationId: createDoc
      tags:
      - Docs
      requestBody:
        description: Parameters for creating the doc.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocCreate'
      responses:
        '201':
          description: Info about the created doc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentCreationResult'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
      x-codeSamples:
      - label: Python 3.13
        lang: python
        source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = f'https://docs.superhuman.com/apis/v1/docs'\npayload = {\n  'title': 'Project Tracker',\n}\nreq = requests.post(uri, headers=headers, json=payload)\nreq.raise_for_status() # Throw if there was an error.\nres = req.json()\n\nprint(f'New doc created with name \"{res[\"name\"]}\"')\n# => New doc created with name \"Project Tracker\"\n"
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"title\": \"Project Tracker\"}' \\\n  'https://docs.superhuman.com/apis/v1/docs' |\n  jq .name\n# => \"Project Tracker\"\n"
      - label: Google Apps Script
        lang: javascript
        source: '// Import the SuperhumanDocs library via Resource->Libraries...:

          // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl

          SuperhumanDocs.authenticate(''<your API token>'');

          var res = SuperhumanDocs.createDoc({title: ''Project Tracker''});

          Logger.log(''New doc created with name '' + res.name);

          // => First doc in the results is: New Document

          '
    servers:
    - url: https://docs.superhuman.com/apis/v1
      description: Superhuman Docs API (v1)
  /docs/{docId}:
    get:
      summary: Get info about a doc
      description: Returns metadata for the specified doc.
      operationId: getDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/docId_2'
      responses:
        '200':
          description: Basic document metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Doc_2'
        '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 = f''https://docs.superhuman.com/apis/v1/docs/<doc ID>''

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


          print(f''The name of the doc is {res["name"]}'')

          # => The name of the doc is New Document

          '
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n  'https://docs.superhuman.com/apis/v1/docs/<doc ID>' |\n  jq .name\n# => \"New Document\"\n"
      - label: Google Apps Script
        lang: javascript
        source: '// Import the SuperhumanDocs library via Resource->Libraries...:

          // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl

          SuperhumanDocs.authenticate(''<your API token>'');

          var docInfo = SuperhumanDocs.getDoc(''<doc ID>'');

          Logger.log(''The name of the doc is '' + docInfo.name);

          // => The name of the doc is New Document

          '
    delete:
      summary: Delete doc
      description: Deletes a doc.
      operationId: deleteDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/docId_2'
      responses:
        '202':
          description: A result indicating that the doc was deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocDelete'
        '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 = f''https://docs.superhuman.com/apis/v1/docs/<doc ID>''

          res = requests.delete(uri, headers=headers).json()

          '
      - label: Shell
        lang: shell
        source: "curl -s -X DELETE -H 'Authorization: Bearer <your API token>' \\\n  'https://docs.superhuman.com/apis/v1/docs/<doc ID>' |\n"
      - label: Google Apps Script
        lang: javascript
        source: '// Import the SuperhumanDocs library via Resource->Libraries...:

          // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl

          SuperhumanDocs.authenticate(''<your API token>'');

          var docInfo = SuperhumanDocs.deleteDoc(''<doc ID>'');

          // => The given doc is now deleted

          '
    patch:
      summary: Update doc
      description: Updates metadata for a doc. Note that updating a doc title requires you to be a Doc Maker in the applicable workspace.
      operationId: updateDoc
      tags:
      - Docs
      parameters:
      - $ref: '#/components/parameters/docId_2'
      requestBody:
        description: Parameters for updating the doc.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocUpdate'
      responses:
        '200':
          description: Basic document metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocUpdateResult'
        '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 = f'https://docs.superhuman.com/apis/v1/docs/<doc ID>'\npayload = {\n  'title': 'New Doc Title',\n}\nreq = requests.patch(uri, headers=headers, json=payload)\n"
      - label: Shell
        lang: shell
        source: "curl -s -H 'Authorization: Bearer <your API token>' -X PATCH -H \"Content-Type: application/json\" \\\n  -d '{\"title\": \"New Doc Title\"}' \\\n  'https://docs.superhuman.com/apis/v1/docs/<doc ID>'\n"
      - label: Google Apps Script
        lang: javascript
        source: '// Import the SuperhumanDocs library via Resource->Libraries...:

          // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl

          SuperhumanDocs.authenticate(''<your API token>'');

          SuperhumanDocs.updateDoc(<doc ID>, {title: "New Doc Title"});

          '
    servers:
    - url: https://docs.superhuman.com/apis/v1
      description: Superhuman Docs API (v1)
components:
  schemas:
    WorkspacePrincipal:
      type: object
      required:
      - type
      - workspaceId
      additionalProperties: false
      properties:
        type:
          type: string
          description: The type of this principal.
          enum:
          - workspace
          x-tsType: PrincipalType.Workspace
        workspaceId:
          type: string
          description: WorkspaceId for the principal.
          example: ws-sdfmsdf9
 

# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coda-project/refs/heads/main/openapi/coda-project-docs-api-openapi.yml