Zoom Phone Fax API

The Fax API from Zoom Phone — 6 operation(s) for fax.

Operations 8

POST /fax/files Upload fax file #
GET /phone/extension/{extensionId}/fax/logs Get extension's fax logs #
POST /phone/fax/documents Send fax #
GET /phone/fax/logs Get account's fax logs #
GET /phone/fax/logs/{faxLogId} Get fax log details #
DELETE /phone/fax/logs/{faxLogId} Delete fax log #
PATCH /phone/fax/logs/{faxLogId} Update fax log read status #
GET /phone/fax/logs/{faxLogId}/file/{fileId} Download fax file #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoom-phone-fax-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoom-phone-fax-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Fax API
  description: "You can access information from Zoom with Zoom Phone APIs to build private services or public applications on the [Zoom App Marketplace](https://marketplace.zoom.us/).\n\n  To learn how to get your credentials and create private or public applications, see Zoom APIs use [OAuth 2.0 authorization](https://developers.zoom.us/docs/integrations/oauth/). \n\n  All endpoints are available through `https` at `api.zoom.us/v2/`. For instance, `https://api.zoom.us/v2/users/` returns all users on an account. You'll receive a `403` error message if you have not set up Zoom Phone."
  termsOfService: https://zoom.us/docs/en-us/zoom_api_license_and_tou.html
  contact:
    name: Zoom Developers
    url: https://developer.zoom.us/
  version: '2'
servers:
- url: https://api.zoom.us/v2
tags:
- name: Fax
paths:
  /fax/files:
    post:
      tags:
      - Fax
      summary: Upload fax file
      description: 'Uploads fax file


        **Note:**

        * Please use `https://fileapi.zoom.us` instead of `https://api.zoom.us`, the full path is `https://fileapi.zoom.us/v2/fax/files`

        * Supported file formats: `.zip`

        * The maximum size of file is 50MB


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:send_fax`,`phone:write:send_fax:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`'
      operationId: UploadFaxFiles
      parameters:
      - name: expire
        in: query
        description: The time to live in seconds for the uploaded file.
        required: false
        schema:
          maximum: 604800
          minimum: 1
          type: number
          example: 3600
          default: 259200
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - file
              type: object
              properties:
                file:
                  type: object
                  description: 'The fax file which need upload.


                    The ZIP file may contain files of the following types:

                    * `pdf`

                    * `jpg`

                    * `jpeg`

                    * `txt`

                    * `png`

                    * `doc`

                    * `docx`


                    The ZIP file should contain files named using the format {order}.{type}. The order defines the page sequence for the fax. For example:

                    * `1.pdf` (first page)

                    * `2.txt` (second page)

                    * `3.png` (third page)


                    For multi-page documents, additional files will be placed immediately after the preceding file in the sequence.'
              example: 'Content-Disposition: form-data; name=""; filename="Test.zip" Content-Type: application/zip'
      responses:
        '201':
          description: File successfully uploaded.
          content:
            application/json:
              schema:
                required:
                - file_id
                type: object
                properties:
                  file_id:
                    type: string
                    description: Fax ZIP file ID
                    example: PM6G6YqvTu-7Yg3xJpFpgA
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1001` <br>\n File size exceeded maximum 50MB <br>\n**Error Code:** `1002` <br>\n Invalid expire, should between 1 and 604800 seconds <br>\n"
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:write
        - phone:write:admin
        - phone:write:send_fax
        - phone:write:send_fax:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:write:send_fax
        - phone:write:send_fax:admin
  /phone/extension/{extensionId}/fax/logs:
    get:
      tags:
      - Fax
      summary: Get extension's fax logs
      description: 'Returns the extension''s fax logs.


        **Prerequisites**

        * User must belong to a Business or Enterprise account.

        * User must have a Zoom Phone license.


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read`,`phone:read:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:list_fax_log`,`phone:read:list_fax_log:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`'
      operationId: Getuser'sfaxlogs
      parameters:
      - name: extensionId
        in: path
        description: The extension ID of the fax log owner.
        required: true
        schema:
          type: string
          example: VLhIp1jHR_Sgu96DLJpjag
      - name: page_size
        in: query
        description: 'The number of records returned within a single API call.


          The default is **30** and the maximum is **300**.'
        required: false
        schema:
          maximum: 300
          minimum: 1
          type: integer
          example: 30
      - name: next_page_token
        in: query
        description: The token to retrieve the next page of results.
        required: false
        schema:
          type: string
          example: w3cCmMNsRc-pMFhksHrRdQ
      - name: sender_number
        in: query
        description: ThesSender's fax number in E164 format.
        required: false
        schema:
          type: string
          example: '+12093190827'
      - name: receiver_number
        in: query
        description: The receiver's fax number in E164 format.
        required: false
        schema:
          type: string
          example: '+12093190827'
      - name: from
        in: query
        description: "The start time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format. \n\nThe date range defined by the `from` and `to` parameters should be one month, as the response only includes one month's worth of data at a time. "
        required: false
        schema:
          type: string
          example: '2025-12-01'
      - name: to
        in: query
        description: "This field is **required** only when the `from` parameter is specified. \n\nThe end time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format, the same format as the `from` parameter."
        required: false
        schema:
          type: string
          example: '2025-12-31'
      responses:
        '200':
          description: Successful response with fax log records
          content:
            application/json:
              schema:
                required:
                - fax_logs
                - total_records
                type: object
                properties:
                  next_page_token:
                    type: string
                    description: The token to retrieve the next page of results.
                    example: w3cCmMNsRc-pMFhksHrRdQ
                  from:
                    type: string
                    description: The start date and time of the query.
                    format: date
                    example: '2025-12-01'
                  to:
                    type: string
                    description: The end date and time of the query.
                    format: date
                    example: '2025-12-31'
                  total_records:
                    type: integer
                    description: The total number of matching fax logs.
                    example: 300
                  fax_logs:
                    type: array
                    description: The list of fax logs.
                    items:
                      type: object
                      properties:
                        fax_log_id:
                          type: string
                          description: The Zoom phone fax log's unique ID.
                          example: w2cCmMNsRc-pMFhksHrRdQ
                        fax_id:
                          type: string
                          description: The Zoom phone fax's unique ID.
                          example: 6A2BE84EE494479B9AFA29F4BB8A8EA6
                        site_id:
                          type: string
                          description: The site's unique ID.
                          example: rtZRykrtTmKSWXJeW-xsBg
                        site_name:
                          type: string
                          description: The site's name.
                          example: Main Site
                        direction:
                          type: string
                          description: The fax log's direction.
                          example: outbound
                          enum:
                          - outbound
                          - inbound
                        extension_id:
                          type: string
                          description: The owner's extension ID.
                          example: VLhIp1jHR_Sgu96DLJpjag
                        extension_type:
                          type: string
                          description: The extension type of fax log owner.
                          example: callQueue
                          enum:
                          - user
                          - callQueue
                          - autoReceptionist
                          - commonArea
                          - sharedLineGroup
                        sender_extension_id:
                          type: string
                          description: The sender's extension ID.
                          example: VLhIp1jHR_Sgu96DLJpjag
                        sender_extension_type:
                          type: string
                          description: The sender's extension type.
                          example: user
                          enum:
                          - user
                          - callQueue
                          - autoReceptionist
                          - commonArea
                          - sharedLineGroup
                        sender_extension_number:
                          type: string
                          description: The sender's extension number.
                          example: '123'
                        sender_name:
                          type: string
                          description: The sender's name.
                          example: Tester 1
                        sender_number:
                          type: string
                          description: The sender's fax number.
                          example: '+12092080933'
                        sender_type:
                          type: string
                          description: The sender's type.
                          example: client
                          enum:
                          - client
                          - ata
                          - pstn
                          - email
                          - openapi
                        sender_location:
                          type: string
                          description: The sender's location.
                          example: California
                        sender_user_agent:
                          type: string
                          description: The sender's user agent.
                          example: Poly/PolyATA400-4.0.2.6778
                        receiver_extension_id:
                          type: string
                          description: The receiver's extension ID.
                          example: iKBkkqgGQV-bEttrhP5T0g
                        receiver_extension_type:
                          type: string
                          description: The receiver's extension type.
                          example: user
                          enum:
                          - user
                          - callQueue
                          - autoReceptionist
                          - commonArea
                          - sharedLineGroup
                        receiver_extension_number:
                          type: string
                          description: The receiver's extension number.
                          example: '123'
                        receiver_name:
                          type: string
                          description: The receiver's name.
                          example: Tester 2
                        receiver_number:
                          type: string
                          description: The receiver's fax number.
                          example: '+12092080933'
                        receiver_type:
                          type: string
                          description: The receiver's type.
                          example: ata
                          enum:
                          - client
                          - ata
                          - pstn
                        receiver_location:
                          type: string
                          description: The receiver's location.
                          example: Alabama
                        receiver_user_agent:
                          type: string
                          description: The receiver's user agent.
                          example: Poly/PolyATA400-4.0.2.6778
                        file_id:
                          type: string
                          description: The fax PDF file ID.
                          example: bayEy0y9RsadUbuEGrZBYA
                        file_pages_count:
                          type: integer
                          description: The fax file pages count.
                          example: 6
                        status:
                          type: string
                          description: The fax status.
                          example: sent
                          enum:
                          - failed
                          - processing
                          - submitted
                          - sent
                          - received
                        read_status:
                          type: string
                          description: The fax log's read status.
                          example: read
                          enum:
                          - read
                          - unread
                        create_time:
                          type: string
                          description: The fax log created time in UTC time zone.
                          format: date-time
                          example: '2021-10-08T16:12:04Z'
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n "
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read
        - phone:read:admin
        - phone:read:list_fax_log
        - phone:read:list_fax_log:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read
        - phone:read:admin
        x-granular-scopes:
        - phone:read:list_fax_log
        - phone:read:list_fax_log:admin
  /phone/fax/documents:
    post:
      tags:
      - Fax
      summary: Send fax
      description: "Sends a fax to receivers. \n\n**Prerequisites** \n* User must belong to a Business or Enterprise account. \n* User must have a Zoom Phone license.\n\n**Note:**\nFaxes sent through the API will first use the account-level page pool, if available. \n\nIf no page pool is available, pages meter individually. Unlimited faxing does not apply to faxes sent through the API.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:send_fax`,`phone:write:send_fax:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: SendEFax
      requestBody:
        content:
          application/json:
            schema:
              required:
              - file_id
              - receivers
              - sender_number
              type: object
              properties:
                sender_number:
                  type: string
                  description: The fax sender's number.
                  example: '+12093190827'
                sender_name:
                  type: string
                  description: The fax sender's name.
                  example: Kitty
                file_id:
                  type: string
                  description: 'The fax ZIP file ID.

                    Users can upload a ZIP file with fax files through the Upload Fax File endpoint.


                    The ZIP file may contain files of the following types:

                    * `pdf`

                    * `jpg`

                    * `jpeg`

                    * `txt`

                    * `png`

                    * `doc`

                    * `docx`


                    The ZIP file should contain files named using the format {order}.{type}. The order defines the page sequence for the fax. For example:

                    * `1.pdf` (first page)

                    * `2.txt` (second page)

                    * `3.png` (third page)


                    For multi-page documents, additional files will be placed immediately after the preceding file in the sequence.'
                  example: 9PrstHgaRYW4ywAtCWRXwQ
                receivers:
                  maxItems: 50
                  type: array
                  description: A list of fax receivers. A maximum of 50 receivers is allowed.
                  items:
                    required:
                    - receiver_number
                    type: object
                    properties:
                      receiver_number:
                        type: string
                        description: The fax receiver's number.
                        example: '+12093190827'
                      receiver_name:
                        type: string
                        description: The fax receiver's name.
                        example: Mickey
      responses:
        '201':
          description: A list of fax delivery results for each recipient.
          content:
            application/json:
              schema:
                type: object
                properties:
                  fax_id:
                    type: string
                    description: The Zoom Phone fax ID.
                    example: 6A2BE84EE494479B9AFA29F4BB8A8EA6
                  receivers:
                    maxItems: 50
                    minItems: 1
                    type: array
                    items:
                      required:
                      - receiver_number
                      - status
                      type: object
                      properties:
                        receiver_number:
                          type: string
                          description: The fax receiver's number.
                          example: '+12093190827'
                        fax_log_id:
                          type: string
                          description: The Zoom Phone fax log ID.
                          example: Jvj4EboFSLOReVbR24xNkA
                        status:
                          type: string
                          description: 'The status of the current receiver''s number:

                            * `success` - Fax sent successfully

                            * `unknown` - Unknown error occurred

                            * `invalid_parameter` - Invalid parameter provided

                            * `sender_fax_disabled` - Sender''s fax feature is disabled

                            * `invalid_sender_number` - Invalid sender number

                            * `invalid_receiver_number` - Invalid receiver number

                            * `receiver_fax_disabled` - Receiver''s fax feature is disabled'
                          example: success
                          enum:
                          - success
                          - unknown
                          - invalid_parameter
                          - sender_fax_disabled
                          - invalid_sender_number
                          - invalid_receiver_number
                          - receiver_fax_disabled
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation Failed. <br>\n"
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:write
        - phone:write:admin
        - phone:write:send_fax
        - phone:write:send_fax:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:write:send_fax
        - phone:write:send_fax:admin
  /phone/fax/logs:
    get:
      tags:
      - Fax
      summary: Get account's fax logs
      description: 'Returns the account''s fax logs.


        **Prerequisites**

        * User must belong to a Business or Enterprise account.

        * User must have a Zoom Phone license.


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:list_fax_log:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`'
      operationId: GetAccount'sFaxLogs
      parameters:
      - name: page_size
        in: query
        description: 'The number of records returned within a single API call.


          The default is **30** and the maximum is **300**.'
        required: false
        schema:
          type: integer
          example: 30
      - name: next_page_token
        in: query
        description: The token to retrieve the next page of results.
        required: false
        schema:
          type: string
          example: w3cCmMNsRc-pMFhksHrRdQ
      - name: site_id
        in: query
        description: The site's unique ID.
        required: false
        schema:
          type: string
          example: D9R3I54RTIKkqb73LvNnQg
      - name: sender_number
        in: query
        description: The sender's fax number in E164 format.
        required: false
        schema:
          type: string
          example: '12093190827'
      - name: receiver_number
        in: query
        description: The receiver's fax number in E164 format.
        required: false
        schema:
          type: string
          example: '12093190827'
      - name: extension_type
        in: query
        description: The extension type of fax's log owner.
        required: false
        schema:
          type: string
          example: callQueue
          enum:
          - user
          - callQueue
          - autoReceptionist
          - commonArea
          - sharedLineGroup
      - name: from
        in: query
        description: "The start time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format. \n\nThe date range defined by the `from` and `to` parameters should be one month as the response only includes one month's worth of data at a time. "
        required: false
        schema:
          type: string
          example: '2025-12-01'
      - name: to
        in: query
        description: "This field is **required** only when the `from` parameter is specified. \n\nThe end time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format, the same format as the `from` parameter."
        required: false
        schema:
          type: string
          example: '2025-12-31'
      responses:
        '200':
          description: Successful response with fax log records
          content:
            application/json:
              schema:
                required:
                - fax_logs
                - total_records
                type: object
                properties:
                  next_page_token:
                    type: string
                    description: The token to retrieve the next page of results.
                    example: w3cCmMNsRc-pMFhksHrRdQ
                  from:
                    type: string
                    description: The start date and time of the query.
                    format: date
                    example: '2025-12-01'
                  to:
                    type: string
                    description: The end date and time of the query.
                    format: date
                    example: '2025-12-31'
                  total_records:
                    type: integer
                    description: The total number of matching fax logs.
                    example: 300
                  fax_logs:
                    type: array
                    description: The list of fax logs.
                    items:
                      type: object
                      properties:
                        fax_log_id:
                          type: string
                          description: The Zoom phone fax log's unique ID.
                          example: w2cCmMNsRc-pMFhksHrRdQ
                        fax_id:
                          type: string
                          description: The Zoom phone fax's unique ID.
                          example: 6A2BE84EE494479B9AFA29F4BB8A8EA6
                        site_id:
                          type: string
                          description: The site's unique ID.
                          example: rtZRykrtTmKSWXJeW-xsBg
                        site_name:
                          type: string
                          description: The site's name.
                          example: Main Site
                        direction:
                          type: string
                          description: The fax log's direction.
                          example: outbound
                          enum:
                          - outbound
                          - inbound
                        extension_id:
                          type: string
                          description: The owner's extension ID.
                          example: VLhIp1jHR_Sgu96DLJpjag
                        extension_type:
                          type: string
                          description: The extension type of fax log owner.
                          example: callQueue
                          enum:
                          - user
                          - callQueue
                          - autoReceptionist
                          - commonArea
                          - sharedLineGroup
                        sender_extension_id:
                          type: string
                          description: The sender's extension ID.
                          example: VLhIp1jHR_Sgu96DLJpjag
                        sender_extension_type:
                          type: string
                          description: The sender's extension type.
                          example: user
                          enum:
                          - user
                          - callQueue
                          - autoReceptionist
                          - commonArea
                          - sharedLineGroup
                        sender_extension_number:
                          type: string
                          description: The sender's extension number.
                          example: '123'
                        sender_name:
                          type: string
                          description: The sender's name.
                          example: Tester 1
                        sender_number:
                          type: string
                          description: The sender's fax number.
                          example: '+12092080933'
                        sender_type:
                          type: string
                          description: The sender's type.
                          example: client
                          enum:
                          - client
                          - ata
                          - pstn
                          - email
                          - openapi
                        sender_location:
                          type: string
                          description: The sender's location.
                          example: California
                        sender_user_agent:
                          type: string
                          description: The sender's user agent.
                          example: Poly/PolyATA400-4.0.2.6778
                        receiver_extension_id:
                          type: string
                          description: The receiver's extension ID.
                          example: iKBkkqgGQV-bEttrhP5T0g
                        receiver_extension_type:
                          type: string
                          description: The receiver's extension type.
                          example: user
                          enum:
                          - user
                          - call_queue
                          - auto_receptionist
                          - common_area
                          - shared_line_group
                        receiver_extension_number:
                          type: string
                          description: The receiver's extension number.
                          example: '123'
                        receiver_name:
                          type: string
                          description: The receiver's name.
                          example: Tester 2
                        receiver_number:
                          type: string
                          description: The receiver's fax number.
                          example: '+12092080933'
                        receiver_type:
                          type: string
                          description: The receiver's type.
                          example: ata
                          enum:
                          - client
                          - ata
                          - pstn
                        receiver_location:
                          type: string
                          description: The receiver's location.
                          example: Alabama
                        receiver_user_agent:
                          type: string
                          description: The receiver's user agent.
                          example: Poly/PolyATA400-4.0.2.6778
                        file_id:
                          type: string
                          description: The fax PDF file ID.
                          example: bayEy0y9RsadUbuEGrZBYA
                        file_pages_count:
                          type: integer
                          description: The fax file pages count.
                          example: 6
                        status:
                          type: string
                          description: The fax status.
                          example: sent
                          enum:
                          - failed
                          - processing
                          - submitted
                          - sent
                          - received
                        read_status:
                          type: string
                          description: The fax log's read status.
                       

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoom-phone/refs/heads/main/openapi/zoom-phone-fax-api-openapi.yml