# Accounts.customApps: create

**Requires [authorization](https://developers.google.com/android/work/play/custom-app-api/get-started#create_a_service_account).**

Create and publish a new custom app.
[Try it now](https://developers.google.com/android/work/play/custom-app-api/v1/accounts/customApps/create#try-it).

This method supports an **/upload** URI and accepts uploaded media with the following characteristics:

- **Maximum file size:** 100MB
- **Accepted Media MIME types:** `application/octet-stream`, `application/vnd.android.package-archive`

## Request

### HTTP request

This method provides media upload functionality through two separate URIs. For more details, see the document on [media upload](https://developers.google.com/android-publisher/upload).

- Upload URI, for media upload requests:

  ```
  POST https://playcustomapp.googleapis.com/upload/playcustomapp/v1/accounts/account/customApps
  ```
- Metadata URI, for metadata-only requests:

  ```
  POST https://playcustomapp.googleapis.com/playcustomapp/v1/accounts/account/customApps
  ```

### Parameters

| Parameter name | Value | Description |
|---|---|---|
| **Path parameters** |||
| `account` | `long` | Developer account ID. <br /> |
| **Required query parameters** |||
| `uploadType` | `string` | The type of upload request to the **/upload** URI. Acceptable values are: - `multipart` - [Multipart upload](https://developers.google.com/android/work/play/custom-app-api/v1/accounts/customApps/create#multipart). Upload both the media and its metadata, in a single request. |

### Authorization

This request requires authorization with the following scope:

| Scope |
|---|
| `https://www.googleapis.com/auth/androidpublisher` |

### Request body

In the request body, supply data with the following structure:

```
{
  "title": string,
  "languageCode": string,
  "organizations": [
    {
      "organizationId": string,
      "organizationName": string
    }
  ]
}
```

| Property name | Value | Description | Notes |
|---|---|---|---|
| `title` | `string` | Title for the Android app. |   |
| `languageCode` | `string` | Default listing language in BCP 47 format. |   |
| `organizations[]` | `list` | Organizations to which the custom app should be made available. If the request contains any organizations, then the app will be restricted to only these organizations. To support the organization linked to the developer account, the organization ID should be provided explicitly together with other organizations. If no organizations are provided, then the app is only available to the organization linked to the developer account. |   |
| `organizations[].organizationId` | `string` | ID of the organization. Required. |   |
| `organizations[].organizationName` | `string` | A human-readable name of the organization, to help recognize the organization. Optional. |   |

## Response

If successful, this method returns a response body with the following structure:

```
{
  "title": string,
  "languageCode": string,
  "organizations": [
    {
      "organizationId": string,
      "organizationName": string
    }
  ]
}
```

| Property name | Value | Description | Notes |
|---|---|---|---|
| `title` | `string` | Title for the Android app. |   |
| `languageCode` | `string` | Default listing language in BCP 47 format. |   |
| `organizations[]` | `list` | Organizations to which the custom app should be made available. If the request contains any organizations, then the app will be restricted to only these organizations. To support the organization linked to the developer account, the organization ID should be provided explicitly together with other organizations. If no organizations are provided, then the app is only available to the organization linked to the developer account. |   |
| `organizations[].organizationId` | `string` | ID of the organization. Required. |   |
| `organizations[].organizationName` | `string` | A human-readable name of the organization, to help recognize the organization. Optional. |   |

## Try it!

**Note:** APIs Explorer currently supports metadata requests only.


Use the APIs Explorer below to call this method on live data and see the response.