Canvas

  • OpenAPI Version: 3.1.1
  • API Version: 2

Zoom Docs

Servers

  • URL: https://api.zoom.us/v2

Operations

Download archive attachments

  • Method: GET
  • Path: /docs/archive_attachments
  • Tags: Archiving

Batch retrieve download URLs for attachments in archived files.

Scopes: docs_archiving:read:admin

Granular Scopes: docs:read:archive:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 Returns a list of attachments with their download URLs or failure reasons.
Content-Type: application/json
  • attachments

    array — List of attachments with their download URLs or failure reasons.

    Items:

    • attachment_id (required)

      string — The attachment ID.

    • download_url

      string — The signed download URL for the attachment, valid for 1 hour. Empty if the download URL could not be retrieved.

    • failed_reason

      string — The reason for failure if the download URL could not be retrieved. Empty if the download URL was successfully retrieved.

Example:

{
  "attachments": [
    {
      "attachment_id": "QISQ2bgbSpmjiFFee4XExB",
      "download_url": "https://example.com/download/document.pdf",
      "failed_reason": "The resource does not exist."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid parameters.
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 doc archive data

  • Method: GET
  • Path: /docs/archives
  • Tags: Archiving

List archived documents for a given account within a specified time range.

Each archive record includes a download_url for downloading the complete archived content as a JSON file.

See the download_url field description for the full JSON schema definition.

Scopes: docs_archiving:read:admin

Granular Scopes: docs:read:archive:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The returned archived files list.
Content-Type: application/json
  • from (required)

    string, format: date-time — The queried start date.

  • 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.

  • page_size (required)

    integer, format: int32 — The number of records returned per page in a single API call.

  • to (required)

    string, format: date-time — The queried end date.

  • total_records (required)

    integer — The total number of returned sessions records.

  • data

    array — List of archive detail records under this account.

    Items:

    • archive_time (required)

      string, format: date-time — The time when this archive was created, in RFC 3339 format.

    • download_url (required)

      string — The download URL contains the complete archived content of this version and is valid for 1 hour. Please access and download it within the validity period. The downloaded content is a **JSON** object which contains the following structure: **Archive Download Content Schema** The JSON schema definition for the content downloaded from the `download_url` returned in archive records. Each archive is a complete point-in-time snapshot of a Zoom document, including its Markdown content, comments, reactions, user information, file metadata, and attachment references. The file is served as `application/json` and the download URL is valid for 1 hour. ## Top-Level Fields | Field | Type | Required | Description | |-------|------|----------|-------------| | `file_id` | string | Yes | Unique identifier of the archived document | | `version` | integer | Yes | Archive version number (monotonically increasing per file) | | `product` | string | Yes | Product type of the archived document. Values: `docs`, `my_notes`, `meeting_summary` | | `trigger_type` | string | Yes | Event that triggered this archive. Values: `doc_edit`, `doc_create`, `doc_view`, `comment_change` | | `archive_time` | string | Yes | Document archived time in RFC 3339 format | | `file_metadata` | object | No | Document metadata snapshot at archive time. Structure defined in **FileMetadata** below | | `page_cover` | string | No | Page cover image URL | | `page_icon` | string | No | Page icon (emoji or URL) | | `operator` | object | No | User who triggered this archive event. Structure defined in **UserInfo** below | | `markdown` | string | Yes | Full document content exported as Markdown | | `threads` | array | No | Comment threads on the document. Each element follows the **Thread** structure below | | `page_reactions` | array | No | Page-level reactions (e.g., emoji reactions on the document). Each element follows the **PageReaction** structure below | | `users` | object | No | Map of `user_id` → user info for all users referenced in this archive. Each value follows the **UserInfo** structure below | | `attachments` | array | No | Document-level attachment metadata. Each element follows the **Attachment** structure below | ## Nested Object Definitions ### FileMetadata Snapshot of document properties at the time of archiving. | Field | Type | Required | Description | |-------|------|----------|-------------| | `title` | string | Yes | Document title | | `owner_id` | string | Yes | User ID of the document owner | | `owner_name` | string | Yes | Display name of the document owner | | `owner_email` | string | No | Email address of the document owner | | `create_time` | string | Yes | Document creation time in RFC 3339 format | | `last_edit_time` | string | Yes | Last edit time in RFC 3339 format | | `is_deleted` | boolean | Yes | Whether the document was deleted at archive time | | `delete_time` | string | No | Deletion time in RFC 3339 format. Present only if `is_deleted` is true | ### UserInfo User identity information. Used in `operator` field and `users` map. | Field | Type | Required | Description | |-------|------|----------|-------------| | `user_id` | string | Yes | Unique user identifier | | `display_name` | string | Yes | User's display name | | `email` | string | No | User's email address | ### Thread A comment thread attached to a specific location in the document. | Field | Type | Required | Description | |-------|------|----------|-------------| | `thread_id` | string | Yes | Unique thread identifier | | `root_block_id` | string | Yes | Block ID where the thread is anchored | | `block_ids` | array of string | No | Additional block IDs related to the thread | | `selected_content` | string | No | The selected text that the comment is attached to | | `comment_type_name` | string | Yes | Comment type. Accepted values: `block`, `page` ,`discussion`, `suggestion` | | `thread_status` | string | Yes | Thread status. Values: `open`, `resolved` | | `comment_count` | integer | Yes | Number of comments in this thread | | `created_by` | string | Yes | User ID who created the thread | | `updated_by` | string | No | User ID who last updated the thread | | `create_time` | string | Yes | Thread creation time in RFC 3339 format | | `modify_time` | string | Yes | Last modification time in RFC 3339 format | | `resolve_time` | string | No | Time when the thread was resolved in RFC 3339 format | | `latest_comment_create_time` | string | Yes | Creation time of the most recent comment in RFC 3339 format | | `comments` | array | No | List of comments in this thread. Each element follows the **Comment** structure below | | `is_deleted` | boolean | No | Whether the thread has been deleted | | `delete_time` | string | No | Deletion time in RFC 3339 format | ### Comment An individual comment within a thread. | Field | Type | Required | Description | |-------|------|----------|-------------| | `comment_id` | string | Yes | Unique comment identifier | | `thread_id` | string | Yes | Parent thread identifier | | `root_block_id` | string | Yes | Block ID where the comment is anchored | | `parent_id` | string | No | Parent comment ID (for nested replies) | | `content_plain_text` | string | Yes | Plain text content of the comment | | `attachments` | array | No | Attachments on this comment. Each element follows the **Attachment** structure below | | `created_by` | string | Yes | User ID who created the comment | | `updated_by` | string | No | User ID who last edited the comment | | `is_edited` | boolean | Yes | Whether the comment has been edited | | `create_time` | string | Yes | Comment creation time in RFC 3339 format | | `modify_time` | string | Yes | Last modification time in RFC 3339 format | | `reactions` | array | No | Reactions on this comment. Each element follows the **Reaction** structure below | | `is_deleted` | boolean | No | Whether the comment has been deleted | | `delete_time` | string | No | Deletion time in RFC 3339 format | ### Reaction An emoji reaction on a comment. | Field | Type | Required | Description | |-------|------|----------|-------------| | `reaction_id` | string | Yes | Unique reaction identifier | | `comment_id` | string | Yes | Comment this reaction belongs to | | `reaction` | string | Yes | Emoji value| | `created_by` | string | Yes | User ID who added the reaction | | `create_time` | string | Yes | Reaction creation time in RFC 3339 format | ### PageReaction An emoji reaction on the document itself. | Field | Type | Required | Description | |-------|------|----------|-------------| | `reaction_id` | string | Yes | Unique reaction identifier | | `reaction` | string | Yes | Emoji value| | `reaction_type` | integer | Yes | Reaction type. `1` = block-level reaction, `2` = page-level reaction | | `created_by` | string | Yes | User ID who added the reaction | | `create_time` | string | Yes | Reaction creation time in RFC 3339 format | ### Attachment Basic metadata for a file attachment embedded in the document or comment. To download the actual attachment file, use the `Download Archive Attachments` OpenAPI with the `attachment_id`. | Field | Type | Required | Description | |-------|------|----------|-------------| | `attachment_id` | string | Yes | Unique attachment identifier. | | `name` | string | Yes | Attachment name | | `type` | string | Yes | MIME type (e.g., `image/png`, `application/pdf`) | | `size` | integer | Yes | File size in bytes | ## JSON Example ```json { "file_id": "zD83pVKRS2WrCBFHsfPMng", "version": 3, "product": "docs", "trigger_type": "comment_change", "archive_time": "2026-04-09T08:34:23Z", "file_metadata": { "title": "Q1 Project Plan", "owner_id": "OnsTZFMpTUWD_YTo2Z_3Lg", "owner_name": "Alice Johnson", "owner_email": "alice.johnson@example.com", "create_time": "2026-01-15T09:00:00Z", "last_edit_time": "2026-04-09T08:30:00Z", "is_deleted": false }, "page_cover": "https://example.com/covers/q1-plan.png", "page_icon": "📋", "operator": { "user_id": "KxR4mWVeQdGt7Lp1Nf_08w", "display_name": "Bob Smith", "email": "bob.smith@example.com" }, "markdown": "# Q1 Project Plan\n\n## Goals\n\n- Launch feature A\n- Complete migration B\n\n## Timeline\n\n| Phase | Date |\n|-------|------|\n| Design | Jan 15 |\n| Dev | Feb 1 |\n| QA | Feb 20 |\n", "threads": [ { "thread_id": "a084b2c7874c42ce9fe5b976160a332d", "root_block_id": "5a10e3c540dc4914ae7c846fa497f183", "block_ids": ["5a10e3c540dc4914ae7c846fa497f183"], "selected_content": "Launch feature A", "comment_type_name": "block", "thread_status": "open", "comment_count": 2, "created_by": "Hj2sNkLdS5qPwU8rY_v7Xg", "create_time": "2026-04-01T10:00:00Z", "modify_time": "2026-04-08T14:00:00Z", "latest_comment_create_time": "2026-04-08T14:00:00Z", "comments": [ { "comment_id": "fcf7bf67fe134d20a49913c7d1e7ea4f", "thread_id": "a084b2c7874c42ce9fe5b976160a332d", "root_block_id": "5a10e3c540dc4914ae7c846fa497f183", "content_plain_text": "Should we push this to Q2?", "attachments": [ { "attachmentId": "xUt5QFe-Sq6_8YPigKt3Eg", "name": "image.png", "type": "image/png", "size": "171153" } ], "created_by": "Hj2sNkLdS5qPwU8rY_v7Xg", "is_edited": false, "create_time": "2026-04-01T10:00:00Z", "modify_time": "2026-04-01T10:00:00Z", "reactions": [ { "reaction_id": "b7e3f91a2c4d48e6a1d5c8f0e2b4a6d8", "comment_id": "fcf7bf67fe134d20a49913c7d1e7ea4f", "reaction": "👍", "created_by": "OnsTZFMpTUWD_YTo2Z_3Lg", "create_time": "2026-04-02T08:00:00Z" } ] }, { "comment_id": "d2a1c4e6f8b0374a9c5e7d1f3b6a8e0c", "thread_id": "a084b2c7874c42ce9fe5b976160a332d", "root_block_id": "5a10e3c540dc4914ae7c846fa497f183", "parent_id": "fcf7bf67fe134d20a49913c7d1e7ea4f", "content_plain_text": "No, let's keep the original timeline.", "created_by": "OnsTZFMpTUWD_YTo2Z_3Lg", "is_edited": false, "create_time": "2026-04-08T14:00:00Z", "modify_time": "2026-04-08T14:00:00Z" } ] } ], "page_reactions": [ { "reaction_id": "e4f6a8c0d2b4917365e7f1a3c5d8b0e2", "reaction": "🎉", "created_by": "KxR4mWVeQdGt7Lp1Nf_08w", "create_time": "2026-04-05T12:00:00Z" } ], "users": { "OnsTZFMpTUWD_YTo2Z_3Lg": { "user_id": "OnsTZFMpTUWD_YTo2Z_3Lg", "display_name": "Alice Johnson", "email": "alice.johnson@example.com" }, "KxR4mWVeQdGt7Lp1Nf_08w": { "user_id": "KxR4mWVeQdGt7Lp1Nf_08w", "display_name": "Bob Smith", "email": "bob.smith@example.com" }, "Hj2sNkLdS5qPwU8rY_v7Xg": { "user_id": "Hj2sNkLdS5qPwU8rY_v7Xg", "display_name": "Charlie Brown", "email": "charlie.brown@example.com" } }, "attachments": [ { "attachment_id": "Tp7xKqW3RvNmYs9dF_c2Jw", "name": "architecture-diagram.png", "type": "image/png", "size": 245760 }, { "attachment_id": "Bm5nQeL8SxHkAr1gU_v4Zw", "name": "requirements.pdf", "type": "application/pdf", "size": 1048576 } ] } ``` ## Notes - All timestamp fields use **RFC 3339** string format (UTC). - The `users` map provides a lookup table for all `user_id` values referenced throughout the archive (in `operator`, `created_by`, `updated_by`, etc.). - The `markdown` field contains the complete document content at the time of archiving, exported in Markdown format. - The `attachments` at the top level are **document-level** attachments only. Comment-level attachments are nested within each comment's `attachments` field.

    • file_id (required)

      string — Unique identifier of the archived file.

    • product (required)

      string, possible values: "docs", "my_notes", "meeting_summary" — Product type of the archived document.

    • trigger_type (required)

      string, possible values: "doc_create", "doc_edit", "doc_view", "comment_change" — Type of event that triggered this archive

    • version (required)

      integer, format: uint32 — Archive version number that increments starting from 1.

Example:

{
  "from": "2026-02-13T00:00:00Z",
  "to": "2026-03-14T00:00:00Z",
  "page_size": 20,
  "next_page_token": "IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2",
  "total_records": 30,
  "data": [
    {
      "file_id": "hCSzn_k9SGGXTwjujsF73w",
      "version": 1,
      "product": "docs",
      "trigger_type": "doc_edit",
      "archive_time": "2023-07-27T17:36:34Z",
      "download_url": "https://example.com/download/archive.json"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid parameter.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
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 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
  • collaborators

    array — 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_id

      string — The Zoom Team Chat channel ID. Available when `collaborator_type` = `channel`.

    • email

      string — The email address. Available when `collaborator_type` = `email`.

    • user_id

      string — 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_id

      string — Zoom team chat channel ID.

    • email

      string — Email address.

    • user_id

      string — 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_id

      string — The Zoom Team Chat channel ID. Available when `collaborator_type` = `channel`.

    • email

      string — The email address. Available when `collaborator_type` = `email`.

    • user_id

      string — 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/).

Insert blocks into a document

  • Method: POST
  • Path: /docs/files/{fileId}/blocks
  • Tags: Doc Content

Insert new blocks at a specific position in a document. Accepts XML-formatted block content and supports positioning above, below, or inside a specific parent block. Use the Get file content endpoint with the query parameter format=xml first to fetch the document structure and block IDs.

Scopes: docs_content:write

Granular Scopes: docs:write:content

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • blocks (required)

    string — XML string containing block content. See the [Zoom Docs XML Format Specification](https://developers.zoom.us/docs/zoom-docs/doc-format-specification) for supported block types and syntax.

  • positioning

    object — Block positioning options. At most one of `above_block_id`, `below_block_id`, or `parent_block_id` should be specified. If none are specified, blocks are appended to the end of the document.

    • above_block_id

      string — Block ID to insert above (mutually exclusive with below)

    • below_block_id

      string — Block ID to insert below (mutually exclusive with above)

    • parent_block_id

      string — Parent block ID. Inserts at the end of this parent's children.

Example:

{
  "positioning": {
    "above_block_id": "8d0ad8e130e14d44",
    "below_block_id": "8d0ad8e130e14d44",
    "parent_block_id": "a1b2c3d4e5f6"
  },
  "blocks": "<text>New content</text>"
}

Responses

Status: 201 Successfully inserted blocks.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2000` <br> Block not found. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `4000` <br> File not found. <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/).

Replace a range of blocks

  • Method: POST
  • Path: /docs/files/{fileId}/blocks/replace_range
  • Tags: Doc Content

Replace a contiguous range of sibling blocks with new blocks in a single atomic operation. All blocks between start and end (inclusive) are removed and replaced with the provided XML block content. Important: start_block_id and end_block_id must be direct children of the same parent block (siblings). If they are not siblings, the operation will fail. Use the Get file content endpoint to verify the document structure before calling this endpoint.

Scopes: docs_content:update

Granular Scopes: docs:update:content

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • blocks (required)

    string — XML string containing block content. See the [Zoom Docs XML Format Specification](https://developers.zoom.us/docs/zoom-docs/doc-format-specification) for supported block types and syntax.

  • end_block_id (required)

    string — Block ID of the last block in the range.

  • start_block_id (required)

    string — Block ID of the first block in the range.

Example:

{
  "blocks": "<text>New content</text>",
  "start_block_id": "a1b2c",
  "end_block_id": "d4e5f"
}

Responses

Status: 204 Successfully replaced the specified block range with new blocks.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2000` <br> Block not found. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `4000` <br> File not found. <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/).

Delete a specific block

  • Method: DELETE
  • Path: /docs/files/{fileId}/blocks/{blockId}
  • Tags: Doc Content

Deletes a block and all its content from the document.

Granular Scopes: docs:delete:content

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 Successfully deleted the block.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2000` <br> Block not found. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `4000` <br> File not found. <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/).

Update a specific block

  • Method: PATCH
  • Path: /docs/files/{fileId}/blocks/{blockId}
  • Tags: Doc Content

Updates the content of an existing block using XML-formatted content. Keeps the existing block type and replaces the content. To change the block type, use ReplaceBlockRange.

Scopes: docs_content:update

Granular Scopes: docs:update:content

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json

Example:

{
  "block": "<text>New content</text>"
}

Responses

Status: 204 Block updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2000` <br> Block not found. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `4000` <br> File not found. <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 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_link

    string — The download link for the converted file. This field will be returned when the value of status is `succeeded`.

  • expires_at

    string — 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_content

    string — The document file content in Markdown format.

  • file_name

    string — 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_name

    string, default: "Untitled" — The file name.

  • file_type

    string, possible values: "doc", "folder", "data_table", default: "doc" — The type of a file.

  • parent_id

    string — 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_id

    string — 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_id

    string — 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_name

    string — 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 list

    Items:

    • 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/).

Get user My docs info

  • Method: GET
  • Path: /docs/users/{userId}/root
  • Tags: File Management

Get the specified user's My docs info. My docs is the root of a user's documents.

Example:

When an admin needs to list all children of another user's My docs (/docs/files/{fileId}/children), this API should be called to get the target user's My docs ID as fileId in path.

Scopes: docs:read:admin

Granular Scopes: docs:read:file:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 Returns user My Docs info.
Content-Type: application/json
  • root_id (required)

    string — User My Docs ID.

Example:

{
  "root_id": "dAdqGeghRh6QF4dDe1Ex_A"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found user id 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 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_id

    string — 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_setting

    object — 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.

    • role

      string, 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.

    • role

      string, 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
  • content

    string — The Markdown-formatted content. If the content is empty, an empty document will be created.

  • file_name

    string — The name of the file.

  • parent_id

    string — 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_name

    string — The name of the file.

  • file_type

    string, possible values: "doc", "data_table", default: "doc" — The type of the file created after import.

  • parent_id

    string — 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_id

    string — 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"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> 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/).