openapi: 3.0.0 info: version: 0.0.2 title: Superhuman Admin Account Docs API license: name: Superhuman Developer Terms url: https://docs.superhuman.com/trust/developer description: "# Introduction\n\nThe Superhuman Docs Admin API is a RESTful API that allows programmatic access to administrative reports & capabilities within Superhuman Docs (formerly Coda).\n\nAccess to the Admin API is limited to enterprise organizations.\nOnly organization admins can use the Admin API for resources related to their organization.\n\nAs we update and release newer versions of the API, we reserve the right to remove\nolder APIs and functionality with a 3-month deprecation notice. We will post about such changes as well as announce\nnew features in the [Developers Central](https://connect.superhuman.com/c/developers-central) section of our Community,\nand update the [API updates](https://docs.superhuman.com/api-updates) doc.\n\n# Using the Admin API\n\nThe Superhuman Docs Admin REST API is designed to be straightforward to use. You can use the language and platform of your choice\nto make requests. To get a feel for the API, you can also use a tool like [Postman](https://www.getpostman.com/) or\n[Insomnia](https://insomnia.rest/).\n\n## API Endpoint\n\nThis API uses a base path of `https://docs.superhuman.com/apis/admin/v1`.\n\n## Object Hierarchy\n\n### Organizations\n\nEnterprise customers have access to the Organization, an object that contains policy, rules, and audit events\nfor a set of workspaces and one or more domains. Users accessing Superhuman Docs via an Organization-registered domain are\nsubject to that Organization's policies including allowed forms of authentication,\ndoc & Pack sharing restrictions, etc.\n\n### Workspaces\n\nA workspace is your home base for all things Superhuman Docs. It will store your documents in an organized way, and you'll invite\nmembers into the workspace to help you get the job done. A workspace can be free or paid (depending on your plan),\nand as the workspace's Doc Maker or Doc Maker (Admin), you'll be able to dictate the rules for how it works.\n\n[Learn more about Workspaces in our help center](https://help.coda.io/hc/en-us/articles/39555775119117-Create-and-manage-your-Coda-workspace).\n\n### Folders\n\nWe use folders to keep docs organized in the workspace (think departments, teams, and projects). Your docs are\nwhere the true work gets done with all of your tables, text, and app-like solutions. Folders contain docs within\nthe workspace.\n\n[Learn more about Folders in our help center](https://help.coda.io/hc/en-us/articles/39555852126605-Create-and-share-folders).\n\n### Docs\n\nDocuments are foundational, top-level collaborative projects that contain pages.\n\n### Pack configurations\n\nPack configurations are the settings that define how a Pack may be used within an organization.\n\n### Pack configuration permissions\n\nPack configuration permissions are the settings that define which principals may use a Pack configuration.\n\n### Pack requests\n\nWhen Pack configurations are turned on inside an organization. Pack requests are requests to use a Pack submitted by\nusers in the organization.\n\n### Pages\n\nIndividual pages within a doc offer canvases containing rich text, tables, controls, and other objects.\n\n## Audit events\n\nAudit events contain records of user login/logout activities and other operations performed within a Superhuman Docs organization.\nAudit events are critical to an enterprise's Security Monitoring efforts. It enables Security professionals to proactively\nanalyze the audit events for any suspicious behavior within a Superhuman Docs organization and help them in forensic investigations\nin case of a security breach. Audit events also enable administrators to write their own applications to understand their\nusers' usage of Superhuman Docs.\n\n### Audit event actions\n\nThe following entity types and actions are audited.\n\n| Entity Type | Action Name | Description |\n| ----------- | ----------- | ----------- |\n| agentInstance | AcceptCustomAgentInvitation | Accept an invitation to access a custom agent |\n| agentInstance | AgentScheduleTriggerFired | A scheduled agent trigger fired |\n| agentInstance | CreateAgentInstance | Create a new agent instance |\n| agentInstance | CreateCustomAgentInvitation | Send an invitation to share a custom agent |\n| agentInstance | DeclineCustomAgentInvitation | Decline an invitation to access a custom agent |\n| agentInstance | DeleteAgentInstance | Delete an agent instance |\n| agentInstance | DeleteCustomAgentInvitation | Revoke a pending invitation to a custom agent |\n| agentInstance | StartAgentChat | Start a new agent chat session |\n| agentInstance | UpdateAgentInstance | Update an agent instance |\n| agentInstance | UpdateAgentInstanceSharing | Update sharing permissions on an agent instance |\n| agentToolCall | ApproveAgentToolCall | Approve a tool call during an agent instance session |\n| agentToolCall | ExecuteAgentToolCall | Execute a tool call during an agent instance session |\n| agentToolCall | IgnoreAgentToolCall | Ignore a tool call during an agent instance session |\n| agentToolCall | RejectAgentToolCall | Reject a tool call during an agent instance session |\n| apiToken | DeleteApiToken | Delete an API token |\n| apiToken | GenerateApiToken | Generate an API token |\n| billingAccount | AddBillingGroup | Add a billing group to a billing account |\n| billingAccount | AddBillingGroupAdmin | Assign a billing group admin |\n| billingAccount | DeleteBillingGroup | Delete a billing group from a billing account |\n| billingAccount | RemoveBillingGroupAdmin | Remove a billing group admin |\n| billingAccount | UpdateBillingAccountSettings | Update settings for a billing account |\n| brainQuery | BrainStructuredQuery | Query Coda Brain for structured data |\n| brainQuery | BrainUnstructuredQuery | Query Coda Brain for unstructured data |\n| doc | AddDocPack | Install a Pack within a doc |\n| doc | CopyDoc | Copy a doc to a new location |\n| doc | CopyPages | Copy pages and sub pages within a doc to a new location |\n| doc | CopyTemplate | Copy template to an existing doc |\n| doc | CreateDoc | Create a new doc |\n| doc | DeleteAllReferencingSyncPageTunnels | Delete all sync page tunnels referencing a doc |\n| doc | DeleteDoc | Delete a doc |\n| doc | DeleteDocPack | Remove usage of a Pack from a doc |\n| doc | EditDoc | Edit a doc |\n| doc | ExportDocContent | Export doc content |\n| doc | MoveDoc | Move a doc to a different folder |\n| doc | OpenDoc | Opening a doc for reading, commenting or editing. |\n| doc | ReviveDoc | Revive a deleted doc |\n| doc | SubmitForm | Submit through a form |\n| doc | UpdateDocPermissions | Update sharing permissions on a doc |\n| docPackConnection | CreateExternalConnection | Create a new Pack connection |\n| docPackConnection | DeleteExternalConnection | Delete a Pack connection |\n| docPackConnection | UpdateExternalConnection | Update a Pack connection |\n| folder | CreateFolder | Create a new folder |\n| folder | DeleteFolder | Delete a folder |\n| folder | MoveFolder | Move a folder to a different parent |\n| folder | UpdateFolderMembership | Update membership on a folder |\n| folder | UpdateFolderPermissions | Update sharing permissions on a folder |\n| folder | UpdateFolderSettings | Update folder settings |\n| group | CreateGroup | Create a new group |\n| group | DeleteGroup | Delete a group |\n| group | UpdateGroup | Update group properties |\n| import | CompleteImport | Complete an import |\n| import | FailImport | Fail an import |\n| import | OnboardItem | Onboard a single source item during an import |\n| import | StartImport | Start an import |\n| importPreference | AddImportPreference | Add an import preference for an importer |\n| importPreference | DeleteImportPreference | Delete an import preference for an importer |\n| importPreference | UpdateImportPreference | Update an import preference for an importer |\n| ingestion | CreateIngestion | Create a new Coda Brain ingestion |\n| ingestion | CreateIngestionPermissions | Create Coda Brain ingestion permissions |\n| ingestion | DeleteIngestion | Delete a Coda Brain ingestion |\n| ingestion | DeleteIngestionPermissions | Delete Coda Brain ingestion permissions |\n| ingestion | UpdateIngestion | Update a Coda Brain ingestion |\n| legalHold | CreateLegalHold | Create a new legal hold |\n| legalHold | DeleteLegalHold | Delete a legal hold |\n| legalHold | UpdateLegalHold | Update legal hold |\n| legalHoldExport | CreateLegalHoldExport | Create a new legal hold export |\n| legalHoldExport | DeleteLegalHoldExport | Delete a legal hold export |\n| organization | AddBlockedDomains | Add domains to the blocked domains list |\n| organization | AddTrustedDomains | Add domains to the trusted domains list |\n| organization | ClaimDocOwnership | Claim ownership of a doc after the owner is deactivated |\n| organization | OrganizationPackAccessRequestBlocked | A user attempted to request Pack access while the organization administrator has disabled Pack access requests |\n| organization | OrganizationPackAccessRequested | A user requested access to a Pack |\n| organization | RemoveBlockedDomains | Remove domains from the blocked domains list |\n| organization | RemoveTrustedDomains | Remove domains from the trusted domains list |\n| organization | TransferDocs | Transfer docs from one user to another |\n| organization | UpdateOrganizationSettings | Update organization settings |\n| organization | UpdateOrganizationUserActivation | Update a user's activation status in an organization |\n| organization | UpdateOrganizationUserRole | Add or remove user from organization roles |\n| organization | UpdateWorkspaceAiControls | Update workspace AI controls |\n| pack | AddPackConfigurationPermission | Add a Pack configuration permission |\n| pack | AllowPackAccessRequest | A user was granted access to a Pack |\n| pack | AutoApprovePack | A Pack was auto-approved upon creation per the organization policy |\n| pack | CancelPackReview | Cancel a pending Pack review |\n| pack | CreatePack | Create a new Pack |\n| pack | CreatePackConfiguration | Create a new Pack configuration |\n| pack | CreatePackInvitation | Create a Pack invitation |\n| pack | CreatePackReview | Submit a Pack for Superhuman GO review |\n| pack | DeleteAllConfigurationsOnPack | Delete all configurations for a Pack |\n| pack | DeletePack | Delete a Pack |\n| pack | DeletePackConfiguration | Delete a Pack configuration |\n| pack | DeletePackConfigurationOAuth | Delete OAuth configuration metadata associated with a Pack configuration |\n| pack | DenyPackAccessRequest | A user was denied access to a Pack |\n| pack | RemovePackConfigurationPermission | Delete a Pack configuration permission |\n| pack | SetPackConfigurationOAuth | Set OAuth configuration metadata associated with the Pack configuration |\n| pack | SetPackConfigurationPermissions | Set permissions for a Pack configuration |\n| pack | UpdatePackConfiguration | Update a Pack configuration |\n| pack | UpdatePackListingDraft | Update a Pack listing draft |\n| pack | UpdatePackPermissions | Update Pack permissions |\n| packControl | SetPackControl | Set Pack control for an organization |\n| syncPage | OpenSyncPage | Opening a sync page for reading. |\n| syncPageTunnel | CreateSyncPageTunnel | Create a sync page tunnel |\n| syncPageTunnel | DeleteSyncPageTunnel | Delete a sync page tunnel |\n| syncPageTunnel | UpdateSyncPageTunnel | Update a sync page tunnel |\n| user | CreateUser | Create a new user |\n| user | DeleteUser | Delete an existing user |\n| user | ExportUserData | Export own personal data |\n| user | IssueOAuthToken | Issue an OAuth access/refresh token for a user |\n| user | LogInUser | Login activity of a user |\n| user | LogOutUser | Logout activity of a user |\n| user | RenewOAuthToken | Renew an OAuth access token for a user |\n| user | ResetUserPassword | Reset a user's password |\n| user | RevokeAllOAuthTokens | Revoke all OAuth tokens for a user |\n| user | RevokeOAuthToken | Revoke a single OAuth refresh token for a user |\n| user | UpdateUserAccount | Update a user's account details |\n| user | UpdateUserPassword | Update a user's password |\n| webhook | CreateWebhook | Create a new webhook subscription |\n| webhook | DeleteWebhook | Delete a webhook subscription |\n| webhook | ResetWebhook | Resets a webhook subscription |\n| webhook | UpdateWebhook | Updates parameters for an existing webhook subscription |\n| workspace | CreateCustomIcon | Create a custom icon in a workspace |\n| workspace | CreateWorkspace | Create a new workspace |\n| workspace | DeleteCustomIcon | Delete a custom icon in a workspace |\n| workspace | DeleteWorkspace | Delete a workspace |\n| workspace | ExportWorkspaceMembers | Export workspace members roster |\n| workspace | OffboardWorkspaceUser | Offboard a removed user from a workspace |\n| workspace | PinDocToWorkspace | Pin a doc to a workspace |\n| workspace | ReinstateWorkspaceUser | Allow a user to be re-added to a workspace |\n| workspace | UnpinDocFromWorkspace | Unpin a doc from a workspace |\n| workspace | UpdateWorkspaceSettings | Update workspace settings |\n| workspace | UpdateWorkspaceUserBrainRole | Update a user's Brain role in a workspace |\n| workspace | UpdateWorkspaceUserRole | Update a user's role in a workspace |\n\n### More information\nFor more information about the Superhuman Docs Admin API and these events,\n[detailed information and examples are available](https://docs.superhuman.com/@documentation/admin-audit-api-events-and-documentation).\n\n## Webhooks\n\nWebhooks enable an application to receive notifications of audit events in Superhuman Docs as they occur.\n\nRather than having to \"poll\" repeatedly for new audit events, a webhook will \"push\" events to your internet-accessible\nendpoint via HTTP `POST` requests. This can be much more efficient and convenient for an internet-accessible service.\n\nIt is important to note that webhooks do require a server or server-like endpoint accesible on the internet at all times\nto receive these notifications. For simpler scenarios, it may be easier to just poll for audit events rather than host\nand maintain a server on the internet.\n\n### Webhook Considerations\n\nThis webhook implementation aims to deliver events within a few minutes of occurring under normal operating conditions.\n\nThe system will attempt retries when it detects failures, so it will be possible for you to receive the same events\nmore than once depending on errors or timeouts occurring in your server or in the network infrastructure between Superhuman Docs\nand your server. Once delivered successfully, it is not possible to replay webhook notifications.\n\nTargets are expected to respond within 10 seconds before delivery times out and is considered a failure.\n\nFailures are retried using exponential backoff timing; after 8 hours of consecutive failures, Superhuman Docs will give up and\nplace the webhook into a disabled state.\n\n### Webhook Setup\n\nOnce a new webhook connection is established, an initial handshake will be attempted in order to prove that the target\nis available on the internet and is owned by the registering entity. In addition, any time the webhook is updated\nto point to a new target URL, the handshake procedure will be kicked off.\n\nAfter the initial handshake completes successfully, new audit events will immediately begin to flow to the target.\n\nIn the event that the handshake fails, the `reset` API can be used to force the webhook to retry the handshake process.\n\n### Webhook Handshake details\n\nTo prove that the target URL is available on the internet and is a valid webhook target, a handshake process is\nstarted anytime a new target URL is set on on a webhook. This process is asynchronous to the webhook setup API call.\n\nSuperhuman Docs will send a HTTP `GET` request to the registered target URL with a HTTP header named `X-Webhook-Code`. The\ntarget must respond with a standard `200` or `204` HTTP response code and echo back the same header key and its value.\n\n### Webhook Payload details\n\nOnce the webhook handshake has completed successfully, Superhuman Docs will send batches of audit events to the target URL using\nHTTP `POST` requests.\n\nEach notifications the target receives will include:\n\n* A `X-Webhook-Signature` header which enables the server to verify the payload is genuine and originated from Superhuman Docs.\nThis code is a SHA-256 HMAC of the stringified body of the POST request using the Superhuman Docs-generated secret key available\non the webhook object.\n* A JSON body with key `events` which contains an array of audit events using the same format as\nreturned by the `listEvents` endpoint detailed below.\n\n### Payload verification\n\nSample javascript code fragment for verifying a webhook payload originated from Superhuman Docs:\n\n```javascript\nconst crypto = require('crypto');\n\n// This field is available on the Superhuman Docs webhook object.\nconst signatureKey = 'some value';\n\n// These come from the webhook `POST` request to your server\nconst headers = {'X-Webhook-Signature': 'abc123'};\nconst body = {events: []};\n\nconst calculatedSignature = crypto\n .createHmac('SHA256', signatureKey)\n .update(JSON.stringify(body))\n .digest(\"hex\");\n\nconst isValidSignature = crypto.timingSafeEqual(\n Buffer.from(calculatedSignature),\n Buffer.from(headers['X-Webhook-Signature']),\n);\n```\n\n## List Endpoints\n\nEndpoints supporting listing of resources have the following fields:\n\n - `items`: An array containing the listed resources, limited by the `limit` or `pageToken` query parameters\n - `nextPageLink`: If more results are available, an API link to the next page of results\n - `nextPageToken`: If more results are available, a page token that can be passed into the `pageToken` query parameter\n\n**The maximum page size may change at any time, and may be different for different endpoints.** Please do not rely on it\nfor any behavior of your application. If you pass a `limit` parameter that is larger than our maximum allowed limit,\nwe will only return as many results as our maximum limit. You should look for the presence of the `nextPageToken` on the\nresponse to see if there are more results available, rather than relying on a result set that matches your provided limit.\n\nTo fetch a subsequent page of results, pass the `pageToken` parameter. Set this parameter to the value given to you as the `nextPageToken`\nin a page response. If no value is provided, there are no more results available. You only need to pass the `pageToken` to get\nthe next page of results, you don't need to pass any of the parameters from your original request, as they are all\nimplied by the `pageToken`. Any other parameters provided alongside a `pageToken` will be ignored.\n\n## Rate Limiting\n\nThe Superhuman Docs Admin API sets a reasonable limit on the number of requests that can be made per minute. Once this limit is\nreached, calls to the API will start returning errors with an HTTP status code of 429.\n\n## OpenAPI/Swagger Spec\n\nIn an effort to standardize our API and make it accessible, we offer an OpenAPI 3.0 specification:\n\n- [OpenAPI 3.0 spec - YAML](https://docs.superhuman.com/apis/admin/v1/openapi.yaml)\n- [OpenAPI 3.0 spec - JSON](https://docs.superhuman.com/apis/admin/v1/openapi.json)\n" 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: 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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//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 ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs' |\n jq .items[0].name\n" /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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs/'' res = requests.get(uri, headers=headers).json() print(f''Doc name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs/' |\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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs/'' res = requests.delete(uri, headers=headers).json() # => Delete the doc ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X DELETE \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs/' |\n# => Delete the doc\n" /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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs//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 ' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//revive'\n# => Revive the deleted doc\n" /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 '}\nuri = 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//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 ' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//move' \\\n -d '{\"destinationFolderId\": \"fl-AbCDeFGHIj\"}}'\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n" /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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs/'' res = requests.get(uri, headers=headers).json() print(f''Doc name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs/' |\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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs/'' res = requests.delete(uri, headers=headers).json() # => Delete the doc ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X DELETE \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs/' |\n# => Delete the doc\n" /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 ''} uri = ''https://docs.superhuman.com/apis/admin/v1/organizations//docs//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 ' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//revive'\n# => Revive the deleted doc\n" /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 '}\nuri = 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//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 ' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//move' \\\n -d '{\"destinationFolderId\": \"fl-AbCDeFGHIj\"}}'\n# => Move the doc to folder with ID fl-AbCDeFGHIj\n" /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 '}\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 ' \\\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(''''); 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 '}\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 ' -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(''''); var res = SuperhumanDocs.createDoc({title: ''Project Tracker''}); Logger.log(''New doc created with name '' + res.name); // => First doc in the results is: New Document ' /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 ''} uri = f''https://docs.superhuman.com/apis/v1/docs/'' 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 ' \\\n 'https://docs.superhuman.com/apis/v1/docs/' |\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(''''); var docInfo = SuperhumanDocs.getDoc(''''); 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 ''} uri = f''https://docs.superhuman.com/apis/v1/docs/'' res = requests.delete(uri, headers=headers).json() ' - label: Shell lang: shell source: "curl -s -X DELETE -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/v1/docs/' |\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var docInfo = SuperhumanDocs.deleteDoc(''''); // => 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 '}\nuri = f'https://docs.superhuman.com/apis/v1/docs/'\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 ' -X PATCH -H \"Content-Type: application/json\" \\\n -d '{\"title\": \"New Doc Title\"}' \\\n 'https://docs.superhuman.com/apis/v1/docs/'\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); SuperhumanDocs.updateDoc(, {title: "New Doc Title"}); ' components: parameters: docId: name: docId description: ID of the doc. in: path required: true example: d-AbCDeFGHIj schema: type: string workspaceId: name: workspaceId description: ID of the workspace. in: path required: true example: ws-AbCDeFGHIj schema: type: string folderIds: name: folderIds description: Comma-separated list of folder IDs in: query explode: false example: - fl-AbCDeFGHIj schema: type: array items: type: string docAvailabilityState: name: docAvailabilityState description: If specified, filter docs by availability state. in: query required: false schema: $ref: '#/components/schemas/DocAvailabilityState' docId_2: name: docId description: ID of the doc. in: path required: true example: AbCDeFGH schema: type: string limit_2: name: limit description: Maximum number of results to return in this query. in: query example: 10 schema: type: integer minimum: 1 default: 25 query_2: name: query description: Search term used to filter down results. in: query example: Supercalifragilisticexpialidocious schema: type: string workspaceIds: name: workspaceIds description: Comma-separated list of workspace IDs in: query explode: false example: - ws-AbCDeFGHIj schema: type: array items: type: string docTypes: name: docTypes description: Comma-separated list of doc types to include in results. If omitted, defaults to Doc. in: query explode: false example: doc,template required: false schema: type: array items: $ref: '#/components/schemas/DocType' organizationId: name: organizationId description: ID of the organization. in: path required: true example: org-AbCDeFGHIj schema: type: string docIds: name: docIds description: List of IDs of docs to retrieve. in: query example: - Wd6s6JvqOg - 2D3VqCFAyt required: false explode: false schema: type: array items: type: string pageToken: name: pageToken description: An opaque token used to fetch the next page of results. in: query example: eyJsaW1pd 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 schemas: DocReference: x-schema-name: DocReference description: Reference to a document. type: object required: - id - type - browserLink - href additionalProperties: false properties: id: type: string description: ID of the document. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the document. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the document. example: https://docs.superhuman.com/d/_dAbCDeFGH DocAvailabilityState: x-schema-name: DocAvailabilityState description: The availability state of a doc. type: string enum: - online - deleted x-tsEnumNames: - Online - Deleted SharedWithExternalDomainFilter: x-schema-name: SharedWithExternalDomainFilter description: Filter for docs directly shared with a user external to the organization. type: boolean nullable: true x-no-default: true Doc: x-schema-name: Doc description: Info about a document. type: object required: - type - docType - id - name - href - browserLink - folderId - workspaceId properties: type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc docType: $ref: '#/components/schemas/DocType' id: type: string description: ID of the document. example: AbCDeFGH name: type: string description: Name of the doc. example: Product Launch Hub icon: type: string description: Name of the icon. example: exclamation-circle-filled keyAccessRevoked: type: boolean description: True when this doc's encryption key can't be unwrapped (revoked or missing), so its name can't be decrypted. example: false href: type: string format: url description: API link to the document. example: https://docs.superhuman.com/apis/admin/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the document. example: https://docs.superhuman.com/d/_dAbCDeFGH folderId: type: string description: ID of the document's folder. example: fl-es129308 workspaceId: type: string description: ID of the document's workspace. example: ws-sdfmsdf9 owner: type: string format: email description: Email address of the doc owner example: april@example.com ownerName: type: string description: Name of the doc owner example: April Jane createdAt: type: string format: date-time description: Timestamp for when the doc was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the doc was last modified. example: '2018-04-11T00:18:57.946Z' acl: type: array items: $ref: '#/components/schemas/Permission' truncatedAcl: type: boolean description: True if the inline ACL field was truncated; use a paginated ACL query to fetch all permissions. aclSummary: $ref: '#/components/schemas/PermissionsSummary' searchHit: $ref: '#/components/schemas/DocSearchHit' docUsersLast90Days: deprecated: true type: number description: Deprecated, use documentAnalytics instead. example: 42 isDeleted: type: boolean description: True if the doc has been deleted. example: false installedPackCount: type: number description: Number of Packs installed in the doc. example: 3 discoverableViaWeb: type: boolean description: True if the doc is published and discoverable via the web. example: true documentAnalytics: $ref: '#/components/schemas/DocumentAnalytics' PageCreateContent: x-schema-name: PageCreateContent description: Content that can be added to a page at creation time, either text (or rich text) or a URL to create a full-page embed. discriminator: propertyName: type oneOf: - type: object required: - type - canvasContent additionalProperties: false properties: type: type: string description: Indicates a page containing canvas content. enum: - canvas x-tsType: PageType.Canvas canvasContent: $ref: '#/components/schemas/PageContent' - type: object required: - type - url additionalProperties: false properties: type: type: string description: Indicates a page that embeds other content. enum: - embed x-tsType: PageType.Embed url: type: string description: The URL of the content to embed. example: https://example.com renderMethod: $ref: '#/components/schemas/PageEmbedRenderMethod' - discriminator: propertyName: mode oneOf: - type: object required: - type - mode - sourcePageId - includeSubpages - sourceDocId additionalProperties: false properties: type: type: string description: Indicates a page that embeds other Superhuman Docs content. enum: - syncPage x-tsType: PageType.SyncPage mode: type: string description: Indicates a single-page sync page. enum: - page x-tsType: SyncPageType.Page includeSubpages: type: boolean description: Include subpages in the sync page. sourcePageId: type: string description: The page id to insert as a sync page. example: canvas-IjkLmnO sourceDocId: type: string description: The id of the document to insert as a sync page. example: sHbI4uIwiK - type: object required: - type - mode - sourceDocId additionalProperties: false properties: type: type: string description: Indicates a page that embeds other content. enum: - syncPage x-tsType: PageType.SyncPage mode: type: string description: Indicates a full doc sync page. enum: - document x-tsType: SyncPageType.Document sourceDocId: type: string description: The id of the document to insert as a sync page. example: sHbI4uIwiK PermissionCount: x-schema-name: PermissionCount description: Count of permissions. oneOf: - $ref: '#/components/schemas/ExactPermissionCount' - $ref: '#/components/schemas/MinPermissionCount' discriminator: propertyName: type mapping: exactCount: '#/components/schemas/ExactPermissionCount' minCount: '#/components/schemas/MinPermissionCount' DocCategory: x-schema-name: DocCategory type: object description: The category applied to a doc. required: - name additionalProperties: false properties: name: type: string description: Name of the category. example: Project Management DocUpdate: x-schema-name: DocUpdate description: Payload for updating a doc. type: object additionalProperties: false properties: title: type: string description: Title of the doc. example: Project Tracker iconName: type: string description: Name of the icon. example: rocket MoveDocResult: x-schema-name: MoveDocResult description: The result of moving a doc. type: object additionalProperties: false properties: {} SortDirection: x-schema-name: SortDirection type: string description: The direction to sort by. Defaults to ascending. enum: - asc - desc x-tsEnumNames: - Asc - Desc PageEmbedRenderMethod: x-schema-name: PageEmbedRenderMethod description: Render mode for a page using the Embed page type. type: string enum: - compatibility - standard x-tsEnumNames: - Compatibility - Standard Doc_2: x-schema-name: Doc description: Metadata about a document. type: object required: - id - type - href - browserLink - name - owner - ownerName - createdAt - updatedAt - workspace - folder - workspaceId - folderId additionalProperties: false properties: id: type: string description: ID of the document. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the document. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the document. example: https://docs.superhuman.com/d/_dAbCDeFGH icon: $ref: '#/components/schemas/Icon' name: type: string description: Name of the doc. example: Product Launch Hub owner: type: string format: email description: Email address of the doc owner. example: user@example.com ownerName: type: string description: Name of the doc owner. example: Some User docSize: $ref: '#/components/schemas/DocSize' sourceDoc: allOf: - type: object description: Reference to a document from which this document was copied, if any. additionalProperties: false - $ref: '#/components/schemas/DocReference' createdAt: type: string format: date-time description: Timestamp for when the doc was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the doc was last modified. example: '2018-04-11T00:18:57.946Z' published: $ref: '#/components/schemas/DocPublished' folder: $ref: '#/components/schemas/FolderReference' workspace: $ref: '#/components/schemas/WorkspaceReference' workspaceId: type: string description: ID of the Superhuman Docs workspace containing this document. example: ws-1Ab234 deprecated: true folderId: type: string description: ID of the Superhuman Docs folder containing this document. example: fl-1Ab234 deprecated: true DocSize: x-schema-name: DocSize description: The number of components within a document. type: object required: - totalRowCount - tableAndViewCount - pageCount - overApiSizeLimit additionalProperties: false properties: totalRowCount: type: number description: The number of rows contained within all tables of the doc. example: 31337 tableAndViewCount: type: number description: The total number of tables and views contained within the doc. example: 42 pageCount: type: number description: The total number of page contained within the doc. example: 10 overApiSizeLimit: type: boolean description: If true, indicates that the doc is over the API size limit. example: false WorkspaceReference: x-schema-name: WorkspaceReference description: Reference to a Superhuman Docs workspace. type: object required: - id - type - browserLink additionalProperties: false properties: id: type: string description: ID of the Superhuman Docs workspace. example: ws-1Ab234 type: type: string description: The type of this resource. enum: - workspace x-tsType: Type.Workspace organizationId: type: string description: ID of the organization bound to this workspace, if any. example: org-2Bc456 browserLink: type: string format: url description: Browser-friendly link to the Superhuman Docs workspace. example: https://docs.superhuman.com/docs?workspaceId=ws-1Ab234 name: type: string description: Name of the workspace; included if the user has access to the workspace. example: My workspace DomainPrincipal: type: object required: - domain - type additionalProperties: false properties: type: type: string description: The type of this principal. enum: - domain x-tsType: PrincipalType.Domain domain: type: string description: Domain for the principal. example: domain.com FolderReference: x-schema-name: FolderReference description: Reference to a Superhuman Docs folder. type: object required: - id - type - browserLink additionalProperties: false properties: id: type: string description: ID of the Superhuman Docs folder. example: fl-1Ab234 type: type: string description: The type of this resource. enum: - folder x-tsType: Type.Folder browserLink: type: string format: url description: Browser-friendly link to the folder. example: https://docs.superhuman.com/folders/fl-1Ab234 name: type: string description: Name of the folder; included if the user has access to the folder. example: My docs DateActivity: x-schema-name: DateActivity description: Type of doc activity date. type: string enum: - lastModified - created x-tsEnumNames: - LastModified - Created DocType: x-schema-name: DocType type: string enum: - doc - form - template x-tsEnumNames: - Doc - Form - Template AccessType: x-schema-name: AccessType description: Type of access. type: string enum: - readonly - write - comment - none x-tsEnumNames: - ReadOnly - Write - Comment - None EmailPrincipal: type: object required: - email - type additionalProperties: false properties: type: type: string description: The type of this principal. enum: - email x-tsType: PrincipalType.Email email: type: string description: Email for the principal. example: example@domain.com DocumentCreationResult: x-schema-name: Doc description: The result of a doc creation. type: object required: - id - type - href - browserLink - name - owner - ownerName - createdAt - updatedAt - workspace - folder - workspaceId - folderId additionalProperties: false properties: id: type: string description: ID of the document. example: AbCDeFGH type: type: string description: The type of this resource. enum: - doc x-tsType: Type.Doc href: type: string format: url description: API link to the document. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH browserLink: type: string format: url description: Browser-friendly link to the document. example: https://docs.superhuman.com/d/_dAbCDeFGH icon: $ref: '#/components/schemas/Icon' name: type: string description: Name of the doc. example: Product Launch Hub owner: type: string format: email description: Email address of the doc owner. example: user@example.com ownerName: type: string description: Name of the doc owner. example: Some User docSize: $ref: '#/components/schemas/DocSize' sourceDoc: allOf: - type: object description: Reference to a document from which this document was copied, if any. additionalProperties: false - $ref: '#/components/schemas/DocReference' createdAt: type: string format: date-time description: Timestamp for when the doc was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the doc was last modified. example: '2018-04-11T00:18:57.946Z' published: $ref: '#/components/schemas/DocPublished' folder: $ref: '#/components/schemas/FolderReference' workspace: $ref: '#/components/schemas/WorkspaceReference' workspaceId: type: string description: ID of the Superhuman Docs workspace containing this document. example: ws-1Ab234 deprecated: true folderId: type: string description: ID of the Superhuman Docs folder containing this document. example: fl-1Ab234 deprecated: true requestId: type: string description: An arbitrary unique identifier for this request. example: abc-123-def-456 PermissionsSummary: x-schema-name: PermissionsSummary description: Summary of permissions. type: object required: - worldwideAccess - domainShares - workspaceShares - numGroupPermissions - numUserPermissions additionalProperties: false properties: worldwideAccess: $ref: '#/components/schemas/AccessType' domainShares: type: array items: type: string description: List of domains that have access workspaceShares: type: array items: type: string description: List of workspaces that have access numGroupPermissions: $ref: '#/components/schemas/PermissionCount' numUserPermissions: $ref: '#/components/schemas/PermissionCount' PageContent: x-schema-name: PageContent description: 'Content to be added or replaced with in a page (canvas). ' type: object additionalProperties: false required: - format - content properties: format: $ref: '#/components/schemas/PageContentFormat' content: type: string description: The actual page content. example:

This is rich text

DocUpdateResult: x-schema-name: DocUpdate description: The result of a doc update type: object additionalProperties: false properties: {} DocListSortField: x-schema-name: DocListSortField type: string description: The field to sort by. enum: - name - createdAt - lastActiveDate - numPages - numPageViewsLast90Days - numCollaboratorsLast90Days x-tsEnumNames: - Name - CreatedAt - LastActiveDate - NumPages - NumPageViewsLast90Days - NumCollaboratorsLast90Days nextPageToken: description: If specified, an opaque token used to fetch the next page of results. type: string example: eyJsaW1pd AnyonePrincipal: type: object required: - type additionalProperties: false properties: type: type: string description: The type of this principal. enum: - anyone x-tsType: PrincipalType.Anyone Principal: x-schema-name: Principal description: Metadata about a principal. oneOf: - $ref: '#/components/schemas/EmailPrincipal' - $ref: '#/components/schemas/GroupPrincipal' - $ref: '#/components/schemas/DomainPrincipal' - $ref: '#/components/schemas/WorkspacePrincipal' - $ref: '#/components/schemas/AnyonePrincipal' discriminator: propertyName: type mapping: email: '#/components/schemas/EmailPrincipal' group: '#/components/schemas/GroupPrincipal' domain: '#/components/schemas/DomainPrincipal' workspace: '#/components/schemas/WorkspacePrincipal' anyone: '#/components/schemas/AnyonePrincipal' DocList_2: x-schema-name: DocList description: List of documents. type: object required: - items additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Doc_2' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/v1/docs?limit=20 nextPageToken: $ref: '#/components/schemas/nextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/nextPageLink' - type: string example: https://docs.superhuman.com/apis/v1/docs?pageToken=eyJsaW1pd Icon: x-schema-name: icon description: Info about the icon. type: object required: - name - type - browserLink additionalProperties: false properties: name: type: string description: Name of the icon. type: type: string description: MIME type of the icon browserLink: type: string format: url description: Browser-friendly link to an icon. example: https://cdn.coda.io/icons/png/color/icon-32.png NextPageToken: description: If specified, an opaque token used to fetch the next page of results. type: string example: eyJsaW1pd GroupPrincipal: type: object required: - groupId - groupName - type additionalProperties: false properties: type: type: string description: The type of this principal. enum: - group x-tsType: PrincipalType.Group groupId: type: string description: Group ID for the principal. example: grp-6SM9xrKcqW groupName: type: string description: Name of the group. example: Marketing team DocPublishMode: x-schema-name: DocPublishMode description: Which interaction mode the published doc should use. type: string enum: - view - play - edit x-tsEnumNames: - View - Play - Edit DocCreate: x-schema-name: DocCreate description: Payload for creating a new doc. type: object additionalProperties: false properties: title: type: string description: Title of the new doc. Defaults to 'Untitled'. example: Project Tracker sourceDoc: type: string description: An optional doc ID from which to create a copy. example: iJKlm_noPq timezone: type: string description: The timezone to use for the newly created doc. example: America/Los_Angeles folderId: type: string description: 'The ID of the folder within which to create this doc. Defaults to your "My docs" folder in the oldest workspace you joined; this is subject to change. You can get this ID by opening the folder in the docs list on your computer and grabbing the `folderId` query parameter. ' example: fl-ABcdEFgHJi initialPage: allOf: - type: object description: The contents of the initial page of the doc. additionalProperties: false - $ref: '#/components/schemas/PageCreate' nextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url Permission: x-schema-name: Permission description: A specific permission granted to a principal. type: object required: - type - principal - id - access additionalProperties: false properties: type: type: string description: The type of this resource. enum: - permission x-tsType: Type.Permission principal: $ref: '#/components/schemas/Principal' id: type: string description: ID for the Permission access: $ref: '#/components/schemas/AccessType' DocPublished: x-schema-name: DocPublished description: Information about the publishing state of the document. type: object required: - browserLink - discoverable - earnCredit - mode - categories additionalProperties: false properties: description: type: string description: Description of the published doc. example: Hello World! browserLink: type: string description: URL to the published doc. example: https://docs.superhuman.com/@user/hello-world imageLink: type: string description: URL to the cover image for the published doc. discoverable: type: boolean description: If true, indicates that the doc is discoverable. example: true earnCredit: type: boolean description: 'If true, new users may be required to sign in to view content within this document. You will receive Superhuman Docs credit for each user who signs up via your document. ' example: true mode: $ref: '#/components/schemas/DocPublishMode' categories: type: array description: Categories applied to the doc. example: - Project Management items: $ref: '#/components/schemas/DocCategory' 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 PageCreate: x-schema-name: PageCreate description: Payload for creating a new page in a doc. type: object additionalProperties: false properties: name: type: string description: Name of the page. example: Launch Status subtitle: type: string description: Subtitle of the page. example: See the status of launch-related tasks. iconName: type: string description: Name of the icon. example: rocket imageUrl: type: string description: Url of the cover image to use. example: https://example.com/image.jpg parentPageId: type: string description: The ID of this new page's parent, if creating a subpage. example: canvas-tuVwxYz pageContent: $ref: '#/components/schemas/PageCreateContent' MoveDocRequest: x-schema-name: MoveDocRequest description: Request payload for moving a doc. type: object required: - destinationFolderId properties: destinationFolderId: type: string description: The ID of the folder to move the doc to. example: fl-AbCDeFGHIj DocList: x-schema-name: DocList description: List of docs. type: object required: - items - href additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Doc' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/admin/v1/organizations//docs nextPageToken: $ref: '#/components/schemas/NextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/NextPageLink' - type: string example: https://docs.superhuman.com/apis/admin/v1/organizations//docs?pageToken=eyJsaW1pd DeleteDocResult: x-schema-name: DeleteDocResult description: The result of deleting a doc. type: object additionalProperties: false properties: {} SharedWithAnyoneFilter: x-schema-name: SharedWithAnyoneFilter description: Options for filtering a doc shared with anyone. type: string enum: - all - linkOnly - discoverableViaWeb x-tsEnumNames: - All - LinkOnly - DiscoverableViaWeb NextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url MinPermissionCount: x-schema-name: MinPermissionCount description: Minimum count of permissions. type: object required: - type - minCount additionalProperties: false properties: type: type: string description: The type of this resource. enum: - minCount x-tsType: PermissionCountType.MinCount minCount: type: number description: Minimum count of permissions. DocSearchHit: x-schema-name: DocSearchHit description: Details on where the search query appeared in the doc. type: object required: - matchText - browserLink additionalProperties: false properties: matchText: type: string description: Snippet of text from the doc showing context for the search match. example: 'Objective: Key Results: * Reach feature parity with previous version ' browserLink: type: string format: url description: Browser-friendly link to the location in the document where the search term appears. example: https://docs.superhuman.com/d/_dAbCDeFGH PageContentFormat: x-schema-name: PageContentFormat description: Supported content types for page (canvas) content. type: string enum: - html - markdown x-tsEnumNames: - Html - Markdown DocDelete: x-schema-name: DocDelete description: The result of a doc deletion. type: object additionalProperties: false properties: {} DocumentAnalytics: x-schema-name: DocumentAnalytics description: Metrics for a doc. type: object required: - numPages - numPageViewsLast90Days - numCollaboratorsLast90Days additionalProperties: false properties: lastActiveDate: type: string format: date-time description: Timestamp for when the doc was last accessed. example: '2018-04-11T00:18:57.946Z' numPages: type: number description: Number of pages in the doc. example: 3 numPageViewsLast90Days: type: number description: Number of page views in the last 90 days. example: 42 numCollaboratorsLast90Days: type: number description: Number of unique users that have viewed the doc in the last 90 days. example: 42 externallySharedUserDomains: type: array items: type: string format: email description: Domains of users external to the organization this doc is shared with. example: - gmail.com - outlook.com ReviveDocResult: x-schema-name: ReviveDocResult description: The result of reviving a doc. type: object additionalProperties: false required: - docUrl - browserLink - href properties: docUrl: type: string description: URL of the revived doc browserLink: type: string description: Browser link to the revived doc. href: type: string description: API URL (self-link) for the revived doc. ExactPermissionCount: x-schema-name: ExactPermissionCount description: Exact count of permissions. type: object required: - type - exactCount additionalProperties: false properties: type: type: string description: The type of this resource. enum: - exactCount x-tsType: PermissionCountType.ExactCount exactCount: type: number description: Exact count of permissions. FetchPermissionsMode: x-schema-name: FetchPermissionsMode type: string description: How to fetch permissions for a given doc. List returns all permissions (up to a limit), summary gives an aggregated permission summary, and none returns no permissions. enum: - list - summary - none x-tsEnumNames: - List - Summary - None responses: 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 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 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 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 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 ``` 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