# 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/).