Zoom Phone Recordings API

The Recordings API from Zoom Phone — 8 operation(s) for recordings.

Operations 9

GET /phone/call_element/{callElementId}/recording Get a recording by call element ID #
GET /phone/call_logs/{id}/recordings Get recording by call ID #
GET /phone/recording/download/{fileId} Download a phone recording #
GET /phone/recording_transcript/download/{recordingId} Download a phone recording transcript #
GET /phone/recordings Get call recordings #
DELETE /phone/recordings/{recordingId} Delete a call recording #
PATCH /phone/recordings/{recordingId} Update auto delete field #
PUT /phone/recordings/{recordingId}/status Update Recording Status #
GET /phone/users/{userId}/recordings Get user's recordings #

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-recordings-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-recordings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Recordings 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: Recordings
paths:
  /phone/call_element/{callElementId}/recording:
    get:
      tags:
      - Recordings
      summary: Get a recording by call element ID
      description: "Returns an account's [call recording](https://support.zoom.us/hc/en-us/articles/360038521091-Accessing-and-sharing-call-recordings) by the call element's `callElementId`.\n**Prerequisites** \n* A Pro or higher account with Zoom Phone license \n* Account owner or admin privileges\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone_recording:read`,`phone_recording:read:admin`,`phone:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_recording`,`phone:read:call_recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: getPhoneRecordingByCallElementId
      parameters:
      - name: callElementId
        in: path
        description: The ID of the call element.
        required: true
        schema:
          type: string
          example: 20210609-a297ae04-a875-4cfd-85ab-4adcead91edb
      responses:
        '200':
          description: "**HTTP Status Code:** `200`  \n \nOK."
          content:
            application/json:
              schema:
                type: object
                properties:
                  call_id:
                    type: string
                    description: The phone call's unique ID.
                    example: '7069775907364530379'
                  call_element_id:
                    type: string
                    description: The phone call element's unique ID.
                    example: 20210609-a297ae04-a875-4cfd-85ab-4adcead91edb
                  callee_name:
                    type: string
                    description: The callee's contact name.
                    example: User A
                  callee_number:
                    type: string
                    description: The callee's phone number.
                    example: '1000001004'
                  callee_number_type:
                    type: integer
                    description: "The callee's number type: \n* `1` — Internal number. \n* `2` — External number. \n* `3` — Customized emergency number."
                    example: 1
                    enum:
                    - 1
                    - 2
                    - 3
                  caller_name:
                    type: string
                    description: The caller's contact name.
                    example: User B
                  caller_number:
                    type: string
                    description: The caller's phone number.
                    example: '1000123476'
                  caller_number_type:
                    type: integer
                    description: "The caller's number type: \n* `1` — Internal number. \n* `2` — External number."
                    example: 1
                    enum:
                    - 1
                    - 2
                  outgoing_by:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The user's name.
                        example: User B
                      extension_number:
                        type: string
                        description: The user's extension number.
                        example: '123476'
                    description: The user who initiates the call. The current recording must belong to the initiator and the call queue for it to be available.
                  accepted_by:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The user's name.
                        example: User A
                      extension_number:
                        type: string
                        description: The user's extension number.
                        example: '132001'
                    description: The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.
                  date_time:
                    type: string
                    description: The date and time when the recording was received.
                    format: date-time
                    example: '2022-03-08T05:37:23Z'
                  direction:
                    type: string
                    description: 'The call''s direction:

                      * `inbound`

                      * `outbound`'
                    example: inbound
                    enum:
                    - inbound
                    - outbound
                  download_url:
                    type: string
                    description: "The URL from which to download the recording. \n\nFor security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL."
                    example: https://domain/recording/download/EvVNLihbQ1WpeG_ALwnNzg
                  duration:
                    type: integer
                    description: The call recording's duration, in seconds.
                    example: 115
                  end_time:
                    type: string
                    description: The recording's end time.
                    format: date-time
                    example: '2022-03-08T05:39:19Z'
                  id:
                    type: string
                    description: The recording's ID.
                    example: 1dfe35c05f0f4bf1b2e4a8869a731178
                  meeting_uuid:
                    type: string
                    description: The meeting ID associated with the recording, if any.
                    example: egLSRuj2SlWet+wLi87LNA==
                  owner:
                    type: object
                    properties:
                      extension_number:
                        type: integer
                        description: The extension number associated with the call number.
                        format: int64
                        example: 1000123476
                      id:
                        type: string
                        description: The owner's ID.
                        example: NL3cEpSdRc-c2t8aLoZqiw
                      name:
                        type: string
                        description: The name of the owner.
                        example: user@test.com
                      type:
                        type: string
                        description: The owner's type, can be `user`, `callQueue`, or `sharedOffice`(deprecated and to be replaced by `commonArea` after the transition period.)
                        example: user
                        enum:
                        - user
                        - callQueue
                        - commonArea
                      extension_status:
                        type: string
                        description: "This field indicates the status of extension. \n* `inactive` \n* `deleted`"
                        example: deleted
                        enum:
                        - inactive
                        - deleted
                      extension_deleted_time:
                        type: string
                        description: The date time the extension was deleted. It exists only when extension_status is `deleted`.
                        example: '2022-10-14T22:10:54Z'
                    description: The owner of the recording.
                  soft_deleted:
                    type: boolean
                    description: Whether this recording soft deletes and moves to trash.
                    example: true
                  soft_deleted_type:
                    type: string
                    description: This field indicates how the recording was deleted. It exists only when the recording is from trash.
                    example: Manual
                    enum:
                    - Manual
                    - Data Retention
                  deleted_time:
                    type: string
                    description: The time and date the recording was deleted. It exists only when recording is from trash.
                    format: date-time
                    example: '2023-04-18T22:10:49.907Z'
                  days_left_auto_permanently_delete:
                    type: integer
                    description: The number of days left until recording is permanently deleted. If the recording never auto deletes, the value is '-1'. It exists only when recording is from trash.
                    example: 30
                  recording_type:
                    type: string
                    description: The recording type. The allowed value is `OnDemand` or `Automatic`.
                    example: OnDemand
                    enum:
                    - OnDemand
                    - Automatic
                  file_url:
                    type: string
                    description: The download URL for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this url.
                    example: https://domain/recording/download/8f7345c50a654182ab1672fdb3be61ff
                  disclaimer_status:
                    type: integer
                    description: "The status of disclaimer for recording:  \n* `0` - passive/implicit \n* `1` - agree (active/explicit and press 1)  \n* `2` - passive agree (active/explicit and no press)"
                    example: 0
                    enum:
                    - 0
                    - 1
                    - 2
                  caller_account_code:
                    type: string
                    description: 'The caller''s account code. To dial between accounts, use the format: [Account code] - [extension number].'
                    example: '111'
                  callee_account_code:
                    type: string
                    description: 'The callee''s account code. To dial between accounts, use the format: [Account code] - [extension number].'
                    example: '222'
                description: The information about the user's phone recording.
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `404` <br>\n Recording does not exist for {callElementId}. <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/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        - phone:read
        - phone:read:call_recording
        - phone:read:call_recording:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        - phone:read
        x-granular-scopes:
        - phone:read:call_recording
        - phone:read:call_recording:admin
  /phone/call_logs/{id}/recordings:
    get:
      tags:
      - Recordings
      summary: Get recording by call ID
      description: "Returns an account's [call recording](https://support.zoom.us/hc/en-us/articles/360038521091-Accessing-and-sharing-call-recordings) by the recording's `callId` or `callLogId`. \n\n**Note**: Returns the `file_url` in the JSON query results.\n\n**Prerequisites** \n* A Pro or higher account with Zoom Phone license \n* Account owner or admin privileges\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone_recording:read`,`phone_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_recording`,`phone:read:call_recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: getPhoneRecordingsByCallIdOrCallLogId
      parameters:
      - name: id
        in: path
        description: This field gets the unique ID of the call log. You can use `callLogId` and `callId` as path parameters. You can find the value for this field with the **[Get account's call logs](https://marketplace.zoom.us/docs/api-reference/phone/methods#operation/accountCallLogs)** API or the **[Get user's call logs](https://marketplace.zoom.us/docs/api-reference/phone/methods#operation/phoneUserCallLogs)** API.
        required: true
        schema:
          type: string
          example: '7069775907364530379'
      responses:
        '200':
          description: "**HTTP Status Code:** `200`  \n \nOK."
          content:
            application/json:
              schema:
                type: object
                properties:
                  call_id:
                    type: string
                    description: The phone call's unique ID.
                    example: '7069775907364530379'
                  call_log_id:
                    type: string
                    description: The phone call log's unique ID.
                    example: 1dfe35c0-5f0f-4bf1-b2e4-a8869a731178
                    deprecated: true
                  call_history_id:
                    type: string
                    description: The phone call history's unique ID.
                    example: 20220308-1dfe35c0-5f0f-4bf1-b2e4-a8869a731178
                    deprecated: true
                  call_element_id:
                    type: string
                    description: The phone call element's unique ID.
                    example: 20210609-a297ae04-a875-4cfd-85ab-4adcead91edb
                  callee_name:
                    type: string
                    description: The callee's contact name.
                    example: User A
                  callee_number:
                    type: string
                    description: The callee's phone number.
                    example: '1000001004'
                  callee_number_type:
                    type: integer
                    description: "The callee's number type: \n* `1` — Internal number. \n* `2` — External number. \n* `3` — Customized emergency number."
                    example: 1
                    enum:
                    - 1
                    - 2
                    - 3
                  caller_name:
                    type: string
                    description: The caller's contact name.
                    example: User B
                  caller_number:
                    type: string
                    description: The caller's phone number.
                    example: '1000123476'
                  caller_number_type:
                    type: integer
                    description: "The caller's number type: \n* `1` — Internal number. \n* `2` — External number."
                    example: 1
                    enum:
                    - 1
                    - 2
                  outgoing_by:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The user's name.
                        example: User B
                      extension_number:
                        type: string
                        description: The user's extension number.
                        example: '123476'
                    description: The user who initiates the call. The current recording must belong to the initiator and the call queue for it to be available.
                  accepted_by:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The user's name.
                        example: User A
                      extension_number:
                        type: string
                        description: The user's extension number.
                        example: '132001'
                    description: The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.
                  date_time:
                    type: string
                    description: The date and time when the recording was received.
                    format: date-time
                    example: '2022-03-08T05:37:23Z'
                  direction:
                    type: string
                    description: 'The call''s direction:

                      * `inbound`

                      * `outbound`'
                    example: inbound
                  download_url:
                    type: string
                    description: "The URL from which to download the recording. \n\nFor security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. \n\nFor example: \n\n```curl --request GET \\\n  --url {download_url} \\\n  --header 'authorization: Bearer {access_token} \\\n  --header 'content-type: application/json'\n```"
                    example: https://domain/recording/download/EvVNLihbQ1WpeG_ALwnNzg
                  duration:
                    type: integer
                    description: The call recording's duration, in seconds.
                    example: 115
                  end_time:
                    type: string
                    description: The recording's end time.
                    format: date-time
                    example: '2022-03-08T05:39:19Z'
                  id:
                    type: string
                    description: The recording's ID.
                    example: 1dfe35c05f0f4bf1b2e4a8869a731178
                  meeting_uuid:
                    type: string
                    description: The meeting ID associated with the recording, if any.
                    example: egLSRuj2SlWet+wLi87LNA==
                  owner:
                    type: object
                    properties:
                      extension_number:
                        type: integer
                        description: The extension number associated with the call number.
                        format: int64
                        example: 1000123476
                      id:
                        type: string
                        description: The owner's ID.
                        example: NL3cEpSdRc-c2t8aLoZqiw
                      name:
                        type: string
                        description: The name of the owner.
                        example: user@test.com
                      type:
                        type: string
                        description: The owner's type, can be `user`, `callQueue`, or `sharedOffice`(deprecated and to be replaced by `commonArea` after the transition period.)
                        example: user
                        enum:
                        - user
                        - callQueue
                        - commonArea
                      extension_status:
                        type: string
                        description: "This field indicates the status of extension. \n* `inactive` \n* `deleted`"
                        example: deleted
                        enum:
                        - inactive
                        - deleted
                      extension_deleted_time:
                        type: string
                        description: The date time the extension was deleted. It exists only when extension_status is `deleted`.
                        example: '2022-10-14T22:10:54Z'
                    description: The owner of the recording.
                  deleted_time:
                    type: string
                    description: The time and date the recording was deleted. It exists only when recording is from trash.
                    format: date-time
                    example: '2023-04-18T22:10:49.907Z'
                  days_left_auto_permantely_delete:
                    type: integer
                    description: The number of days left until recording is permanently deleted. If the recording never auto deletes, the value is '-1'. It exists only when recording is from trash.
                    example: 30
                  soft_deleted_type:
                    type: string
                    description: This field indicates how the recording was deleted. It exists only when the recording is from trash.
                    example: Manual
                    enum:
                    - Manual
                    - Data Retention
                  recording_type:
                    type: string
                    description: The recording type. The allowed value is `OnDemand` or `Automatic`.
                    example: OnDemand
                    enum:
                    - OnDemand
                    - Automatic
                  file_url:
                    type: string
                    description: "The download URL for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this url.\nExample request:\n```\ncurl --request GET \\\n  --url {download_url} \\\n  --header 'authorization: Bearer {access_token}' \\\n  --header 'content-type: application/json'\n```"
                    example: https://domain/recording/download/8f7345c50a654182ab1672fdb3be61ff
                  disclaimer_status:
                    type: integer
                    description: "The status of disclaimer for recording:  \n* `0` - passive/implicit \n* `1` - agree (active/explicit and press 1)  \n* `2` - passive agree (active/explicit and no press)"
                    example: 0
                    enum:
                    - 0
                    - 1
                    - 2
                  caller_account_code:
                    type: string
                    description: 'The caller''s account code. To dial between accounts, use the format: [Account code] - [extension number].'
                    example: '111'
                  callee_account_code:
                    type: string
                    description: 'The callee''s account code. To dial between accounts, use the format: [Account code] - [extension number].'
                    example: '222'
                description: The information about the user's phone recording.
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Account does not exist: \"{accountId}\". <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n Recording does not exist: \"{callId or callLogId}\". <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/rest/rate-limits/). \n\n "
      deprecated: true
      security:
      - openapi_oauth:
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        - phone:read:call_recording
        - phone:read:call_recording:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        x-granular-scopes:
        - phone:read:call_recording
        - phone:read:call_recording:admin
  /phone/recording/download/{fileId}:
    get:
      tags:
      - Recordings
      summary: Download a phone recording
      description: "Downloads the phone recording. \n\n**Prerequisites:**\n\n* A Business or Enterprise account\n* A Zoom Phone license\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read`,`phone:read:admin`,`phone_recording:read`,`phone_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_recording`,`phone:read:call_recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`"
      operationId: phoneDownloadRecordingFile
      parameters:
      - name: fileId
        in: path
        description: The file ID of the phone recording.
        required: true
        schema:
          type: string
          example: SJD6tIJpQHeTU4RDde-NVA
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \n"
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `404` <br>\n File does not exist. <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/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        - phone:read:call_recording
        - phone:read:call_recording:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        x-granular-scopes:
        - phone:read:call_recording
        - phone:read:call_recording:admin
  /phone/recording_transcript/download/{recordingId}:
    get:
      tags:
      - Recordings
      summary: Download a phone recording transcript
      description: "Downloads the phone recording transcript. \n\n**Prerequisites**\n\n* A Business or Enterprise account\n* A Zoom Phone license\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read`,`phone:read:admin`,`phone_recording:read`,`phone_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:recording_transcript`,`phone:read:recording_transcript:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: phoneDownloadRecordingTranscript
      parameters:
      - name: recordingId
        in: path
        description: The phone recording ID.
        required: true
        schema:
          type: string
          example: 8f7345c50a654182ab1672fdb3be61ff
      responses:
        '302':
          description: "**HTTP Status Code:** `302` **OK**  \nYou will be redirected to a download URL where you can access the transcript file in JSON format. The file will have a structure similar to the following\n```json\n{\n    \"type\": \"zoom_transcript\",\n    \"ver\": 1,\n    \"recording_id\": \"RECORDING_ID\",\n    \"meeting_id\": \"MEETING_ID\",\n    \"account_id\": \"ACCOUNT_ID\",\n    \"host_id\": \"HOST_ID\",\n    \"recording_start\": \"YYYY-MM-DDThh:mm:ssZ\",\n    \"recording_end\": \"YYYY-MM-DDThh:mm:ssZ\",\n    \"timeline\": [\n        {\n            \"text\": \"TRANSCRIPTED TEXT APPEARS HERE\",\n            \"raw_text\": \"TRANSCRIPTED RAW TEXT APPEARS HERE\",\n            \"ts\": \"00:00:00.000\",\n            \"end_ts\": \"00:00:00.600\",\n            \"users\": [],\n            \"userId\": \"USER PHONE EXTENSION NUMBER APPEARS HERE\",\n            \"userIds\": [],\n            \"channelMark\": \"L\"\n        }\n    ]\n}\n```"
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `404` <br>\n File does not exist.<br> <br>\n**Error Code:** `12000` <br>\n Unable to transcribe this recording.<br> <br>\n**Error Code:** `12001` <br>\n Admin has disabled this transcription.<br> <br>\n**Error Code:** `12002` <br>\n This recording is still in the process of being transcribed. Reopen this recording in a few minutes.<br> <br>\n**Error Code:** `12003` <br>\n Transcripts failed to download. <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/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        - phone:read:recording_transcript
        - phone:read:recording_transcript:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read
        - phone:read:admin
        - phone_recording:read
        - phone_recording:read:admin
        x-granular-scopes:
        - phone:read:recording_transcript
        - phone:read:recording_transcript:admin
  /phone/recordings:
    get:
      tags:
      - Recordings
      summary: Get call recordings
      description: "Returns an account's [call recordings](https://support.zoom.us/hc/en-us/articles/360038521091-Accessing-and-sharing-call-recordings). \n\n**Prerequisites:** \n* A Pro or higher account plan \n * A Zoom Phone license \n * Account owner or admin privileges\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:list_call_recordings:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`"
      operationId: getPhoneRecordings
      parameters:
      - name: page_size
        in: query
        description: "The number of records returned within a single API call. \n\nThe default is **30** and the maximum is **300**."
        required: false
        schema:
          type: integer
          example: 30
      - name: next_page_token
        in: query
        description: The current page number of the returned records.
        required: false
        schema:
          type: string
          example: cWiI3vTqdcENiV9RJz3Rh8iP1ksNPheW8c1
      - name: from
        in: query
        description: "The start time and date in **yyyy-mm-dd** or **yyyy-MM-dd T HH:mm:ssZ** format. \n\nThe date range defined in the `from` and `to` parameters should be a month as the response only includes one month's worth of data at once. \n\nIf unspecified, it returns data from the past 30 days."
        required: false
        schema:
          type: string
          format: date
          example: '2021-12-01'
      - name: to
        in: query
        description: "This field is **required** only when the `from` parameter is specified. \n\nThe end time and date display in **yyyy-mm-dd** or **yyyy-MM-dd T HH:mm:ssZ** format, which is the same format as the `from` parameter."
        required: false
        schema:
          type: string
          format: date
          example: '2021-12-31'
      - name: owner_type
        in: query
        description: "The owner type. \n\nThe allowed values are `null`, `user`, `callQueue`, or `sharedOffice`(deprecated and to be replaced by `commonArea` after the transition period). \n\nThe default value is `null`.  If the value is `null`, it returns all owner types."
        required: false
        schema:
          type: string
          exa

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