# Request, again, for a clean OpenAPI specification file

**URL:** <https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196>\
**Category:** API and Webhooks\
**Created:** [February 24, 2021, 7:45pm UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196 "2021-02-24T19:45:23Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sendres](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sendres/32/3793_2.png) [@sendres](https://devforum.zoom.us/u/sendres)\
**Post date:** [February 24, 2021, 7:45pm UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196/1 "2021-02-24T19:45:24Z")

</div>

Is there any progress on cleaning up the [published OpenAPI specification](https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.jso) for the Zoom API? I am continuing to see the following problem when attempting to use the Zoom API version 2.0.0 in Swagger Editor.

**Steps to Reproduce**

1. Download the Zoom API specification from [https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.json](https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.json).
2. Open the online Swagger Editor at [https://editor.swagger.io/](https://editor.swagger.io/).
3. Clear the default text from the editor using File-\> Clear Editor.
4. Load the Zoom API specification by using File-\> Import file. Browse to the file you downloaded, then press Open.
5. The file loads in the editor. (it may take several minutes to parse the file.)

**Errors**

After parsing, the following errors are displayed:  
Structural error at paths./accounts/{accountId}/settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 4522  
Structural error at paths./accounts/{accountId}/settings.patch.parameters.1.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 5996  
Structural error at paths./accounts/{accountId}/plans/addons.post.parameters.1.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 8877  
Structural error at paths./users/{userId}/settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 28833  
Structural error at paths./users/{userId}/settings.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 29879  
Structural error at paths./groups/{groupId}/settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 39895  
Structural error at paths./groups/{groupId}/settings.patch.parameters.1.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 40839  
Structural error at paths./groups/{groupId}/lock\_settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 41623  
Structural error at paths./groups/{groupId}/lock\_settings.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 42288  
Structural error at paths./accounts/{accountId}/lock\_settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 42921  
Structural error at paths./accounts/{accountId}/lock\_settings.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 43569  
Structural error at paths./rooms/account\_settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 45191  
Structural error at paths./rooms/account\_settings.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 45706  
Structural error at paths./rooms/locations/{locationId}/settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 46658  
Structural error at paths./rooms/locations/{locationId}/settings.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 47244  
Structural error at paths./rooms/{roomId}/settings.get.responses.200.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 48150  
Structural error at paths./rooms/{roomId}/settings.patch.parameters.1.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 48701  
Structural error at paths./rooms/events.patch.parameters.0.schema  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 57653  
Semantic error at paths./metrics/webinars/{webinarId}/participants/satisfaction.parameters.0.name  
Path parameter “meetingId” must have the corresponding {meetingId} segment in the “/metrics/webinars/{webinarId}/participants/satisfaction” path  
Jump to line 58563  
Structural error at definitions.AccountSettingsAuthenticationUpdate  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 78112  
Structural error at definitions.AccountSettingsAuthentication  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 78289  
Structural error at definitions.GroupUserSettingsAuthenticationUpdate  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 78355  
Structural error at definitions.GroupUserSettingsAuthentication  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 78426  
Structural error at definitions.authenticationusersettings  
should NOT have additional properties  
additionalProperty: oneOf  
Jump to line 78542  
Semantic error at tags.0  
Tag Objects must have unique `name` field values.  
Jump to line 78902

**Discussion**  
This is an ongoing problem and it seems I’m not alone in the pain caused by this nonconformant spec.Many of us NEED this spec to be correct so we can generate clients in our languages of choice. For example:

- In July 2019, @hkyseliov talks about being [unable to create a Java client](https://devforum.zoom.us/t/can-not-generate-java-client-for-swagger-openapi-spec/5201/2).
- In December 2019, @a.koval [reported more problems with the spec](https://devforum.zoom.us/t/issues-with-swagger/7027), which were supposedly fixed.
- In January 2020, @kiesel.dennis [describes similar problems](https://devforum.zoom.us/t/autorest-swagger-c-client/7650) when trying to use the spec to generate a C# client.
- In March 2020, @shanagud chimes in with [their problems with the spec](https://devforum.zoom.us/t/swagger-generation-for-go-language-is-failing/8409) when used to create a Go client.
- In June 2020, tagging on that earlier thread from @a.koval, I [reported continuing problems with the spec](https://devforum.zoom.us/t/issues-with-swagger/7027/16). At that time, @tommy and @shrijana.g said fixing it was a priority.
- Three weeks ago, @franz [described the problems he’s having with the spec](https://devforum.zoom.us/t/java-client-api-library/42438), again trying to generate a client for Java.

I’m at a 4,000-person school that has just me and another guy to support all our educational technologies, including Zoom. We’ve been just a little busy supporting everyone given our 38X increase in Zoom usage over the past year due to Covid. Our IT guys also rolled out Teams and I am fighting a daily battle so Zoom can defeat that platform. To win this, I need to automate stuff but I can’t because this file is nonconformant. I am losing the war.

I need someone at Zoom to have my back and fix this spec.

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [February 25, 2021, 7:49pm UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196/2 "2021-02-25T19:49:37Z")

</div>

Hey @sendres,

Thank you for bringing these issues to our attention and for providing detailed steps to reproduce the issue. I attempted to reproduce this issue but I wasn’t able to see those same errors.

Are there any steps I need to take after importing the specification in order to see those errors? Likewise, are you able to send a screenshot of where you’re seeing them?

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![sendres](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sendres/32/3793_2.png) [@sendres](https://devforum.zoom.us/u/sendres)\
**Post date:** [March 1, 2021, 9:34pm UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196/3 "2021-03-01T21:34:27Z")

</div>

Hi @MaxM,

The only step I needed was patience. The Swagger editor seems to run JavaScript in the browser. With a large API file such as yours, it can take several minutes for it to finish parsing the file. I noted this in step 5 of my process.

On my machine, after a few minutes, my browser prompts me every 30 seconds or so to see if I want to keep waiting for the process to finish.

Can you try that and report back?

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [March 1, 2021, 11:49pm UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196/4 "2021-03-01T23:49:17Z")

</div>

Hey @sendres,

Thank you for the update. It looks like I was using a link to an older spec that was an magnitude of order smaller than what was linked by you. After using your link directly, I was able to see these same issues.

I’ve since reached out to an internal team to have this matter addressed. As soon as I hear back from them, I’ll be sure to update you here. (DEVELOPERS-1021)

Thanks,  
Max

---

<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:** [April 1, 2021, 9:49am UTC](https://devforum.zoom.us/t/request-again-for-a-clean-openapi-specification-file/44196/5 "2021-04-01T09:49:32Z")

</div>

This topic was automatically closed 30 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/request-again-for-a-clean-openapi-specification-file/44196/6 "2025-01-22T22:12:54Z")

</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
