openapi: 3.0.0 info: version: 0.0.2 title: Superhuman Docs Admin Account Pages 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: Pages description: 'Pages in Superhuman Docs offer canvases containing rich text, tables, controls, and other objects. ' paths: /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/pages: get: summary: List pages description: 'Returns a list of pages in the doc ' operationId: listPagesV2 tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/pageToken' responses: '200': description: List of pages. content: application/json: schema: $ref: '#/components/schemas/PageList' '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//pages'' res = requests.get(uri, headers=headers).json() print(f''First page 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//pages' |\n jq .items[0].name\n" /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/pages/{pageId}: get: summary: Get page information description: 'Returns information for a specific page ' operationId: getPageV2 tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/pageId' - $ref: '#/components/parameters/outputFormat' responses: '200': description: Information for the page. content: application/json: schema: $ref: '#/components/schemas/PageWithContent' '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//pages/'' res = requests.get(uri, headers=headers).json() print(f''Page name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages/' |\n jq .name\n" /organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/pageViewers: get: summary: List page viewers description: 'Returns users who viewed the pages in a doc in a given time range ' operationId: listPageViewersV2 tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/workspaceId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/sinceDate' - $ref: '#/components/parameters/untilDate' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/pageViewersLimit' responses: '200': description: List of page viewers for the given doc content: application/json: schema: $ref: '#/components/schemas/PageViewersList' '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//pageViewers'' res = requests.get(uri, headers=headers).json() print(f''Page name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//pageViewers |\n jq .name\n" /organizations/{organizationId}/docs/{docId}/pages: get: deprecated: true summary: List pages description: 'Returns a list of pages in the doc ' operationId: listPages tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/pageToken' responses: '200': description: List of pages. content: application/json: schema: $ref: '#/components/schemas/PageList' '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//pages'' res = requests.get(uri, headers=headers).json() print(f''First page 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//pages' |\n jq .items[0].name\n" /organizations/{organizationId}/docs/{docId}/pages/{pageId}: get: deprecated: true summary: Get page information description: 'Returns information for a specific page ' operationId: getPage tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/pageId' - $ref: '#/components/parameters/outputFormat' responses: '200': description: Information for the page. content: application/json: schema: $ref: '#/components/schemas/PageWithContent' '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//pages/'' res = requests.get(uri, headers=headers).json() print(f''Page name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages/' |\n jq .name\n" /organizations/{organizationId}/docs/{docId}/pageViewers: get: deprecated: true summary: List page viewers description: 'Returns users who viewed the pages in a doc in a given time range ' operationId: listPageViewers tags: - Pages parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/sinceDate' - $ref: '#/components/parameters/untilDate' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/pageViewersLimit' responses: '200': description: List of page viewers for the given doc content: application/json: schema: $ref: '#/components/schemas/PageViewersList' '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//pageViewers'' res = requests.get(uri, headers=headers).json() print(f''Page name is: {res["name"]}'') ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations//docs//pageViewers |\n jq .name\n" /docs/{docId}/pages: get: summary: List pages description: Returns a list of pages in a document. operationId: listPages tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/limit_2' - $ref: '#/components/parameters/pageToken' responses: '200': description: List of pages. content: application/json: schema: $ref: '#/components/schemas/PageList_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//pages'' res = requests.get(uri, headers=headers).json() print(f''The name of the first page is {res["items"][0]["name"]}'') # => The name of the first page is Page 1 ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages' |\n jq '.items[0].name'\n# => \"Page 1\"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var pages = SuperhumanDocs.listPages('''').items; Logger.log(''The name of the first page is '' + pages[0].name); // => The name of the first page is Page 1 ' post: summary: Create a page description: 'Create a new page in a doc. Note that creating a page requires you to be a Doc Maker in the applicable workspace. ' operationId: createPage tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' requestBody: description: Parameters for creating a page. required: true content: application/json: schema: $ref: '#/components/schemas/PageCreate' responses: '202': description: A result indicating that the creation request was queued for processing. content: application/json: schema: $ref: '#/components/schemas/PageCreateResult' '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//pages'\npayload = {\n 'name': 'New Page Name',\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'Created page {res[\"id\"]}')\n# => Created page \n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X POST -H \"Content-Type: application/json\" \\\n -d '{\"name\": \"New Page Name\"}' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages' |\n jq '\"Created page \" + .id'\n# => \"Created page \"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var res = SuperhumanDocs.createPage(, {name: "New Page Name"}); Logger.log(''Created page '' + res.id); // => Created page ' /docs/{docId}/pages/{pageIdOrName}: get: summary: Get a page description: Returns details about a page. operationId: getPage tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' responses: '200': description: Info about a page. content: application/json: schema: $ref: '#/components/schemas/Page_2' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' '410': $ref: '#/components/responses/GoneError' '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//pages/'' res = requests.get(uri, headers=headers).json() print(f''The name of this page is {res["name"]}'') # => The name of this page is Page 1 ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages/' |\n jq '.name'\n# => \"Page 1\"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var page = SuperhumanDocs.getPage('''', ''''); Logger.log(''The name of this page is '' + page.name); // => The name of this page is Page 1 ' put: summary: Update a page description: 'Update properties for a page. Note that updating a page title or icon requires you to be a Doc Maker in the applicable workspace. ' operationId: updatePage tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' requestBody: description: Parameters for updating a page. required: true content: application/json: schema: $ref: '#/components/schemas/PageUpdate' responses: '202': description: A result indicating that the update was queued for processing. content: application/json: schema: $ref: '#/components/schemas/PageUpdateResult' '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//pages/'\npayload = {\n 'name': 'New Page Name',\n}\nreq = requests.put(uri, headers=headers, json=payload)\nreq.raise_for_status() # Throw if there was an error.\nres = req.json()\n\nprint(f'Updated page {res[\"id\"]}')\n# => Updated page \n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X PUT -H \"Content-Type: application/json\" \\\n -d '{\"name\": \"New Page Name\"}' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages/' |\n jq '\"Updated page \" + .id'\n# => \"Updated page \"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var res = SuperhumanDocs.updatePage(, , {name: "New Page Name"}); Logger.log(''Updated page '' + res.id); // => Updated page ' delete: summary: Delete a page description: Deletes the specified page. operationId: deletePage tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' responses: '202': description: A result indicating that the delete was queued for processing. content: application/json: schema: $ref: '#/components/schemas/PageDeleteResult' '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 = f''https://docs.superhuman.com/apis/v1/docs//pages/'' req = requests.delete(uri, headers=headers) req.raise_for_status() # Throw if there was an error. res = req.json() print(f''Deleted page'') # => Deleted page ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X DELETE -H \"Content-Type: application/json\" \\\n 'https://docs.superhuman.com/apis/v1/docs//pages/' |\n jq 'if .statusMessage? == null then \"Deleted page\" else . end'\n# => \"Deleted pages\"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); SuperhumanDocs.deleteRows('''', ''''); Logger.log(''Deleted 2 rows''); // => Deleted page ' /docs/{docId}/pages/{pageIdOrName}/content: get: summary: List page content description: Returns a list of content elements in a page. operationId: listPageContent tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' - $ref: '#/components/parameters/pageContentLimit' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/contentFormat' responses: '200': description: List of page content elements. content: application/json: schema: $ref: '#/components/schemas/PageContentList' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' '410': $ref: '#/components/responses/GoneError' '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//pages//content'' res = requests.get(uri, headers=headers).json() print(f''The page has {len(res["items"])} content elements'') # => The page has 10 content elements ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages//content' |\n jq '.items | length'\n# => 10\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var content = SuperhumanDocs.listPageContent('''', ''''); Logger.log(''The page has '' + content.items.length + '' content elements''); // => The page has 10 content elements ' delete: summary: Delete page content description: 'Delete content from a page. You can delete specific elements by providing their IDs, or delete all content from the page. ' operationId: deletePageContent tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' requestBody: description: Parameters for deleting page content. required: false content: application/json: schema: $ref: '#/components/schemas/PageContentDelete' responses: '202': description: A result indicating that the deletion was queued for processing. content: application/json: schema: $ref: '#/components/schemas/PageContentDeleteResult' '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 ''} # Delete all content from the page uri = f''https://docs.superhuman.com/apis/v1/docs//pages//content'' req = requests.delete(uri, headers=headers) req.raise_for_status() res = req.json() print(f''Deleted all content from page {res["id"]}'') # => Deleted all content from page # Delete specific elements payload = {''elementIds'': [''cl-abc123'', ''cl-def456'']} req = requests.delete(uri, headers=headers, json=payload) req.raise_for_status() res = req.json() print(f''Deleted {len(payload["elementIds"])} elements from page {res["id"]}'') # => Deleted 2 elements from page ' - label: Shell lang: shell source: "# Delete specific elements\ncurl -s -H 'Authorization: Bearer ' -X DELETE \\\n -H \"Content-Type: application/json\" \\\n -d '{\"elementIds\": [\"cl-abc123\", \"cl-def456\"]}' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages//content' |\n jq '\"Deleted elements from page \" + .id'\n# => \"Deleted elements from page \"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); // Delete all content var res = SuperhumanDocs.deletePageContent('''', ''''); Logger.log(''Deleted all content from page '' + res.id); // => Deleted all content from page ' /docs/{docId}/pages/{pageIdOrName}/export: post: summary: Begin content export description: Initiate an export of content for the given page. operationId: beginPageContentExport tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' requestBody: description: Parameters for requesting a page content export. required: true content: application/json: schema: $ref: '#/components/schemas/BeginPageContentExportRequest' responses: '202': description: Export page content response. content: application/json: schema: $ref: '#/components/schemas/BeginPageContentExportResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' '410': $ref: '#/components/responses/GoneError' '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//pages//export'\npayload = {\n 'outputFormat': 'html',\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'Export status available at {res[\"href\"]}')\n# => Export status available at \n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X POST -H \"Content-Type: application/json\" \\\n -d '{\"outputFormat\": \"html\"}' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages//export' |\n jq '\"Export status available at \" + .href'\n# => Export status available at \n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var page = SuperhumanDocs.beginPageContentExport('''', '''', {outputFormat: ''html''}); Logger.log(''Export status available at '' + page.href); // => Export status available at ' /docs/{docId}/pages/{pageIdOrName}/export/{requestId}: get: summary: Content export status description: Check the status of a page content export operationId: getPageContentExportStatus tags: - Pages parameters: - $ref: '#/components/parameters/docId_2' - $ref: '#/components/parameters/pageIdOrName' - $ref: '#/components/parameters/requestId' responses: '200': description: Info about the page content export request. content: application/json: schema: $ref: '#/components/schemas/PageContentExportStatusResponse' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' '410': $ref: '#/components/responses/GoneError' '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//pages//export/'' res = requests.get(uri, headers=headers).json() print(f''Request status: {res["status"]}'') # => Request status: completed ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n -d '{\"outputFormat\": \"html\"}' \\\n 'https://docs.superhuman.com/apis/v1/docs//pages//export/' |\n jq .status\n# => completed\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var response = SuperhumanDocs.getPageContentExportStatus('''', '''', ''''); Logger.log(''Export status: '' + response.status); // => Export status: completed ' 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 contentFormat: name: contentFormat description: The format to return content in. Defaults to plainText. in: query example: plainText schema: type: string enum: - plainText default: plainText docId_2: name: docId description: ID of the doc. in: path required: true example: AbCDeFGH schema: type: string pageIdOrName: name: pageIdOrName description: 'ID or name of the page. Names are discouraged because they''re easily prone to being changed by users. If you''re using a name, be sure to URI-encode it. If you provide a name and there are multiple pages with the same name, an arbitrary one will be selected. ' x-sdk-description: 'ID or name of the page. Names are discouraged because they''re easily prone to being changed by users. Note that if you''re using a name and there are multiple pages with the same name, an arbitrary one will be returned. ' in: path required: true example: canvas-IjkLmnO schema: type: string sinceDate: name: sinceDate description: Limit results to activity on or after this date. in: query example: '2020-08-01' required: true schema: type: string format: date 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 requestId: name: requestId description: ID of the request. in: path required: true example: abc-123-def-456 schema: type: string organizationId: name: organizationId description: ID of the organization. in: path required: true example: org-AbCDeFGHIj schema: type: string untilDate: name: untilDate description: Limit results to activity on or before this date. in: query example: '2020-08-05' required: true schema: type: string format: date pageViewersLimit: name: pageViewersLimit description: Limit number of users returned per page. in: query schema: type: integer minimum: 1 default: 100 maximum: 500 pageContentLimit: name: limit description: Maximum number of content items to return in this query. in: query example: 50 schema: type: integer minimum: 1 maximum: 500 default: 50 pageToken: name: pageToken description: An opaque token used to fetch the next page of results. in: query example: eyJsaW1pd schema: type: string pageId: name: pageId description: ID of the page. in: path required: true example: canvas-AbCDeFGHIj schema: type: string outputFormat: name: outputFormat description: If specified, the format of the page or doc content to be returned. See export APIs for more output format options. in: query required: false example: LossyPlainText schema: $ref: '#/components/schemas/OutputFormat' 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: PageCreateResult: x-schema-name: PageCreateResult description: The result of a page creation. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the created page. example: canvas-tuVwxYz PersonValue: x-schema-name: PersonValue description: A named reference to a person, where the person is identified by email address. allOf: - $ref: '#/components/schemas/LinkedDataObject' - type: object additionalProperties: false required: - '@type' - name properties: '@type': type: string enum: - Person x-tsType: LinkedDataType.Person name: type: string description: The full name of the person. example: Alice Atkins email: type: string description: The email address of the person. example: alice@atkins.com PageUpdate: x-schema-name: PageUpdate description: Payload for updating a page. 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 isHidden: type: boolean description: Whether the page is hidden or not. Note that for pages that cannot be hidden, like the sole top-level page in a doc, this will be ignored. example: true contentUpdate: allOf: - type: object description: Content with which to update an existing page. additionalProperties: false - $ref: '#/components/schemas/PageContentUpdate' PageList_2: x-schema-name: PageList description: List of pages. type: object required: - items additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Page_2' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages?limit=20 nextPageToken: $ref: '#/components/schemas/nextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/nextPageLink' - type: string example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages?pageToken=eyJsaW1pd PageContentDelete: x-schema-name: PageContentDelete description: Payload for deleting content from a page. type: object additionalProperties: false properties: elementIds: type: array description: 'IDs of the elements to delete from the page. If omitted or empty, all content will be deleted. ' items: type: string example: - cl-lzqh0Q0poT - cl-abc123def Page_2: x-schema-name: Page description: Metadata about a page. type: object required: - id - type - href - name - isHidden - isEffectivelyHidden - browserLink - children - contentType additionalProperties: false properties: id: type: string description: ID of the page. example: canvas-IjkLmnO type: type: string description: The type of this resource. enum: - page x-tsType: Type.Page href: type: string format: url description: API link to the page. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages/canvas-IjkLmnO browserLink: type: string format: url description: Browser-friendly link to the page. example: https://docs.superhuman.com/d/_dAbCDeFGH/Launch-Status_sumnO 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. icon: $ref: '#/components/schemas/Icon' image: $ref: '#/components/schemas/Image' contentType: $ref: '#/components/schemas/PageType' isHidden: type: boolean description: Whether the page is hidden in the UI. example: true isEffectivelyHidden: type: boolean description: Whether the page or any of its parents is hidden in the UI. example: true parent: $ref: '#/components/schemas/PageReference_2' children: type: array items: $ref: '#/components/schemas/PageReference_2' authors: description: Authors of the page type: array items: $ref: '#/components/schemas/PersonValue' createdAt: type: string format: date-time description: Timestamp for when the page was created. example: '2018-04-11T00:18:57.946Z' createdBy: $ref: '#/components/schemas/PersonValue' updatedAt: type: string format: date-time description: Timestamp for when page content was last modified. example: '2018-04-11T00:18:57.946Z' updatedBy: $ref: '#/components/schemas/PersonValue' PageContentUpdate: x-schema-name: PageContentUpdate description: Payload for updating the content of an existing page. type: object additionalProperties: false required: - insertionMode - canvasContent properties: insertionMode: $ref: '#/components/schemas/PageContentInsertionMode' elementId: type: string example: cl-lzqh0Q0poT description: 'ID of the element on the page to use as a reference point for editing content. If provided, the operation will be relative to this element (e.g., append after it, prepend before it, replace it). If omitted, the operation will be performed on the entire page (e.g., append to end, prepend to beginning, replace all). ' canvasContent: $ref: '#/components/schemas/PageContent_2' PageContentInsertionMode: x-schema-name: PageContentInsertionMode description: Mode for updating the content on an existing page. type: string enum: - append - prepend - replace x-tsEnumNames: - Append - Prepend - Replace PageContentItemContent: x-schema-name: PageContentItemContent description: Content details of the item. type: object required: - style - format - content additionalProperties: false properties: style: $ref: '#/components/schemas/PageLineStyle' format: $ref: '#/components/schemas/PageContentItemContentFormat' content: type: string description: Content of the item in the specified format. example: This is a paragraph of text. lineLevel: type: integer description: 'Indentation level of the element. Present for indentable elements (paragraphs, blockquotes, and list items). ' example: 0 Image: x-schema-name: Image description: Info about the image. type: object required: - browserLink additionalProperties: false properties: browserLink: type: string format: url description: Browser-friendly link to an image. example: https://codahosted.io/docs/nUYhlXysYO/blobs/bl-lYkYKNzkuT/3f879b9ecfa27448 type: type: string description: MIME type of the image. width: type: number description: The width in pixels of the image. example: 800 height: type: number description: The height in pixels of the image. example: 600 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 PageViewersList: x-schema-name: PageViewersList description: List of viewers per page. type: object required: - items additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/PageViewersItem' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pageViewers nextPageToken: $ref: '#/components/schemas/NextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/NextPageLink' - type: string example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pageViewers?pageToken=eyJsaW1pd Page: x-schema-name: Page description: Info about a page. type: object required: - type - id - name - href - browserLink additionalProperties: false properties: type: type: string description: The type of this resource. enum: - page x-tsType: Type.Page id: type: string description: ID of the page. example: canvas-IjkLmnO href: type: string format: url description: API link to the page. example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages/ browserLink: type: string format: url description: Browser-friendly link to the page. example: https://docs.superhuman.com/d/_dAbCDeFGH/Launch-Status_sumnO 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. parent: $ref: '#/components/schemas/PageReference' PageReference: x-schema-name: PageReference description: Reference to a page. type: object required: - type - id - name - href - browserLink additionalProperties: false properties: type: type: string description: The type of this resource. enum: - page x-tsType: Type.Page id: type: string description: ID of the page. example: canvas-IjkLmnO href: type: string format: url description: API link to the page. example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages/ browserLink: type: string format: url description: Browser-friendly link to the page. example: https://docs.superhuman.com/d/_dAbCDeFGH/Launch-Status_sumnO name: type: string description: Name of the page. example: Launch Status nextPageToken: description: If specified, an opaque token used to fetch the next page of results. type: string example: eyJsaW1pd PageLineStyle: x-schema-name: PageLineStyle description: The style of a line element in a canvas page. type: string enum: - blockQuote - bulletedList - checkboxList - code - collapsibleList - h1 - h2 - h3 - numberedList - paragraph - pullQuote x-tsEnumNames: - BlockQuote - BulletedList - CheckboxList - Code - CollapsibleList - H1 - H2 - H3 - NumberedList - Paragraph - PullQuote PageContentList: x-schema-name: PageContentList description: List of page content elements. type: object required: - items - href additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/PageContentItem' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages/canvas-IjkLmnO/content?limit=20 nextPageToken: $ref: '#/components/schemas/nextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/nextPageLink' - type: string example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages/canvas-IjkLmnO/content?pageToken=eyJsaW1pd BeginPageContentExportResponse: x-schema-name: BeginPageContentExportResponse description: Response when beginning an export of page content. type: object additionalProperties: false required: - id - status - href properties: id: type: string description: The identifier of this export request. example: AbCDeFGH status: type: string description: The status of this export. example: complete href: type: string description: The URL that reports the status of this export. Poll this URL to get the content URL when the export has completed. example: https://docs.superhuman.com/apis/v1/docs/somedoc/pages/somepage/export/some-request-id 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 DocumentMutateResponse: x-schema-name: DocumentMutateResponse description: Base response type for an operation that mutates a document. type: object additionalProperties: false required: - requestId properties: requestId: type: string description: An arbitrary unique identifier for this request. example: abc-123-def-456 PageWithContent: x-schema-name: PageWithContent description: Info about a page. type: object required: - type - id - name - href - browserLink additionalProperties: false properties: type: type: string description: The type of this resource. enum: - page x-tsType: Type.Page id: type: string description: ID of the page. example: canvas-IjkLmnO href: type: string format: url description: API link to the page. example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages/ browserLink: type: string format: url description: Browser-friendly link to the page. example: https://docs.superhuman.com/d/_dAbCDeFGH/Launch-Status_sumnO 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. parent: $ref: '#/components/schemas/PageReference' pageContent: $ref: '#/components/schemas/PageContent' PageViewersItem: x-schema-name: PageViewersItem description: Metadata with page info and page viewer user info type: object required: - pageId - pageName - viewers additionalProperties: false properties: pageId: type: string description: ID of the page. example: canvas-IjkLmnO pageName: type: string description: Name of the page. example: Launch Status viewers: type: array items: $ref: '#/components/schemas/User' nextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url PageContent_2: 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

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' PageReference_2: x-schema-name: PageReference description: Reference to a page. type: object required: - id - type - browserLink - href - name additionalProperties: false properties: id: type: string description: ID of the page. example: canvas-IjkLmnO type: type: string description: The type of this resource. enum: - page x-tsType: Type.Page href: type: string format: url description: API link to the page. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/pages/canvas-IjkLmnO browserLink: type: string format: url description: Browser-friendly link to the page. example: https://docs.superhuman.com/d/_dAbCDeFGH/Launch-Status_sumnO name: type: string description: Name of the page. example: Launch Status PageContentItem: x-schema-name: PageContentItem description: Content item in a page (canvas). type: object required: - id - type additionalProperties: false properties: id: type: string description: ID of the content item. example: cl-2ZUJuRhNuN type: $ref: '#/components/schemas/PageContentItemType' itemContent: $ref: '#/components/schemas/PageContentItemContent' User: x-schema-name: User description: Info about the user who initiated an action. type: object required: - type - id - email additionalProperties: false properties: type: type: string description: The type of this resource. enum: - user x-tsType: Type.User id: type: number description: Internal Superhuman Docs ID of the user. example: 867102 email: type: string description: Email address of the user. example: user@example.com PageContentOutputFormat: x-schema-name: PageContentOutputFormat description: Supported output content formats that can be requested for getting content for an existing page. type: string enum: - html - markdown x-tsEnumNames: - Html - Markdown BeginPageContentExportRequest: x-schema-name: BeginPageContentExportRequest description: Request for beginning an export of page content. type: object additionalProperties: false required: - outputFormat properties: outputFormat: $ref: '#/components/schemas/PageContentOutputFormat' PageContentDeleteResult: x-schema-name: PageContentDeleteResult description: The result of a page content deletion. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the page whose content was deleted. example: canvas-tuVwxYz OutputFormat: x-schema-name: OutputFormat description: Output format of the doc or page content. type: string default: None enum: - None - LossyPlainText x-tsEnumNames: - None - LossyPlainText PageDeleteResult: x-schema-name: PageDeleteResult description: The result of a page deletion. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the page to be deleted. example: canvas-tuVwxYz PageContentFormat: x-schema-name: PageContentFormat description: Supported content types for page (canvas) content. type: string enum: - html - markdown x-tsEnumNames: - Html - Markdown NextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url PageUpdateResult: x-schema-name: PageUpdateResult description: The result of a page update. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the updated page. example: canvas-tuVwxYz PageList: x-schema-name: PageList description: List of pages. type: object required: - items - href additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Page' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages nextPageToken: $ref: '#/components/schemas/NextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/NextPageLink' - type: string example: https://docs.superhuman.com/apis/admin/v1/organizations//docs//pages?pageToken=eyJsaW1pd PageContentExportStatusResponse: x-schema-name: PageContentExportStatusResponse description: Response when requesting the status of a page content export. type: object additionalProperties: false required: - id - status - href properties: id: type: string description: The identifier of this export request. example: AbCDeFGH status: type: string description: The status of this export. example: complete href: type: string description: The URL that reports the status of this export. example: https://docs.superhuman.com/apis/v1/docs/somedoc/pages/somepage/export/some-request-id downloadLink: type: string description: Once the export completes, the location where the resulting export file can be downloaded; this link typically expires after a short time. Call this method again to get a fresh link. example: https://docs.superhuman.com/blobs/DOC_EXPORT_RENDERING/some-request-id error: type: string description: Message describing an error, if this export failed. PageContentItemContentFormat: x-schema-name: PageContentItemContentFormat description: Content format for the item. type: string enum: - plainText x-tsEnumNames: - PlainText PageContentItemType: x-schema-name: PageContentItemType description: The type of content item in a page. type: string enum: - line x-tsEnumNames: - Line LinkedDataObject: x-schema-name: LinkedDataObject description: Base type for a JSON-LD (Linked Data) object. type: object additionalProperties: false required: - '@context' - '@type' properties: '@context': type: string description: A url describing the schema context for this object, typically "http://schema.org/". example: http://schema.org/ '@type': $ref: '#/components/schemas/LinkedDataType' additionalType: type: string description: 'An identifier of additional type info specific to Superhuman Docs that may not be present in a schema.org taxonomy, ' PageType: x-schema-name: PageType description: The type of a page in a doc. type: string enum: - canvas - embed - syncPage x-tsEnumNames: - Canvas - Embed - SyncPage LinkedDataType: x-schema-name: LinkedDataType description: A schema.org identifier for the object. type: string enum: - ImageObject - MonetaryAmount - Person - WebPage - StructuredValue x-tsEnumNames: - ImageObject - MonetaryAmount - Person - WebPage - StructuredValue PageContent: x-schema-name: PageContent description: Content of a page type: object required: - createdAt - content additionalProperties: false properties: createdAt: type: string format: date-time description: Timestamp representing when this page was created. updatedAt: type: string format: date-time description: Timestamp representing when this page was last updated. content: type: string description: The content of the page. example: Some page contents.\nAnd some more page contents!\n 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_2' - 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 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 GoneError: description: The resource has been deleted. 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: 410 statusMessage: type: string description: HTTP status message of the error. example: Gone message: type: string description: Any additional context on the error, or the same as `statusMessage` otherwise. example: Gone 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