Canvas
- OpenAPI Version:
3.1.1 - API Version:
2
Zoom Docs
Servers
- URL:
https://api.zoom.us/v2
Operations
List collaborators of a file
- Method:
GET - Path:
/docs/files/{fileId}/collaborators - Tags: Collaborator
List collaborators of a file. Only doc or data table files are supported.
Scopes: docs_collaborator:read,docs_collaborator:read:admin
Granular Scopes: docs:read:list_file_collaborators,docs:read:list_file_collaborators:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Returns the collaborators of a file.
Content-Type: application/json
-
collaboratorsarray— A list of collaborators. Each collaborator item must contain exactly one of the following fields: `user_id`, `channel_id`, or `email`.Items:
-
avatar_url(required)string— The avatar URL. -
collaborator_id(required)string— The collaborator item ID, used as the `collaboratorId` when removing or modifying a collaborator. -
collaborator_name(required)string— The collaborator display name. -
collaborator_type(required)string, possible values:"user", "channel", "email"— The collaborator type. -
role(required)string, possible values:"viewer", "commenter", "editor", "co-owner"— The collaborator role. -
channel_idstring— The Zoom Team Chat channel ID. Available when `collaborator_type` = `channel`. -
emailstring— The email address. Available when `collaborator_type` = `email`. -
user_idstring— The Zoom user ID. Available when `collaborator_type` = `user`.
-
Example:
{
"collaborators": [
{
"collaborator_id": "user:9aSWJV2rTyWwkIDWmPYsfg",
"collaborator_type": "user",
"role": "viewer",
"collaborator_name": "Jack",
"user_id": "9aSWJV2rTyWwkIDWmPYsfg",
"channel_id": "utSBcPSTQTmiebe_if1rpg",
"email": "user@example.com",
"avatar_url": "https://images.zoom.us/p/v2/c6ea193b21e21r4rdqw21wdc3b0170737fb3213e21e34/1f1wwe2c3-432e-4dfa-92ab-f732w1a385q1301-2v21"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Add collaborators for a file
- Method:
POST - Path:
/docs/files/{fileId}/collaborators - Tags: Collaborator
Share a file with newly added Zoom users or Zoom Team Chat channels. Only doc or data table files are supported.
Scopes: docs_collaborator:write,docs_collaborator:write:admin
Granular Scopes: docs:write:collaborator,docs:write:collaborator:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
collaborators(required)array— A list of collaborators to be added. Each collaborator item must contain exactly one of the following fields: `user_id`, `channel_id` and `email`.Items:
-
role(required)string, possible values:"viewer", "commenter", "editor", "co-owner"— The collaborator role. -
channel_idstring— Zoom team chat channel ID. -
emailstring— Email address. -
user_idstring— Zoom user ID.
-
Example:
{
"collaborators": [
{
"user_id": "9aSWJV2rTyWwkIDWmPYsfg",
"channel_id": "4b1826c3597b492e9b1f7a9bd59d3f8c",
"email": "user@example.com",
"role": "viewer"
}
]
}
Responses
Status: 201 Returns the collaborators successfully added to collaborator list of this file.
Content-Type: application/json
-
collaborators(required)array— Collaborators successfully added to collaborator list of this file. Each collaborator item must contain exactly one of the following fields: `user_id`, `channel_id`, or `email`.Items:
-
collaborator_id(required)string— The collaborator item ID, used as the `collaboratorId` when removing or modifying a collaborator. -
collaborator_type(required)string, possible values:"user", "channel", "email"— The collaborator type. -
role(required)string, possible values:"viewer", "commenter", "editor", "co-owner"— The collaborator role. -
channel_idstring— The Zoom Team Chat channel ID. Available when `collaborator_type` = `channel`. -
emailstring— The email address. Available when `collaborator_type` = `email`. -
user_idstring— The Zoom user ID. Available when `collaborator_type` = `user`.
-
Example:
{
"collaborators": [
{
"collaborator_id": "user:9aSWJV2rTyWwkIDWmPYsfg",
"collaborator_type": "user",
"role": "viewer",
"user_id": "9aSWJV2rTyWwkIDWmPYsfg",
"channel_id": "4b1826c3597b492e9b1f7a9bd59d3f8c",
"email": "user@example.com"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Remove a collaborator from a file
- Method:
DELETE - Path:
/docs/files/{fileId}/collaborators/{collaboratorId} - Tags: Collaborator
Remove a collaborator from a file. Only doc or data table files are supported.
Scopes: docs_collaborator:delete,docs_collaborator:delete:admin
Granular Scopes: docs:delete:collaborator,docs:delete:collaborator:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 204 Nothing to return.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Modify a collaborator’s role on a file
- Method:
PATCH - Path:
/docs/files/{fileId}/collaborators/{collaboratorId} - Tags: Collaborator
Modify a collaborator’s role on a file. Only doc or data table files are supported.
Scopes: docs_collaborator:write,docs_collaborator:write:admin
Granular Scopes: docs:update:collaborator,docs:update:collaborator:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
role(required)string, possible values:"viewer", "commenter", "editor", "co-owner"— The collaborator role.
Example:
{
"role": "viewer"
}
Responses
Status: 204 Nothing to return.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a file export
- Method:
POST - Path:
/docs/exports - Tags: Export
Creates a export for specified file.
Scopes: docs_export:write,docs_export:write:admin
Granular Scopes: docs:write:export,docs:write:export:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
export_format(required)string, possible values:"docx", "markdown", "pdf", "csv"— The target format for export. Different file types support different export formats: - `doc` supports export to `docx`, `markdown` or `pdf` - `data_table` supports export to `csv` -
file_id(required)string— The doc file ID.
Example:
{
"file_id": "ADuV705lSXW4c6fBgQFarQ",
"export_format": "docx"
}
Responses
Status: 201 A Docs file is being converted into expected format.
Content-Type: application/json
-
export_id(required)string— The unique ID for your export. Use this ID to check the export status via the Get file export status endpoint (GET /docs/exports/{exportId}/status).
Example:
{
"export_id": "ccbb4d8f72774741af8b8141f92e6d83"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get file export status
- Method:
GET - Path:
/docs/exports/{exportId}/status - Tags: Export
Use this API to query the status of a file export.
Before using this API, confirm that you have invoked the API Create a file export endpoint and obtained the export_id.
Scopes: docs_export:read,docs_export:read:admin
Granular Scopes: docs:read:export,docs:read:export:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 Retrieves the docs file export result.
Content-Type: application/json
-
status(required)string, possible values:"processing", "failed", "succeeded"— The status of the file export. Enum: - `processing` - The Docs file is being converted. - `succeeded` - The Docs file has been converted successfully. - `failed` - The Docs file has failed to convert. -
download_linkstring— The download link for the converted file. This field will be returned when the value of status is `succeeded`. -
expires_atstring— The expiration date of the `download_link` URL; after this time, the `download_link` will become invalid. This field will be returned when the value of status is `succeeded`.
Example:
{
"status": "processing",
"download_link": "https://file.zoom.us/file/xxxx?signature=xxxxx&token=xxxxx",
"expires_at": "2025-12-11T08:51:54.887212742Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5150` <br> Export file size limit exceeded. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5003` <br> The exportId not exists or expired. <br>
Get file content
- Method:
GET - Path:
/docs/files/{fileId}/content - Tags: Export
Retrieves the file name and full file content in Markdown format.
Scopes: docs_export:read
Granular Scopes: docs:read:export
Rate Limit Label: HEAVY
Not supported in Gov cluster
Responses
Status: 200 Retrieves the file name and full file content in Markdown format.
Content-Type: application/json
-
file_contentstring— The document file content in Markdown format. -
file_namestring— The name of the document file.
Example:
{
"file_name": "Q3 Plan",
"file_content": "## Product Development\n\n- Complete beta testing for mobile app by July 15\n- Implement AI-powered recommendation engine"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5150` <br> Export file size limit exceeded. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found or deleted.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a new file
- Method:
POST - Path:
/docs/files - Tags: File Management
Creates a new file for a user.
Scopes: docs:write,docs:write:admin
Granular Scopes: docs:write:file,docs:write:file:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
file_namestring, default:"Untitled"— The file name. -
file_typestring, possible values:"doc", "folder", "data_table", default:"doc"— The type of a file. -
parent_idstring— The ID of the parent file. The newly created file will become a child of this parent. If this parameter is omitted, the file will be placed under "My Docs." Use "root" to represent the top-level folder of the current user. Folders can only be created under "My Docs," a shared folder, or another folder. -
user_idstring— When invoked with the `admin` scope, this operation runs on behalf of the specified user. Permissions are validated against that user. This parameter is required with the `admin` scope and has no effect otherwise.
Example:
{
"file_name": "Q3 Plan",
"parent_id": "fIdgryoPSZ-Jm34Ag-OX7A",
"file_type": "doc",
"user_id": "9BGgfjrQTayGWw_422j1Bw"
}
Responses
Status: 201 Returns the ID of the created file.
Content-Type: application/json
-
file_idstring— The document file ID.
Example:
{
"file_id": "ADuV705lSXW4c6fBgQFarQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid request parameters provided.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission required to create files under this parent directory.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get metadata of a file
- Method:
GET - Path:
/docs/files/{fileId} - Tags: File Management
Get metadata of a file.
Scopes: docs:read,docs:read:admin
Granular Scopes: docs:read:file,docs:read:file:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 Returns the basic metadata of this file.
Content-Type: application/json
-
created_time(required)string— The time when the file created. -
file_id(required)string— The doc file ID. -
file_link(required)string— The URL link of the file. -
file_name(required)string— The doc file name. -
file_type(required)string, possible values:"doc", "folder", "data_table", default:"doc"— The type of a file -
modified_time(required)string— The time when the file last modified.
Example:
{
"file_id": "ADuV705lSXW4c6fBgQFarQ",
"file_name": "Q3 Plan",
"file_type": "doc",
"file_link": "https://docs.zoom.us/doc/ADuV705lSXW4c6fBgQFarQ",
"created_time": "2025-06-30T09:47:40.249Z",
"modified_time": "2025-06-30T09:47:40.249Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File Not Found/Deleted.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Delete a file
- Method:
DELETE - Path:
/docs/files/{fileId} - Tags: File Management
Delete a file.
Scopes: docs:delete,docs:delete:admin
Granular Scopes: docs:delete:file,docs:delete:file:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 204 **HTTP Status Code**: `204` File deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File Not Found/Deleted.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Modify metadata of a file
- Method:
PATCH - Path:
/docs/files/{fileId} - Tags: File Management
Modify metadata of a file.
Scopes: docs:write,docs:write:admin
Granular Scopes: docs:update:file,docs:update:file:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
file_namestring— File title name.
Example:
{
"file_name": "Q3 plan"
}
Responses
Status: 204 **HTTP Status Code**: `204` Modify metadata successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File Not Found/Deleted.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
List all children of a file
- Method:
GET - Path:
/docs/files/{fileId}/children - Tags: File Management
List all children of a file.
Scopes: docs:read,docs:read:admin
Granular Scopes: docs:read:list_children,docs:read:list_children:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Returns all children files.
Content-Type: application/json
-
files(required)array— children listItems:
-
created_time(required)string— The time when the file created. -
file_id(required)string— The ID of a file. -
file_link(required)string— The access link of a file. -
file_name(required)string— The name of a file. -
file_type(required)string, possible values:"doc", "folder", "data_table", default:"doc"— The type of a file -
modified_time(required)string— The time when the file last modified.
-
-
next_page_token(required)string— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.
Example:
{
"files": [
{
"file_id": "61kkJE-rR52UsywN25E0hQ",
"file_name": "Q3 plan",
"file_type": "doc",
"file_link": "https://docs.zoom.us/doc/61kkJE-rR52UsywN25E0hQ",
"created_time": "2025-06-30T09:47:40.249Z",
"modified_time": "2025-06-30T09:47:40.249Z"
}
],
"next_page_token": "eyJ0aW1lQ3Vyc29yIjoiMjAyNS0wNC0yMVQwOTo0NTo1OC45NTJaIiwiaWRDdXJzb3IiOiJzemFsMkpmTlFteTExY1JwdkYxRWhBIn0="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Parent not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Transfer ownership of a file
- Method:
PUT - Path:
/docs/files/{fileId}/owner - Tags: File Management
Transfer a file’s ownership to another user. Only doc or data table files are supported. Only the file owner has permission to perform an ownership transfer.
Scopes: docs_file_owner:write,docs_file_owner:write:admin
Granular Scopes: docs:update:file_owner,docs:update:file_owner:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
user_id(required)string— Zoom user ID of the new owner.
Example:
{
"user_id": "9aSWJV2rTyWwkIDWmPYsfg"
}
Responses
Status: 204 Nothing to return.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission denied
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create file upload for docs import or attachments
- Method:
POST - Path:
/docs/file_uploads - Tags: File Uploads
Create a file upload for document import or attachments.
Notes:
- Base URL: https://fileapi.zoom.us/v2.
- Rate limit: 20 requests per second per user or 2000 requests per second per IP address.
- The caller must retain the Authorization header when redirected to a different hostname.
- Unsupported file formats:
.svg. - For an account-level OAuth app, this API can only be used on behalf of a user who is assigned with a role with Edit permission for Docs Management.
Scopes: docs_file_uploads:write,docs_file_uploads:write:admin
Granular Scopes: docs:write:file_uploads,docs:write:file_uploads:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: multipart/form-data
-
file(required)string— The data file to be uploaded.
Example:
{
"file": "<binary data>"
}
Responses
Status: 201 File successfully created.
Content-Type: application/json
-
file_upload_idstring— The unique ID of the file upload.
Example:
{
"file_upload_id": "aBvhhhyjQUal6HacwXlYwe"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get the general access setting of a file
- Method:
GET - Path:
/docs/files/{fileId}/general_access_setting - Tags: General Access
Get the general access settings of a file. Only doc or data table files are supported.
Scopes: docs_general_access:read,docs_general_access:read:admin
Granular Scopes: docs:read:general_access,docs:read:general_access:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Return the general access setting of a file.
Content-Type: application/json
-
general_access_settingobject— The general access setting of this file.-
share_scope(required)string, possible values:"collaborators_only", "anyone_in_org", "anyone_with_link"— The general access scope of this file. `collaborators_only`: only collaborators of this file can access `anyone_in_org`: users within the same orgnization as the file owner can access `anyone_with_link`: anyone can access this file, including anonymous user. -
rolestring, possible values:"viewer", "commenter", "editor"— Role to collaborate. This field is empty when `share_scope` is set to `collaborators_only`.
-
Example:
{
"general_access_setting": {
"share_scope": "anyone_in_org",
"role": "viewer"
}
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Modify the general access setting of a file
- Method:
PATCH - Path:
/docs/files/{fileId}/general_access_setting - Tags: General Access
Modify the general access setting for a file. Only doc or data table files are supported.
Scopes: docs_general_access:write,docs_general_access:write:admin
Granular Scopes: docs:update:general_access,docs:update:general_access:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
general_access_setting(required)object— The general access setting.-
share_scope(required)string, possible values:"collaborators_only", "anyone_in_org", "anyone_with_link"— The general access scope of this file. `collaborators_only`: only collaborators of this file can access `anyone_in_org`: users within the same orgnization as the file owner can access `anyone_with_link`: anyone can access this file, including anonymous user. -
rolestring, possible values:"viewer", "commenter", "editor"— Role to collaborate. This field is empty when `share_scope` is set to `collaborators_only`.
-
Example:
{
"general_access_setting": {
"share_scope": "anyone_in_org",
"role": "viewer"
}
}
Responses
Status: 204 Nothing to return.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission Denied.
Status: 404 **HTTP Status Code:** `404` <br> Not Found File not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a new file from content
- Method:
POST - Path:
/docs/import_content - Tags: Import
Creates a new doc from Markdown content.
The Markdown content is limited to 100 KB in size.
Scopes: docs_import:write
Granular Scopes: docs:write:import
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
contentstring— The Markdown-formatted content. If the content is empty, an empty document will be created. -
file_namestring— The name of the file. -
parent_idstring— The ID of the parent file. The newly created file will become a child of this parent. If this parameter is omitted, the file will be placed under **My Docs**. Use `root` to represent the top-level folder of the current user. Folders can only be created under **My Docs**, a shared folder, or another folder.
Example:
{
"file_name": "Q3 Plan",
"parent_id": "fIdgryoPSZ-Jm34Ag-OX7A",
"content": "# Project Overview This document provides a concise outline for a sample project, including goals, milestones, tasks, and open questions. ## 1. Goals - Define the project scope clearly. - Deliver a working prototype by the target date. - Ensure documentation is complete and maintainable. ## 2. Milestones | Milestone | Description | Target Date | |----------|-------------|--------------| | M1 | Requirement gathering | 2025-01-15 | | M2 | Prototype ready | 2025-02-10 | | M3 | Final review | 2025-03-01 | ## 3. Tasks - [ ] Set up development environment - [ ] Draft technical design - [ ] Implement core features - [ ] Write unit tests - [ ] Prepare demo ## 4. Architecture Diagram (Mermaid) ```mermaid flowchart TD A[Client] --> B[API Gateway] B --> C[Service A] B --> D[Service B] D --> E[Database] ``` ## 5. Open Questions - Should we adopt a monorepo structure? - Which logging strategy is preferred? - How should we structure integration tests? ## 6. Notes Add any additional remarks or context here."
}
Responses
Status: 201 The uploaded file is being converted into a doc file.
Content-Type: application/json
-
file_id(required)string— The newly created file ID. -
file_link(required)string— The URL of the file.
Example:
{
"file_id": "ch4L4KKgQVesEJcqdt1qIw",
"file_link": "https://docs.zoom.us/doc/ch4L4KKgQVesEJcqdt1qIw"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5005` <br> Incorrect file format. <br> **Error Code:** `5109` <br> The size of content exceeds the limit. <br> **Error Code:** `5110` <br> The number of images exceeds the limit. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a new file by import
- Method:
POST - Path:
/docs/imports - Tags: Import
Creates a new file from a file upload.
When importing the uploaded file as a specified type of Docs file:
-
doc- Upload file size limit is 10MB.
- The size limit for a single Block's content is 1MB.
- Maximum number of Blocks allowed is 20,000.
-
data_table- Upload file size limit is 10MB.
- Maximum number of columns allowed in a single data table is 200.
- The size limit for a single Block's content is 1MB.
- Maximum number of Blocks allowed in a single data table is 20,000.
When importing an HTML compressed package exported from Notion into Docs:
- Maximum allowed size for a single zip archive is 4GB.
- Maximum number of files that can be imported into Docs within a single ZIP file is 100,000.
- The maximum depth of parent-child relationships between files in the tree structure is 20.
- Maximum number of child nodes allowed per node in the tree is 2,000.
Scopes: docs_import:write,docs_import:write:admin
Granular Scopes: docs:write:import,docs:write:import:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
file_upload_id(required)string— The ID of the file upload. Ensure the file is valid, within the size limit, and in a supported format. -
file_upload_type(required)string, possible values:"docx", "txt", "markdown", "csv", "xlsx", "notion_zip", "html"— The supported file format for upload. For file type `doc`, the supported formats are `.docx`, `.txt`, `.html` and `.md`. For file type `data_table`, the supported formats are `.xlsx` and `.csv`. For the zip file in HTML format exported from Notion, use `notion_zip`. -
file_namestring— The name of the file. -
file_typestring, possible values:"doc", "data_table", default:"doc"— The type of the file created after import. -
parent_idstring— The ID of the parent file. The newly created file will become a child of this parent. If this parameter is omitted, the file will be placed under **My Docs**. Use `root` to represent the top-level folder of the current user. Folders can only be created under **My Docs**, a shared folder, or another folder. -
user_idstring— When invoked with the `admin` scope, this operation runs on behalf of the specified user. Permissions are validated against that user. This parameter is required with the `admin` scope and has no effect otherwise.
Example:
{
"file_name": "Q3 Plan",
"file_type": "doc",
"parent_id": "fIdgryoPSZ-Jm34Ag-OX7A",
"file_upload_id": "aBvhhhyjQUal6HacwXlYwe",
"file_upload_type": "docx",
"user_id": "9BGgfjrQTayGWw_422j1Bw"
}
Responses
Status: 201 The uploaded file is being converted into a Docs file.
Content-Type: application/json
-
import_id(required)string— The unique ID for your import. Use this ID to check the import status via the **Get file import status** endpoint (GET /docs/imports/{importId}/status).
Example:
{
"import_id": "ccbb4d8f72774741af8b8141f92e6d83"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5004` <br> File size limit exceeded. <br> **Error Code:** `5005` <br> Incorrect file format. <br> **Error Code:** `20001` <br> Invalid `user_id` for `admin` scope. <br> **Error Code:** `20002` <br> `parent_id` file not found. <br> **Error Code:** `20003` <br> Invalid `file_type`. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden Permission is needed to create children under this file.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5007` <br> File upload does not exist. <br>
Get file import status
- Method:
GET - Path:
/docs/imports/{importId}/status - Tags: Import
Use this API to query the status of a new file by import. Before using this API, confirm that you have invoked the API Create a new file by import endpoint and obtained the import_id.
Scopes: docs_import:read,docs_import:read:admin
Granular Scopes: docs:read:import,docs:read:import:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 Retrieves the docs file import result.
Content-Type: application/json
-
file_id(required)string— The file ID is `nullable`. This value is returned only when the status is `succeeded`. The zip file in HTML format exported from Notion may contain data for one or more files; importing will only return the root ID of the imported files. -
file_type(required)string, possible values:"doc", "data_table"— The type of the created file. -
status(required)string, possible values:"succeeded", "processing", "failed"— The status of the file created by importing an uploaded file. Enum: `processing` - The uploaded file is being converted. `succeeded` - The uploaded file has been converted successfully. `failed` - The uploaded file has failed to convert.
Example:
{
"status": "processing",
"file_id": "ch4L4KKgQVesEJcqdt1qIw",
"file_type": "doc"
}