Coda Project Doc Export API
Export docs for backup or ingestion into a DLP or eDiscovery system.
Export docs for backup or ingestion into a DLP or eDiscovery system.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coda-project-doc-export-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 0.0.2
title: Superhuman Docs Admin Doc Export API
license:
name: Superhuman Developer Terms
url: https://docs.superhuman.com/trust/developer
description: '# Introduction
The Superhuman Docs Admin API is a RESTful API that allows programmatic access to administrative reports & capabilities within Superhuman Docs (formerly Coda).'
termsOfService: https://superhuman.com/legal/terms
contact:
name: Developer Support
url: https://superhuman.com/developers
email: care@superhuman.com
x-logo:
url: https://cdn.coda.io/icons/png/color/superhuman-docs-128.png
backgroundColor: transparent
altText: Superhuman Docs Admin API
href: '#'
servers:
- url: https://docs.superhuman.com/apis/admin/v1
description: Superhuman Docs Admin API (v1)
security:
- Bearer: []
tags:
- name: Doc Export
description: Export docs for backup or ingestion into a DLP or eDiscovery system.
paths:
/organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/export:
post:
summary: Launch request to export a doc
description: Begins the export process for a doc; the response carries the request ID that can be polled for status & used to download the exported file once ready.
operationId: exportDocV2
tags:
- Doc Export
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
- $ref: '#/components/parameters/docId'
requestBody:
description: Parameters for the export.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportRequest'
responses:
'200':
description: The document export status.
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportStatusResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = f'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<doc ID>/export'\npayload = {\n 'format': 'PDF',\n 'isLandscape': 'false',\n 'paperSize': 'Letter',\n}\nres = requests.post(uri, headers=headers, json=payload)\n\nprint(f'Request ID for tracking the export is: {res[\"id\"]}')\n# => Request ID for tracking the export is: 85d2fb03-2747-44c4-8b3b-7a05d37eec04\n"
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<doc ID>/export' \\\n -d '{\"access\": \"write\", \"principal\": {\"type\": \"email\", \"email\": \"foo@bar.com\"}}'\n# => Begin the process of exporting the doc.\n"
/organizations/{organizationId}/workspaces/{workspaceId}/docs/{docId}/export/{exportId}:
get:
summary: Determine the status of a doc export request
description: Returns the status of a previous doc export request, including a file download link once ready. Download links are valid for 5 minutes and a new download link is returned on each call to this API once the export has completed.
operationId: getExportRequestStatusV2
tags:
- Doc Export
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/workspaceId'
- $ref: '#/components/parameters/docId'
- $ref: '#/components/parameters/exportId'
responses:
'200':
description: The document export status.
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportStatusResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/export/<export id>''
res = requests.get(uri, headers=headers).json()
print(f''Export status is {res["status"]}'')
# => Export status is InProgress
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/export/<export id>' |\n jq '.status'\n# => \"InProgress\"\n"
/organizations/{organizationId}/docs/{docId}/export:
post:
deprecated: true
summary: Launch request to export a doc
description: Begins the export process for a doc; the response carries the request ID that can be polled for status & used to download the exported file once ready.
operationId: exportDoc
tags:
- Doc Export
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/docId'
requestBody:
description: Parameters for the export.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportRequest'
responses:
'200':
description: The document export status.
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportStatusResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = f'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<doc ID>/export'\npayload = {\n 'format': 'PDF',\n 'isLandscape': 'false',\n 'paperSize': 'Letter',\n}\nres = requests.post(uri, headers=headers, json=payload)\n\nprint(f'Request ID for tracking the export is: {res[\"id\"]}')\n# => Request ID for tracking the export is: 85d2fb03-2747-44c4-8b3b-7a05d37eec04\n"
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<doc ID>/export' \\\n -d '{\"access\": \"write\", \"principal\": {\"type\": \"email\", \"email\": \"foo@bar.com\"}}'\n# => Begin the process of exporting the doc.\n"
/organizations/{organizationId}/docs/{docId}/export/{exportId}:
get:
deprecated: true
summary: Determine the status of a doc export request
description: Returns the status of a previous doc export request, including a file download link once ready. Download links are valid for 5 minutes and a new download link is returned on each call to this API once the export has completed.
operationId: getExportRequestStatus
tags:
- Doc Export
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/docId'
- $ref: '#/components/parameters/exportId'
responses:
'200':
description: The document export status.
content:
application/json:
schema:
$ref: '#/components/schemas/DocExportStatusResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/export/<export id>''
res = requests.get(uri, headers=headers).json()
print(f''Export status is {res["status"]}'')
# => Export status is InProgress
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/export/<export id>' |\n jq '.status'\n# => \"InProgress\"\n"
components:
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
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
NotFoundError:
description: The resource could not be located with the current API token.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 404
statusMessage:
type: string
description: HTTP status message of the error.
example: Not Found
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Not Found
UnauthorizedError:
description: The API token is invalid or has expired.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 401
statusMessage:
type: string
description: HTTP status message of the error.
example: Unauthorized
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Unauthorized
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
parameters:
organizationId:
name: organizationId
description: ID of the organization.
in: path
required: true
example: org-AbCDeFGHIj
schema:
type: string
workspaceId:
name: workspaceId
description: ID of the workspace.
in: path
required: true
example: ws-AbCDeFGHIj
schema:
type: string
exportId:
name: exportId
description: ID of the doc export request.
in: path
required: true
example: 85d2fb03-2747-44c4-8b3b-7a05d37eec04
schema:
type: string
format: uuid
docId:
name: docId
description: ID of the doc.
in: path
required: true
example: d-AbCDeFGHIj
schema:
type: string
schemas:
DocExportStatusResponse:
x-schema-name: DocExportStatusResponse
description: Response payload that includes the status and location of a doc export request.
type: object
required:
- id
- status
properties:
id:
type: string
description: ID of the export request.
example: AbCDeFGH
href:
type: string
format: url
description: API link to these results
example: https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/docs/<your doc id>/export/<your export request id>
status:
$ref: '#/components/schemas/DocExportStatus'
error:
type: string
description: If the export failed, this field includes the reason.
downloadLink:
type: string
description: Once the export completes, the location where the resulting file can be downloaded; this link typically expires after a short time. Call this method again to get a fresh link.
DocExportPaperSize:
x-schema-name: DocExportPaperSize
description: Size of pages in the resulting export, if supported by the export format. Defaults to Letter.
type: string
enum:
- A0
- A1
- A2
- A3
- A4
- A5
- A6
- Letter
- Legal
- Tabloid
x-tsEnumNames:
- A0
- A1
- A2
- A3
- A4
- A5
- A6
- Letter
- Legal
- Tabloid
DocExportOrientation:
x-schema-name: DocExportOrientation
description: Orientation of the doc export. Defaults to Portrait.
type: string
enum:
- Landscape
- Portrait
x-tsEnumNames:
- Landscape
- Portrait
DocExportRequest:
x-schema-name: DocExportRequest
description: Request payload for exporting a doc
type: object
required:
- format
properties:
format:
$ref: '#/components/schemas/DocExportFormat'
orientation:
$ref: '#/components/schemas/DocExportOrientation'
paperSize:
$ref: '#/components/schemas/DocExportPaperSize'
exportDocAsUserEmail:
type: string
description: Generally this is omitted and requires manual setup to enable. Please reach out to Superhuman Docs support if this is required.
example: joe@example.com
expandForWideTables:
type: boolean
description: Whether to expand the page width to fit wide tables. Defaults to false.
includeHiddenPages:
type: boolean
description: Whether to include hidden pages in the export. Defaults to true.
DocExportStatus:
x-schema-name: DocExportStatus
description: Status of a doc export request
type: string
enum:
- InProgress
- Failed
- Complete
x-tsEnumNames:
- InProgress
- Failed
- Complete
DocExportFormat:
x-schema-name: DocExportFormat
description: Format of the doc export
type: string
enum:
- PDF
- Plaintext
- HTML
x-tsEnumNames:
- PDF
- Plaintext
- HTML
securitySchemes:
Bearer:
description: 'The Superhuman Docs Admin API can be accessed using an API token, which can be obtained from [*My account*](https://docs.superhuman.com/account)
in Superhuman Docs. This token should be specified by setting a header as follows.
```Authorization: Bearer <api_token>```
Keep your token safe, as anyone who gets access to it can access your account. Once a token is created
it cannot be viewed or modified, so don''t lose it.
'
type: http
scheme: bearer
bearerFormat: UUID
x-tagGroups:
- name: API Tokens
tags:
- API Tokens
- name: Docs
tags:
- Docs
- Doc Permissions
- Doc Export
- name: Doc Structure
tags:
- Pages
- name: Events
tags:
- Events
- name: Folders
tags:
- Folders
- Folder Permissions
- name: Groups
tags:
- Groups
- name: Import
tags:
- Preferences
- name: LegalHolds
tags:
- LegalHolds
- name: Organizations
tags:
- Organizations
- Organization Users
- Pack Controls
- Pack Configurations
- name: Packs
tags:
- Packs
- name: Webhooks
tags:
- Webhooks
- name: Workspaces
tags:
- Workspaces
- Workspace Users