# Marketplace - **OpenAPI Version:** `3.1.1` - **API Version:** `2` The Marketplace APIs allow developers to access data related to their app and its usage in the marketplace. ## Servers - **URL:** `https://api.zoom.us/v2` ## Operations ### Create apps - **Method:** `POST` - **Path:** `/accounts/{accountId}/marketplace/apps` - **Tags:** App Create `Server to Server OAuth`, `Meeting SDK` or `General` apps in the Zoom Marketplace. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:master` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app:master` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json - **`app_name` (required)** `string` — The app's name. - **`app_type` (required)** `string`, possible values: `"s2s_oauth", "meeting_sdk", "general"` — The app's type: \* \`s2s\_oauth\` \— Server to Server OAuth app. \* \`meeting\_sdk\` \— Meeting SDK app. \* \`general\`\— UBF General app. - **`company_name` (required)** `string` — The company's name. - **`contact_email` (required)** `string`, format: `email` — The developer's email. - **`contact_name` (required)** `string` — The developer's name. - **`active`** `boolean`, default: `false` — Only valid for s2s\_oauth app, whether to activate automatically: \* \`true\` \— Automatically activate the app after creation. It is required that at least one scope should be included in the input parameter. \* \`false\` \— Do not activate the app after creation. - **`manifest`** `object` — An app manifest object. It should meet the valid manifest schema. If the app\_type equals general, you need to pass this param. Manifest resources: https\://developers.zoom.us/docs/build-flow/manifests/ - **`publish`** `boolean`, default: `false` — Only valid for meeting\_sdk app, whether to publish the app to the Marketplace: \* \`true\` \— The app contains development credentials and production credentials. \* \`false\` \— The app contains only development credentials. - **`scopes`** `array` — The scopes of the created app: \* \`s2s\_oauth\` \— If \`active\` field is true, there must be at least one scope. \* \`meeting\_sdk\` \— Will automatically include \`user\_zak:read\` scope. **Items:** `string` **Example:** ```json { "app_type": "s2s_oauth", "app_name": "My App", "scopes": [ "meeting:read" ], "contact_name": "ZOOM", "contact_email": "example@example.com", "company_name": "ZOOM", "active": false, "publish": false, "manifest": {} } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` App created successfully. ###### Content-Type: application/json - **`app_id`** `string` — The app's id. - **`app_name`** `string` — The app's name. - **`app_type`** `string`, possible values: `"s2s_oauth", "meeting_sdk"` — The app's type: \* \`s2s\_oauth\` \— Server to Server OAuth app. \* \`meeting\_sdk\` \— Meeting SDK app. - **`created_at`** `string`, format: `date-time` — Date and time this app was created. - **`development_credentials`** `object` — Only when the type is \`meeting\_sdk\` and the \`publish\` field is true, there will be \`production\_credentials\` - **`client_id`** `string` — The app's client id. - **`client_secret`** `string` — The app's client secret. - **`production_credentials`** `object` — Only when the type is \`meeting\_sdk\` and the \`publish\` field is true, there will be \`production\_credentials\` - **`client_id`** `string` — The app's client id. - **`client_secret`** `string` — The app's client secret. - **`scopes`** `array` — The app's scopes. **Items:** `string` **Example:** ```json { "created_at": "2023-02-16T17:32:28Z", "app_id": "Bwpq5zXvQr-4PKhtYOD23g", "app_name": "My App", "app_type": "s2s_oauth", "scopes": [ "meeting:read" ], "production_credentials": { "client_id": "2J5nVOGXQXCvXoRWyGQDow", "client_secret": "BzFOrwgq1Gw6KCsyeYnmETU5e4zakGwQ" }, "development_credentials": { "client_id": "2J5nVOGXQXCvXoRWyGQDow", "client_secret": "BzFOrwgq1Gw6KCsyeYnmETU5e4zakGwQ" } } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
\* Validation Failed. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`201\` \
\* Invalid access token. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1500\` \
\* The request body is missing required fields. For more information, see the API documentation. \* Only \`Server to Server OAuth\` and \`Meeting SDK\` apps can be created. \* Can't get account owner info. \* Only account's owner can use this API. \* Can't get account info. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/).