Zoom Phone Zoom Rooms API

The Zoom Rooms API from Zoom Phone — 7 operation(s) for zoom rooms.

Operations 10

GET /phone/rooms List Zoom Rooms under Zoom Phone license #
POST /phone/rooms Add a Zoom Room to a Zoom Phone #
GET /phone/rooms/unassigned List Zoom Rooms without Zoom Phone assignment #
GET /phone/rooms/{roomId} Get a Zoom Room under Zoom Phone license #
DELETE /phone/rooms/{roomId} Remove a Zoom Room from a ZP account #
PATCH /phone/rooms/{roomId} Update a Zoom Room under Zoom Phone license #
POST /phone/rooms/{roomId}/calling_plans Assign calling plans to a Zoom Room #
DELETE /phone/rooms/{roomId}/calling_plans/{type} Remove a calling plan from a Zoom Room #
POST /phone/rooms/{roomId}/phone_numbers Assign phone numbers to a Zoom Room #
DELETE /phone/rooms/{roomId}/phone_numbers/{phoneNumberId} Remove a phone number from a Zoom Room #

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-zoom-rooms-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-zoom-rooms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Zoom Rooms 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: Zoom Rooms
paths:
  /phone/rooms:
    get:
      tags:
      - Zoom Rooms
      summary: List Zoom Rooms under Zoom Phone license
      description: 'Retrieves a list of [Zoom Rooms](https://support.zoom.us/hc/en-us/articles/360025153711) under the account that has the Zoom Phone license assigned.**Prerequisites:** * A Pro or higher account plan * 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_rooms:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`'
      operationId: listZoomRooms
      parameters:
      - name: page_size
        in: query
        description: The number of records returned from a single API call.
        required: false
        schema:
          maximum: 100
          type: integer
          example: 30
          default: 30
      - name: next_page_token
        in: query
        description: 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.
        required: false
        schema:
          type: string
          example: BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2
      - name: site_id
        in: query
        description: The site ID retrievable from the [List Phone Sites](https://marketplace.zoom.us/docs/api-reference/phone/methods#operation/listPhoneSites) API.
        required: false
        schema:
          type: string
          example: kLD4F3WBT-O9LYE31C0tRQ
      - name: calling_type
        in: query
        description: The type of calling plan.
        required: false
        schema:
          type: integer
          example: 100
      - name: keyword
        in: query
        description: The Zoom room name or phone number from which to filter the results .
        required: false
        schema:
          type: string
          example: test_zoom_room
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \nZoom Rooms retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  next_page_token:
                    type: string
                    description: 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: BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2
                  page_size:
                    maximum: 300
                    type: integer
                    description: The number of records returned from a single API call.
                    example: 30
                    default: 30
                  rooms:
                    maxItems: 300
                    type: array
                    items:
                      type: object
                      properties:
                        calling_plans:
                          maxItems: 100
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name of the calling plan that Zoom Room is enrolled in.
                                example: AU/NZ Metered
                              type:
                                type: integer
                                description: The type of calling plan of which the Zoom Room is enrolled.
                                example: 100
                              billing_account_id:
                                type: string
                                description: The billing account ID. it's displayed when the zoom room is located in India.
                                example: 3WWAEiEjTj2IQuyDiKMd_A
                              billing_account_name:
                                type: string
                                description: The billing account name. It's displayed when the Zoom Room is located in India.
                                example: Delhi billing
                              billing_subscription_id:
                                type: string
                                description: The billing subscription ID. It displays when the account supports billing multiple subscriptions
                                example: FT-SUBREF-21168178
                              billing_subscription_name:
                                type: string
                                description: The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited via the Billing page
                                example: My Subscription
                        extension_id:
                          type: string
                          description: The extension ID.
                          example: _zQiBLNDQumOuA_tOnBIrw
                        extension_number:
                          type: integer
                          description: The extension number assigned to the Zoom Room's Zoom phone number.
                          format: int64
                          example: 10010
                        id:
                          type: string
                          description: The unique Identifier of the Zoom Room.
                          example: 3JTPXDqTQCuzYJEwH6kN4g
                        name:
                          type: string
                          description: The name of the Zoom Room.
                          example: test
                        phone_numbers:
                          maxItems: 5
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                description: The ID for phone number.
                                example: CMOXjhb7RHeVeiH0zL0f9A
                              number:
                                type: string
                                description: The phone number in E164 format.
                                example: '12058945544'
                        site:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) ID.
                              example: kLD4F3WBT-O9LYE31C0tRQ
                            name:
                              type: string
                              description: The name of the site.
                              example: API DZ SITE3
                  total_records:
                    type: integer
                    description: The total records found for this query.
                    example: 1
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `403` <br>\n You do not have permission. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Account 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:admin
        - phone:read:list_rooms:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:list_rooms:admin
    post:
      tags:
      - Zoom Rooms
      summary: Add a Zoom Room to a Zoom Phone
      description: "Associates a [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711#h_70c74c57-50d6-406b-a4fa-2f33d4bebdbc) with a Zoom Phone license. \n\n**Prerequisites** \n* A Business or Enterprise account \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:room:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: addZoomRoom
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: The Zoom Room ID.
                  example: _zQiBLNDQumOuA_tOnBIrw
                site_id:
                  type: string
                  description: The ID of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).
                  example: kLD4F3WBT-O9LYE31C0tRQ
                calling_plans:
                  maxItems: 100
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: integer
                        description: The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan.
                        example: 100
                      billing_subscription_id:
                        type: string
                        description: The billing subscription ID. When there is more than one plan type A in this account, it cannot be empty.
                        example: FT-SUBREF-21168178
      responses:
        '201':
          description: "**HTTP Status code:** `201`  \n \nZoom Room added successfully."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `404` <br>\n Unknown or invalid calling plan: {type}.<br> <br>\n**Error Code:** `404` <br>\n Room does not exist:{roomId}. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Account 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:write:admin
        - phone:write:room:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:write:room:admin
  /phone/rooms/unassigned:
    get:
      tags:
      - Zoom Rooms
      summary: List Zoom Rooms without Zoom Phone assignment
      description: 'Returns [Zoom Rooms](https://support.zoom.us/hc/en-us/articles/360025153711) that are not assigned a Zoom Phone.**Prerequisites:** * A Pro or higher account plan * 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_rooms:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Medium`'
      operationId: listUnassignedZoomRooms
      parameters:
      - name: keyword
        in: query
        description: A search keyword for Zoom Room's name.
        required: false
        schema:
          type: string
          example: room_1
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \nAvailable Zoom Rooms retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  rooms:
                    maxItems: 100
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The Zoom Room ID.
                          example: _zQiBLNDQumOuA_tOnBIrw
                        display_name:
                          type: string
                          description: Name of the Zoom Room.
                          example: room_1
                        location_id:
                          type: string
                          description: The Zoom Room location ID.
                          example: 3zEOmHchRaWCb7hx9XwROg
                        location_info:
                          type: string
                          description: The Zoom Room location information.
                          example: San Jose City,California State,Unite States Country/Region
                        department:
                          type: string
                          description: The department the Zoom Room belongs to.
                          example: pbx department
                        cost_center:
                          type: string
                          description: The cost center the Zoom Room belongs to.
                          example: pbx cost center
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Account 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:admin
        - phone:read:list_rooms:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:list_rooms:admin
  /phone/rooms/{roomId}:
    get:
      tags:
      - Zoom Rooms
      summary: Get a Zoom Room under Zoom Phone license
      description: "Specifies [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711)  in an account with an assigned Zoom Phone license.\n\n**Prerequisites** \n* A Pro or higher account plan \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:room:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: getZoomRoom
      parameters:
      - name: roomId
        in: path
        required: true
        schema:
          type: string
          example: 3JTPXDqTQCuzYJEwH6kN4g
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \nZoom Room retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  calling_plans:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Name of the calling plan that Zoom Room is enrolled in.
                          example: AU/NZ Metered
                        type:
                          type: integer
                          description: Type of calling plan that Zoom Room is enrolled in.
                          example: 100
                        billing_account_id:
                          type: string
                          description: Billing account ID. Displayed when the zoom room is located in India.
                          example: 3WWAEiEjTj2IQuyDiKMd_A
                        billing_account_name:
                          type: string
                          description: Billing account name. Displayed when the zoom room is located in India.
                          example: Delhi billing
                        billing_subscription_id:
                          type: string
                          description: The billing subscription ID. It displays when the account supports billing multiple subscriptions
                          example: FT-SUBREF-21168178
                        billing_subscription_name:
                          type: string
                          description: The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited via the Billing page
                          example: My Subscription
                  emergency_address:
                    type: object
                    properties:
                      address_line1:
                        type: string
                        description: The emergency location address line 1.
                        example: '122'
                      address_line2:
                        type: string
                        description: The emergency location address line 2.
                        example: '122'
                      city:
                        type: string
                        description: The emergency location address's city.
                        example: '12'
                      country:
                        type: string
                        description: Two-lettered country code (Aplha-2 code in ISO-3166 format).
                        example: SG
                      id:
                        type: string
                        description: The emergency location address ID.
                        example: fXEdhQmSQheGaNuLYbm8Wg
                      state_code:
                        type: string
                        description: The emergency location address's state code.
                        example: '123'
                      zip:
                        type: string
                        description: The emergency address zip code.
                        example: '50383'
                    description: The emergency location's address information.
                  extension_id:
                    type: string
                    description: Extension ID.
                    example: _zQiBLNDQumOuA_tOnBIrw
                  extension_number:
                    type: integer
                    description: 'The extension number of the Zoom Room. '
                    format: int64
                    example: 1233012
                  id:
                    type: string
                    description: Unique Identifier of the Zoom Room.
                    example: 3JTPXDqTQCuzYJEwH6kN4g
                  name:
                    type: string
                    description: Name of the Zoom Room.
                    example: test
                  phone_numbers:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: ID for phone number.
                          example: 6fTPXDwT2CuzYrwwH6sN4g
                        number:
                          type: string
                          description: Phone number in E164 format.
                          example: '12058945544'
                  policy:
                    type: object
                    properties:
                      international_calling:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Allow current extension to place international calls outside of the calling plan.
                            example: false
                          locked_by:
                            type: string
                            description: Which level of administrator prohibits modifying the current settings.
                            example: site
                            enum:
                            - invalid
                            - account
                            - user_group
                            - site
                            - extension
                      select_outbound_caller_id:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Allow current extension to change outbound caller ID when placing calls.
                            example: false
                          locked_by:
                            type: string
                            description: Which level of administrator prohibits modifying the current settings.
                            example: account
                            enum:
                            - invalid
                            - account
                            - user_group
                            - site
                            - extension
                  site:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).
                        example: kLD4F3WBT-O9LYE31C0tRQ
                      name:
                        type: string
                        description: Name of the site.
                        example: API DZ SITE3
        '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:read:room:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:room:admin
    delete:
      tags:
      - Zoom Rooms
      summary: Remove a Zoom Room from a ZP account
      description: "Use this API to remove [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711#h_140e30ba-5a88-40b9-b799-16883fa0a037) from a Zoom Phone account.\n\n**Prerequisites:** \n* A Business or Enterprise account \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:delete:room:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`"
      operationId: RemoveZoomRoom
      parameters:
      - name: roomId
        in: path
        required: true
        schema:
          type: string
          example: 3JTPXDqTQCuzYJEwH6kN4g
      responses:
        '204':
          description: "**HTTP Status Code:** `204`   \n \nZoom Room removed successfully."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `404` <br>\nRoom does not exist:{roomId}.\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/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:write:admin
        - phone:delete:room:admin
        openapi_authorization: []
      x-extensions:
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:delete:room:admin
    patch:
      tags:
      - Zoom Rooms
      summary: Update a Zoom Room under Zoom Phone license
      description: "Use this API to update a [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711) in an account that has the Zoom Phone license assigned.\n\n**Prerequisites:** \n* A Pro or higher account plan \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:update:room:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`"
      operationId: updateZoomRoom
      parameters:
      - name: roomId
        in: path
        required: true
        schema:
          type: string
          example: 3JTPXDqTQCuzYJEwH6kN4g
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                extension_number:
                  type: integer
                  description: The extension number of the Zoom Room. The number must be complete (i.e. site number + short extension).
                  format: int64
                  example: 123487
                policy:
                  type: object
                  properties:
                    international_calling:
                      type: object
                      properties:
                        enable:
                          type: boolean
                          description: Allow current extension to place international calls outside of the calling plan.
                          example: true
                        reset:
                          type: boolean
                          description: Using site setting.
                          example: true
                    select_outbound_caller_id:
                      type: object
                      properties:
                        enable:
                          type: boolean
                          description: Allow current extension to change outbound caller ID when placing calls.
                          example: true
                        reset:
                          type: boolean
                          description: Using site setting.
                          example: true
                site_id:
                  type: string
                  description: Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).
                  example: kLD4F3WBT-O9LYE31C0tRQ
      responses:
        '204':
          description: "**HTTP Status Code:** `204` **No Content**  \n \nZoom Room updated successfully."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `300` <br>\nExtension number error.\n\n**Error Code:** `400` <br>\nPolicy locked: {policy_key}.\n\n**Error Code:** `404` <br>\nRoom does not exist:{roomId}\nSite does not exist.\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/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:write:admin
        - phone:update:room:admin
        openapi_authorization: []
      x-extensions:
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:update:room:admin
  /phone/rooms/{roomId}/calling_plans:
    post:
      tags:
      - Zoom Rooms
      summary: Assign calling plans to a Zoom Room
      description: "Assigns [calling plans](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) to a [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711#h_70c74c57-50d6-406b-a4fa-2f33d4bebdbc) with a maximum of 200 numbers at a time.\n\n**Prerequisites** \n* A Business or Enterprise account \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:room_calling_plan:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: assignCallingPlanToRoom
      parameters:
      - name: roomId
        in: path
        required: true
        schema:
          type: string
          example: 3JTPXDqTQCuzYJEwH6kN4g
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                calling_plans:
                  maxItems: 5
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: integer
                        description: '[Type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of the calling plan.'
                        example: 100
                      billing_account_id:
                        type: string
                        description: Billing account ID. If the zoom room is located in India, the field is required.
                        example: 3WWAEiEjTj2IQuyDiKMd_A
                      billing_subscription_id:
                        type: string
                        description: The billing subscription ID. When there is more than one plan type A in this account, it cannot be empty.
                        example: FT-SUBREF-21168178
      responses:
        '201':
          description: "**HTTP Status code:** `201`  \n \nCalling plan assigned successfully."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Plan invalid. <br>\n**Error Code:** `404` <br>\n Room does not exist:{roomId}. <br>\n**Error Code:** `429` <br>\n Room batch operation is limited to 5 per request. <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:write:admin
        - phone:write:room_calling_plan:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:write:room_calling_plan:admin
  /phone/rooms/{roomId}/calling_plans/{type}:
    delete:
      tags:
      - Zoom Rooms
      summary: Remove a calling plan from a Zoom Room
      description: "Use this API to unassign a [calling plan](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) from a [Zoom Room](https://support.zoom.us/hc/en-us/articles/360025153711#h_140e30ba-5a88-40b9-b799-16883fa0a037).\n\n**Prerequisites:** \n* A Business or Enterprise account \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:delete:room_calling_plan:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`"
      operationId: unassignCallingPlanFromRoom
      parameters:
      - name: roomId
        in: path
        required: true
        s

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