# Phone API Specification (OpenAPI/Swagger JSON)

**URL:** <https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317>\
**Category:** API and Webhooks\
**Created:** [September 21, 2022, 12:13pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317 "2022-09-21T12:13:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahmed.patel](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@ahmed.patel](https://devforum.zoom.us/u/ahmed.patel)\
**Post date:** [September 21, 2022, 12:13pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/1 "2022-09-21T12:13:22Z")

</div>

**API Endpoint(s) and/or Zoom API Event(s)**  
_[Link the API endpoint(s) and/orZoom API Event(s) you’re working with to help give context.](https://marketplace.zoom.us/docs/api-reference/phone/methods/#overview)_

**Description**  
_“Download spec” returns invalid zip file and once extracted the JSON is also invalid and cannot be used to create a client_

**Error?**  
_Invalid Zip Archive and OpenAPI spec errors_

**How To Reproduce**  
_Steps to reproduce the behaviour:_  
_1. Click the Download spec button at the above link_  
_2. In Windows Explorer try to extract it’s contents_  
_3. ERROR: Extraction fails with an error saying the zip file is invalid_

_4. Using 7-Zip extract the contents of the zip archive_  
_5. ERROR: The extracted file has no extension_

_6. Rename the file and add the .json extension_  
_7. Open the file in a text editor_  
_8. Paste the contents of the file into the schema section of [https://editor.swagger.io/](https://editor.swagger.io/)_  
_9. ERROR: Lots of schema errors are displayed_

Please fix 🙏

---

<div class="post-metadata">

**Author:** ![ahmed.patel](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@ahmed.patel](https://devforum.zoom.us/u/ahmed.patel)\
**Post date:** [September 21, 2022, 12:19pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/2 "2022-09-21T12:19:01Z")

</div>

Apart from the fact that the zip file is invalid, the spec is also invalid and although you’ve have plenty of complaints it seems fixing it is not a priority.

If we had a valid spec file (you could use [https://editor.swagger.io/](https://editor.swagger.io/) to manually fix the spec and make that json available for download) then it would help most devs by allowing us to generate client in any language and get up and running really quickly with your fantastic API.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [September 21, 2022, 6:01pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/3 "2022-09-21T18:01:37Z")

</div>

Hi @ahmed.patel ,

Thank you for sharing your experience. I am not able to replicate this on Postman so I want to confirm if it seems to be happening with just [Swagger.io](http://Swagger.io)

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [September 21, 2022, 6:02pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/4 "2022-09-21T18:02:26Z")

</div>

Our Phone API is available on our public workspace here for your use if you continue to run into issues: [Postman](https://www.postman.com/zoom-developer/workspace/zoom-public-workspace/overview)

---

<div class="post-metadata">

**Author:** ![ahmed.patel](https://avatars.discourse-cdn.com/v4/letter/a/cc9497/32.png) [@ahmed.patel](https://devforum.zoom.us/u/ahmed.patel)\
**Post date:** [September 22, 2022, 10:37am UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/5 "2022-09-22T10:37:53Z")

</div>

Hi Gianni,

Thanks for the response. I’ve imported the json into Postman, which seems fine, but both swagger[dot]io and NSwag display errors. swagger[dot]io is managed by the creators of the swagger standard. They also help define the newer OpenApi standards so they know what they’re talking about. If your json is showing errors, it’s unlikely to be their app that’s wrong.

The best way to fix these errors in the short term would be to follow the advice in [swagger.io](http://swagger.io), then you can copy the corrected specs back into your code/definitions.

A topic for this issue seems to get created every few months because of the advantages of using automatically generated clients. It would be a massive help if the json was able to be used on [swagger.io](http://swagger.io) or within NSwag 🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [September 26, 2023, 2:14am UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/6 "2023-09-26T02:14:22Z")

</div>

This topic was automatically closed 368 days after the last reply. New replies are no longer allowed.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [January 22, 2025, 10:12pm UTC](https://devforum.zoom.us/t/phone-api-specification-openapi-swagger-json/76317/7 "2025-01-22T22:12:12Z")

</div>

Hey everyone,

Recently we launched **Zoom Rivet for Node.js**. Zoom Rivet is **Zoom’s Official API Library and API Wrapper**.

We currently support Node.js. Java, Python, GO, C#, and other languages are coming soon or being considered.

[Zoom Rivet](https://developers.zoom.us/docs/rivet/javascript/get-started/) is available on [npm](https://www.npmjs.com/package/@zoom/rivet) and can be used to automatically handle [OAuth](https://developers.zoom.us/docs/rivet/javascript/authorization/) and easily call [Zoom APIs](https://developers.zoom.us/docs/api/) like [Meetings](https://developers.zoom.us/docs/api/meetings/), [Phone](https://developers.zoom.us/docs/api/phone/), [Users](https://developers.zoom.us/docs/api/users/), [Team Chat](https://developers.zoom.us/docs/api/team-chat/), [Chatbot](https://developers.zoom.us/docs/api/chatbot/), [Accounts](https://developers.zoom.us/docs/api/accounts/), [Video SDK](https://developers.zoom.us/docs/api/video-sdk/), and more. It even includes a Webhook server to easily receive Zoom [Webhooks](https://developers.zoom.us/docs/api/webhooks/).

```auto
npm install @zoom/rivet

```

Example that handles OAuth and calls a Meeting API and listens to a webhook event:

```js
import { MeetingsS2SAuthClient } from "@zoom/rivet/meetings";

(async () => {
   const meetingsClient = new MeetingsS2SAuthClient({
      clientId: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      webhooksSecretToken: process.env.WEBHOOKS_SECRET_TOKEN,
      accountId: process.env.ACCOUNT_ID
   });

   // Rivet Events and Endpoints Go Here

   meetingsClient.endpoints.meetings.getMeeting({
      path: { meetingId: "MEETINGID" }
   }).then((response) => {
      console.log(response)
   });

   meetingsClient.webEventConsumer.event("meeting.started", (response) => {
      console.log(response.payload);
   })

   const server = await meetingsClient.start();

   console.log(`Zoom Rivet Events Server running on: ${JSON.stringify(server.address())}`);
})();

```

NPM:

> **[@zoom/rivet](https://www.npmjs.com/package/@zoom/rivet)**
>
> Zoom Rivet is a comprehensive toolkit built to help developers quickly integrate and manage server-side applications within the Zoom ecosystem. This tool currently supports Node.js, offering core functionalities like authentication, API wrappers, and...

Docs:

> **[Get started - Zoom Developers](https://developers.zoom.us/docs/rivet/javascript/get-started/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

Sample App:

> **[GitHub - zoom/rivet-javascript-sample: Standup Bot sample app for Zoom Rivet for...](https://github.com/zoom/rivet-javascript-sample)**
>
> Standup Bot sample app for Zoom Rivet for JavaScript

For feedback, requests, or questions please refer to the Rivet Devforum Category:

> **[Zoom Rivet](https://devforum.zoom.us/c/rivet/90)**
>
> Zoom Rivet helps quickly integrate server-side applications with Zoom. Built-in authentication, API wrappers and event subscriptions let you focus on business logic, not infrastructure.

Best,  
Tommy
