openapi: 3.0.0 info: version: 0.0.2 title: Superhuman Docs Admin Account Rows 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: Rows description: 'You''ll likely use this part of the API the most. These endpoints let you retrieve row data from tables in Superhuman Docs as well as create, upsert, update, and delete them. Most of these endpoints work for both base tables and views, but for inserting/upsering rows, you must use a base table. ' paths: /docs/{docId}/tables/{tableIdOrName}/rows: get: summary: List table rows description: "Returns a list of rows in a table.\n### Value results\nThe `valueFormat` parameter dictates in what format the API should return values for individual cells.\n* `simple` (default): Returns cell values as the following JSON values: `string`, `number`, or `boolean`. Array values (like multiselects) are returned as comma-delimited strings.\n* `simpleWithArrays`: Singleton values are returned as `simple`. Array values are returned as JSON arrays and the values within are `simple` values (including nested arrays).\n* `rich`: If applicable, returns many values with further encoding, allowing API users to have lossless access to data in Superhuman Docs.\n * For `text` values, returns data in Markdown syntax. If the text field is simple text (e.g. has no formatting),\n the field will be fully escaped with triple-ticks. E.g\n `\n ```This is plain text```\n `\n * For `currency`, `lookup`, `image`, `person` and `hyperlink` values, the value will be encoded in [JSON-LD](https://json-ld.org/) format.\n\n```\n // Currency\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"MonetaryAmount\",\n \"currency\": \"USD\",\n \"amount\": 42.42\n }\n\n // Lookup\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"StructuredValue\",\n \"additionalType\": \"row\",\n \"name\": \"Row Name\",\n \"rowId\": \"i-123456789\",\n \"tableId\": \"grid-123456789\",\n \"tableUrl\": \"https://docs.superhuman.com/d/_d123456789/grid-123456789\",\n \"url\": \"https://docs.superhuman.com/d/_d123456789/grid-123456789#_r42\",\n }\n\n // Hyperlink\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"WebPage\",\n \"name\": \"Vandalay Industries\",\n \"url\": \"https://vandalay.example.com\"\n }\n\n // Image\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"ImageObject\",\n \"name\": \"Vandalay Industries logo\",\n \"url\": \"https://vandalay.example.com/logo.jpg\"\n }\n\n // People\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"Person\",\n \"name\": \"Art Vandalay\",\n \"email\": \"art@vandalay.example.com\"\n }\n```\n" operationId: listRows tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - name: query description: 'Query used to filter returned rows, specified as `:`. If you''d like to use a column name instead of an ID, you must quote it (e.g., `"My Column":123`). Also note that `value` is a JSON value; if you''d like to use a string, you must surround it in quotes (e.g., `"groceries"`). ' in: query example: c-tuVwxYz:"Apple" schema: type: string - name: sortBy in: query description: 'Specifies the sort order of the rows returned. If left unspecified, rows are returned by creation time ascending. "UpdatedAt" sort ordering is the order of rows based upon when they were last updated. This does not include updates to calculated values. "Natural" sort ordering is the order that the rows appear in the table view in the application. This ordering is only meaningfully defined for rows that are visible (unfiltered). Because of this, using this sort order will imply visibleOnly=true, that is, to only return visible rows. If you pass sortBy=natural and visibleOnly=false explicitly, this will result in a Bad Request error as this condition cannot be satisfied. ' schema: $ref: '#/components/schemas/RowsSortBy' - $ref: '#/components/parameters/useColumnNames' - name: valueFormat in: query description: The format that cell values are returned as. schema: $ref: '#/components/schemas/ValueFormat' - name: visibleOnly description: If true, returns only visible rows and columns for the table. in: query example: true schema: type: boolean - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/syncToken' responses: '200': description: List of rows in the table. content: application/json: schema: $ref: '#/components/schemas/RowList' '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//tables//rows'\nparams = {\n 'query': ':\"Work out\"',\n}\nreq = requests.get(uri, headers=headers, params=params)\nreq.raise_for_status() # Throw if there was an error.\nres = req.json()\n\nprint(f'Matching rows: {len(res[\"items\"])}')\n# => Matching rows: 1\n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n -G --data-urlencode 'query=:\"Work out\"' \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows' |\n jq '\"Matching rows: \" + (.items | length | tostring)'\n# => \"Matching rows: 1\"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var query = '':"Work out"''; var rows = SuperhumanDocs.listRows('''', ''
'', {query: query}).items; Logger.log(''Matching rows: '' + rows.length); // => Matching rows: 1 ' post: summary: Insert/upsert rows description: 'Inserts rows into a table, optionally updating existing rows if any upsert key columns are provided. This endpoint will always return a 202, so long as the doc and table exist and are accessible (and the update is structurally valid). Row inserts/upserts are generally processed within several seconds. Note: this endpoint only works for base tables, not views. When upserting, if multiple rows match the specified key column(s), they will all be updated with the specified value. ' operationId: upsertRows tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - name: disableParsing description: If true, the API will not attempt to parse the data in any way. in: query example: true schema: type: boolean requestBody: description: Rows to insert or upsert. required: true content: application/json: schema: $ref: '#/components/schemas/RowsUpsert' responses: '202': description: A result indicating that the upsert was queued for processing. content: application/json: schema: $ref: '#/components/schemas/RowsUpsertResult' '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//tables/
/rows'\npayload = {\n 'rows': [\n {\n 'cells': [\n {'column': '', 'value': 'Feed Baker'},\n ],\n },\n ],\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'Inserted 1 row')\n# => Inserted 1 row\n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X POST -H \"Content-Type: application/json\" \\\n -d '{\"rows\": [{\"cells\": [{\"column\": \"\", \"value\": \"Feed Baker\"}]}]}' \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows' |\n jq 'if .statusMessage? == null then \"Inserted 1 row\" else . end'\n# => \"Inserted 1 row\"\n" - label: Google Apps Script lang: javascript source: "// Import the SuperhumanDocs library via Resource->Libraries...:\n// 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl\nSuperhumanDocs.authenticate('');\nvar body = {\n 'rows': [\n {\n 'cells': [\n {'column': '', 'value': 'Feed Baker'},\n ],\n },\n ],\n};\nSuperhumanDocs.upsertRows('', '
', body);\nLogger.log('Inserted 1 row');\n// => Inserted 1 row\n" delete: summary: Delete multiple rows description: 'Deletes the specified rows from the table or view. This endpoint will always return a 202. Row deletions are generally processed within several seconds. ' operationId: deleteRows tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' requestBody: description: Rows to delete. required: true content: application/json: schema: $ref: '#/components/schemas/RowsDelete' responses: '202': description: A result indicating that the delete was queued for processing. content: application/json: schema: $ref: '#/components/schemas/RowsDeleteResult' '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//tables/
/rows'\npayload = {\n 'rowIds': ['i-aBcDeFgH', 'i-AbCdEfGh'],\n}\nreq = requests.delete(uri, headers=headers, json=payload)\nreq.raise_for_status() # Throw if there was an error.\nres = req.json()\n\nprint(f'Deleted 2 rows')\n# => Deleted 2 rows\n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X DELETE -H \"Content-Type: application/json\" \\\n -d '{\"rowIds\": ['i-aBcDeFgH', 'i-AbCdEfGh']}' \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows' |\n jq 'if .statusMessage? == null then \"Deleted 2 rows\" else . end'\n# => \"Deleted 2 rows\"\n" - label: Google Apps Script lang: javascript source: "// Import the SuperhumanDocs library via Resource->Libraries...:\n// 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl\nSuperhumanDocs.authenticate('');\nvar body = {\n 'rowIds': ['i-aBcDeFgH', 'i-AbCdEfGh'],\n};\nSuperhumanDocs.deleteRows('', '
', body);\nLogger.log('Deleted 2 rows');\n// => Deleted 2 rows\n" /docs/{docId}/tables/{tableIdOrName}/rows/{rowIdOrName}: get: summary: Get a row description: Returns details about a row in a table. operationId: getRow tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - $ref: '#/components/parameters/rowIdOrName' - $ref: '#/components/parameters/useColumnNames' - name: valueFormat in: query description: The format that cell values are returned as. schema: $ref: '#/components/schemas/ValueFormat' responses: '200': description: 'Info about a row. If this row was retrieved by name, only one matching row will be returned, with no guarantees as to which one it is. ' content: application/json: schema: $ref: '#/components/schemas/RowDetail' '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//tables/
/rows/'' req = requests.get(uri, headers=headers) req.raise_for_status() # Throw if there was an error. res = req.json() print(f''Row values are: {", ".join(str(v) for v in res["values"].values())}'') # => Row values are: Get groceries, 1, 60 ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows/' |\n jq '.values | map(tostring) | join(\", \")'\n# => \"Get groceries, 1, 60\"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var row = SuperhumanDocs.getRow('''', ''
'', ''''); var values = Object.keys(row.values).map(function(colId) { return row.values[colId]; }); Logger.log(''Row values are: '' + values.join('', '')); // => Row values are: Get groceries, 1, 60 ' put: summary: Update row description: 'Updates the specified row in the table. This endpoint will always return a 202, so long as the row exists and is accessible (and the update is structurally valid). Row updates are generally processed within several seconds. When updating using a name as opposed to an ID, an arbitrary row will be affected. ' operationId: updateRow tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - $ref: '#/components/parameters/rowIdOrName' - name: disableParsing description: If true, the API will not attempt to parse the data in any way. in: query example: true schema: type: boolean requestBody: description: Row update. required: true content: application/json: schema: $ref: '#/components/schemas/RowUpdate' responses: '202': description: A result indicating that the update was queued for processing. content: application/json: schema: $ref: '#/components/schemas/RowUpdateResult' '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//tables/
/rows/'\npayload = {\n 'row': {\n 'cells': [\n {'column': '', 'value': 'Get groceries from Whole Foods'},\n ],\n },\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 row {res[\"id\"]}')\n# => Updated row \n" - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X PUT -H \"Content-Type: application/json\" \\\n -d '{\"row\": {\"cells\": [{\"column\": \"\", \"value\": \"Get groceries from Whole Foods\"}]}}' \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows/' |\n jq '\"Updated row \" + .id'\n# => \"Updated row \"\n" - label: Google Apps Script lang: javascript source: "// Import the SuperhumanDocs library via Resource->Libraries...:\n// 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl\nSuperhumanDocs.authenticate('');\nvar body = {\n row: {\n cells: [\n {'column': '', 'value': 'Get groceries from Whole Foods'},\n ],\n },\n};\nvar row = SuperhumanDocs.updateRow('', '
', '', body);\nLogger.log('Updated row ' + row.id);\n// => Updated row \n" delete: summary: Delete row description: 'Deletes the specified row from the table or view. This endpoint will always return a 202, so long as the row exists and is accessible (and the update is structurally valid). Row deletions are generally processed within several seconds. When deleting using a name as opposed to an ID, an arbitrary row will be removed. ' operationId: deleteRow tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - $ref: '#/components/parameters/rowIdOrName' responses: '202': description: A result indicating that the deletion was queued for processing. content: application/json: schema: $ref: '#/components/schemas/RowDeleteResult' '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//tables/
/rows/'' req = requests.delete(uri, headers=headers) req.raise_for_status() # Throw if there was an error. res = req.json() print(f''Deleted row {res["id"]}'') # => Deleted row ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X DELETE \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows/' |\n jq '\"Deleted row \" + .id'\n# => \"Deleted row \"\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); var row = SuperhumanDocs.deleteRow('''', ''
'', ''''); Logger.log(''Deleted row '' + row.id); // => Deleted row ' /docs/{docId}/tables/{tableIdOrName}/rows/{rowIdOrName}/buttons/{columnIdOrName}: post: summary: Push a button description: 'Pushes a button on a row in a table. Authorization note: This action is available to API tokens that are authorized to write to the table. However, the underlying button can perform any action on the document, including writing to other tables and performing Pack actions. ' operationId: pushButton tags: - Rows parameters: - $ref: '#/components/parameters/docId' - $ref: '#/components/parameters/tableIdOrName' - $ref: '#/components/parameters/rowIdOrName' - $ref: '#/components/parameters/columnIdOrName' responses: '202': description: A result indicating that the push button action was queued for processing. content: application/json: schema: $ref: '#/components/schemas/PushButtonResult' '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//tables/
/rows//buttons/'' req = requests.post(uri, headers=headers) req.raise_for_status() # Throw if there was an error. res = req.json() print(f''Pushed button'') # => Pushed button ' - label: Shell lang: shell source: "curl -s -H 'Authorization: Bearer ' -X POST \\\n 'https://docs.superhuman.com/apis/v1/docs//tables/
/rows//buttons/' |\n jq 'if .statusMessage? == null then \"Pushed button\" else . end'\n # => Pushed button\n" - label: Google Apps Script lang: javascript source: '// Import the SuperhumanDocs library via Resource->Libraries...: // 15IQuWOk8MqT50FDWomh57UqWGH23gjsWVWYFms3ton6L-UHmefYHS9Vl SuperhumanDocs.authenticate(''''); SuperhumanDocs.pushButton('''', ''
'', '''', ''''); Logger.log(''Pushed button''); // => Pushed button ' components: parameters: docId: name: docId description: ID of the doc. in: path required: true example: AbCDeFGH schema: type: string columnIdOrName: name: columnIdOrName description: ID or name of the column. 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. x-sdk-description: ID or name of the column. Names are discouraged because they're easily prone to being changed by users. in: path required: true example: c-tuVwxYz schema: type: string syncToken: name: syncToken description: 'An opaque token returned from a previous call that can be used to return results that are relevant to the query since the call where the syncToken was generated. ' in: query example: eyJsaW1pd schema: type: string tableIdOrName: name: tableIdOrName description: ID or name of the table. 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. x-sdk-description: ID or name of the table. Names are discouraged because they're easily prone to being changed by users. in: path required: true example: grid-pqRst-U schema: type: string useColumnNames: name: useColumnNames description: 'Use column names instead of column IDs in the returned output. This is generally discouraged as it is fragile. If columns are renamed, code using original names may throw errors. ' in: query example: true schema: type: boolean rowIdOrName: name: rowIdOrName description: 'ID or name of the row. 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 there are multiple rows with the same value in the identifying column, an arbitrary one will be selected. ' x-sdk-description: 'ID or name of the row. Names are discouraged because they''re easily prone to being changed by users. Note that if there are multiple rows with the same value in the identifying column, an arbitrary one will be returned. ' in: path required: true example: i-tuVwxYz schema: type: string pageToken: name: pageToken description: An opaque token used to fetch the next page of results. in: query example: eyJsaW1pd schema: type: string limit: name: limit description: Maximum number of results to return in this query. in: query example: 10 schema: type: integer minimum: 1 default: 25 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 schemas: RowValue: x-schema-name: RowValue description: A value representing a Superhuman Docs row. allOf: - $ref: '#/components/schemas/LinkedDataObject' - type: object additionalProperties: false required: - '@type' - name - url - tableId - tableUrl - rowId - additionalType properties: '@type': type: string enum: - StructuredValue x-tsType: LinkedDataType.StructuredValue name: type: string description: The display name of the row, based on its identifying column. example: Apple url: type: string description: The url of the row. example: https://docs.superhuman.com/d/_dAbCDeFGH#Teams-and-Tasks_tpqRst-U/_rui-tuVwxYz tableId: type: string description: The ID of the table example: grid-pqRst-U rowId: type: string description: The ID of the table example: i-tuVwxYz tableUrl: type: string description: The url of the table. example: https://docs.superhuman.com/d/_dAbCDeFGH#Teams-and-Tasks_tpqRst-U additionalType: type: string description: The type of this resource. enum: - row x-tsType: Type.Row 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 RowUpdate: x-schema-name: RowUpdate description: Payload for updating a row in a table. type: object required: - row additionalProperties: false properties: row: $ref: '#/components/schemas/RowEdit' UrlValue: x-schema-name: UrlValue description: A named hyperlink to an arbitrary url. allOf: - $ref: '#/components/schemas/LinkedDataObject' - type: object additionalProperties: false required: - '@type' - url properties: '@type': type: string enum: - WebPage x-tsType: LinkedDataType.WebPage name: type: string description: The user-visible text of the hyperlink. example: Click me url: type: string description: The url of the hyperlink. example: https://example.com CellValue: x-schema-name: CellValue description: All values that a row cell can contain. oneOf: - $ref: '#/components/schemas/Value' - $ref: '#/components/schemas/RichValue' RowsUpsert: x-schema-name: RowsUpsert description: Payload for upserting rows in a table. type: object required: - rows additionalProperties: false properties: rows: type: array items: $ref: '#/components/schemas/RowEdit' keyColumns: description: Optional column IDs, URLs, or names (fragile and discouraged), specifying columns to be used as upsert keys. example: - c-bCdeFgh type: array items: type: string PushButtonResult: x-schema-name: PushButtonResult description: The result of a push button. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - rowId - columnId additionalProperties: false properties: rowId: type: string description: ID of the row where the button exists. example: i-tuVwxYz columnId: type: string description: ID of the column where the button exists. example: i-tuVwxYz ImageStatus: x-schema-name: ImageStatus description: The status values that an image object can have. type: string enum: - live - deleted - failed x-tsEnumNames: - Live - Deleted - Failed RowList: x-schema-name: RowList description: List of rows. type: object required: - items additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Row' href: type: string format: url description: API link to these results example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/tables/grid-pqRst-U/rows?limit=20 nextPageToken: $ref: '#/components/schemas/nextPageToken' nextPageLink: allOf: - $ref: '#/components/schemas/nextPageLink' - type: string example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/tables/grid-pqRst-U/rows?pageToken=eyJsaW1pd nextSyncToken: $ref: '#/components/schemas/nextSyncToken' PageReference: 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 RichValue: x-schema-name: RichValue description: A cell value that contains rich structured data. oneOf: - $ref: '#/components/schemas/RichSingleValue' - type: array items: oneOf: - $ref: '#/components/schemas/RichSingleValue' - type: array items: $ref: '#/components/schemas/RichSingleValue' nextPageToken: description: If specified, an opaque token used to fetch the next page of results. type: string example: eyJsaW1pd Value: x-schema-name: Value description: A Superhuman Docs result or entity expressed as a primitive type, or array of primitive types. additionalProperties: false oneOf: - $ref: '#/components/schemas/ScalarValue' - type: array items: oneOf: - $ref: '#/components/schemas/ScalarValue' - type: array items: $ref: '#/components/schemas/ScalarValue' RowsSortBy: x-schema-name: RowsSortBy description: Determines how the rows returned are sorted type: string enum: - createdAt - natural - updatedAt x-tsEnumNames: - CreatedAt - Natural - UpdatedAt RowsUpsertResult: x-schema-name: RowsUpsertResult description: The result of a rows insert/upsert operation. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object additionalProperties: false properties: addedRowIds: description: Row IDs for rows that will be added. Only applicable when keyColumns is not set or empty. example: - i-bCdeFgh - i-CdEfgHi type: array items: type: string Row: x-schema-name: Row description: Info about a row. type: object required: - id - type - href - name - index - browserLink - createdAt - updatedAt - values additionalProperties: false properties: id: type: string description: ID of the row. example: i-tuVwxYz type: type: string description: The type of this resource. enum: - row x-tsType: Type.Row href: type: string format: url description: API link to the row. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/tables/grid-pqRst-U/rows/i-RstUv-W name: type: string description: The display name of the row, based on its identifying column. example: Apple index: type: integer description: Index of the row within the table. example: 7 browserLink: type: string format: url description: Browser-friendly link to the row. example: https://docs.superhuman.com/d/_dAbCDeFGH#Teams-and-Tasks_tpqRst-U/_rui-tuVwxYz createdAt: type: string format: date-time description: Timestamp for when the row was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the row was last modified. example: '2018-04-11T00:18:57.946Z' values: type: object description: 'Values for a specific row, represented as a hash of column IDs (or names with `useColumnNames`) to values. ' additionalProperties: $ref: '#/components/schemas/CellValue' example: c-tuVwxYz: Apple c-bCdeFgh: - $12.34 - $56.78 RowEdit: x-schema-name: RowEdit description: An edit made to a particular row. type: object required: - cells additionalProperties: false properties: cells: type: array items: $ref: '#/components/schemas/CellEdit' RowUpdateResult: x-schema-name: RowUpdateResult description: The result of a row update. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the updated row. example: i-tuVwxYz 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 ValueFormat: x-schema-name: ValueFormat description: The format that cell values are returned as. type: string enum: - simple - simpleWithArrays - rich x-tsEnumNames: - Simple - SimpleWithArrays - Rich RowDeleteResult: x-schema-name: RowDeleteResult description: The result of a row deletion. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - id additionalProperties: false properties: id: type: string description: ID of the row to be deleted. example: i-tuVwxYz TableReference: x-schema-name: TableReference description: Reference to a table or view. type: object required: - id - type - tableType - browserLink - href - name additionalProperties: false properties: id: type: string description: ID of the table. example: grid-pqRst-U type: type: string description: The type of this resource. enum: - table x-tsType: Type.Table tableType: $ref: '#/components/schemas/TableType' href: type: string format: url description: API link to the table. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/tables/grid-pqRst-U browserLink: type: string format: url description: Browser-friendly link to the table. example: https://docs.superhuman.com/d/_dAbCDeFGH/#Teams-and-Tasks_tpqRst-U name: type: string description: Name of the table. example: Tasks parent: $ref: '#/components/schemas/PageReference' nextPageLink: description: If specified, a link that can be used to fetch the next page of results. type: string format: url TableType: x-schema-name: TableType type: string enum: - table - view x-tsEnumNames: - Table - View nextSyncToken: description: 'If specified, an opaque token that can be passed back later to retrieve new results that match the parameters specified when the sync token was created. ' type: string example: eyJsaW1pd RichSingleValue: x-schema-name: RichSingleValue description: 'A value that contains rich structured data. Cell values are composed of these values or arrays of these values. ' oneOf: - $ref: '#/components/schemas/ScalarValue' - $ref: '#/components/schemas/CurrencyValue' - $ref: '#/components/schemas/ImageUrlValue' - $ref: '#/components/schemas/PersonValue' - $ref: '#/components/schemas/UrlValue' - $ref: '#/components/schemas/RowValue' discriminator: propertyName: '@type' RowsDeleteResult: x-schema-name: RowsDeleteResult description: The result of a rows delete operation. allOf: - $ref: '#/components/schemas/DocumentMutateResponse' - type: object required: - rowIds additionalProperties: false properties: rowIds: description: Row IDs to delete. example: - i-bCdeFgh - i-CdEfgHi type: array items: type: string CurrencyAmount: x-schema-name: CurrencyAmount description: A numeric monetary amount as a string or number. oneOf: - type: string example: '12.99' - type: number example: 42 RowsDelete: x-schema-name: RowsDelete description: Payload for deleting rows from a table. type: object required: - rowIds additionalProperties: false properties: rowIds: description: 'Row IDs to delete. ' example: - i-bCdeFgh - i-CdEfgHi type: array items: type: string RowDetail: x-schema-name: RowDetail description: Details about a row. type: object required: - id - type - href - name - index - browserLink - createdAt - updatedAt - values - parent additionalProperties: false properties: id: type: string description: ID of the row. example: i-tuVwxYz type: type: string description: The type of this resource. enum: - row x-tsType: Type.Row href: type: string format: url description: API link to the row. example: https://docs.superhuman.com/apis/v1/docs/AbCDeFGH/tables/grid-pqRst-U/rows/i-RstUv-W name: type: string description: The display name of the row, based on its identifying column. example: Apple index: type: integer description: Index of the row within the table. example: 7 browserLink: type: string format: url description: Browser-friendly link to the row. example: https://docs.superhuman.com/d/_dAbCDeFGH#Teams-and-Tasks_tpqRst-U/_rui-tuVwxYz createdAt: type: string format: date-time description: Timestamp for when the row was created. example: '2018-04-11T00:18:57.946Z' updatedAt: type: string format: date-time description: Timestamp for when the row was last modified. example: '2018-04-11T00:18:57.946Z' values: type: object description: 'Values for a specific row, represented as a hash of column IDs (or names with `useColumnNames`) to values. ' additionalProperties: $ref: '#/components/schemas/CellValue' example: c-tuVwxYz: Apple c-bCdeFgh: - $12.34 - $56.78 parent: $ref: '#/components/schemas/TableReference' CurrencyValue: x-schema-name: CurrencyValue description: A monetary value with its associated currency code. allOf: - $ref: '#/components/schemas/LinkedDataObject' - type: object additionalProperties: false required: - '@type' - currency - amount properties: '@type': type: string enum: - MonetaryAmount x-tsType: LinkedDataType.MonetaryAmount currency: type: string description: The 3-letter currency code. example: USD amount: $ref: '#/components/schemas/CurrencyAmount' ScalarValue: x-schema-name: ScalarValue description: A Superhuman Docs result or entity expressed as a primitive type. oneOf: - type: string example: $12.34 - type: number example: 12.34 - type: boolean example: true CellEdit: x-schema-name: CellEdit description: An edit made to a particular cell in a row. type: object required: - column - value additionalProperties: false properties: column: type: string description: Column ID, URL, or name (fragile and discouraged) associated with this edit. example: c-tuVwxYz value: $ref: '#/components/schemas/Value' ImageUrlValue: x-schema-name: ImageUrlValue description: A named url of an image along with metadata. allOf: - $ref: '#/components/schemas/LinkedDataObject' - type: object additionalProperties: false required: - '@type' properties: '@type': type: string enum: - ImageObject x-tsType: LinkedDataType.ImageObject name: type: string description: The name of the image. example: Dogs Playing Poker url: type: string description: The url of the image. example: https://example.com/dogs-playing-poker.jpg height: type: number description: The height of the image in pixels. example: 480 width: type: number description: The width of the image in pixels. example: 640 status: $ref: '#/components/schemas/ImageStatus' 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 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, ' 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