# Products: getAppRestrictionsSchema

> [!NOTE]
> **Note:** Requires [authorization](https://developers.google.com/android/work/play/emm-api/v1/products/getAppRestrictionsSchema#auth).

<br />

**Deprecated:** New integrations cannot use this method and can refer to our [new
recommendations](https://developers.google.com/android/work/deprecations#recommended_alternative_4).  
**This method will no longer be accessible by
anyone after September 30, 2025.** Retrieves the schema that defines the configurable properties for this product. All products have a schema, but this schema may be empty if no managed configurations have been defined. This schema can be used to populate a UI that allows an admin to configure the product. To apply a managed configuration based on the schema obtained using this API, see [Managed Configurations through Play](https://developers.google.com/android/work/play/emm-api/managed-configurations).

<br />

## Request

### HTTP request

```
GET https://www.googleapis.com/androidenterprise/v1/enterprises/enterpriseId/products/productId/appRestrictionsSchema
```

### Parameters

| Parameter name | Value | Description |
|---|---|---|
| **Path parameters** |||
| `enterpriseId` | `string` | The ID of the enterprise. |
| `productId` | `string` | The ID of the product. |
| **Optional query parameters** |||
| `language` | `string` | The BCP47 tag for the user's preferred language (e.g. "en-US", "de"). |

### Authorization

This request requires authorization with the following scope:

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

For more information, see the [authentication and authorization](https://developers.google.com/android/work/play/emm-api/v1/how-tos/authorizing) page.

### Request body

Do not supply a request body with this method.

## Response

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

```
{
  "kind": string,
  "restrictions": [
    {
      "key": string,
      "title": string,
      "restrictionType": string,
      "description": string,
      "entry": [
        string
      ],
      "entryValue": [
        string
      ],
      "defaultValue": {
        "type": string,
        "valueBool": boolean,
        "valueString": string,
        "valueInteger": integer,
        "valueMultiselect": [
          string
        ]
      },
      "nestedRestriction": [
        (AppRestrictionsSchemaRestriction)
      ]
    }
  ]
}
```

| Property name | Value | Description | Notes |
|---|---|---|---|
| `restrictions[]` | `list` | The set of restrictions that make up this schema. |   |
| `restrictions[].key` | `string` | The unique key that the product uses to identify the restriction, e.g. "com.google.android.gm.fieldname". |   |
| `restrictions[].title` | `string` | The name of the restriction. |   |
| `restrictions[].restrictionType` | `string` | The type of the restriction. <br /> Acceptable values are: - "`bool`" - "`bundle`" - "`bundleArray`" - "`choice`" - "`hidden`" - "`integer`" - "`multiselect`" - "`string`" |   |
| `restrictions[].description` | `string` | A longer description of the restriction, giving more detail of what it affects. |   |
| `restrictions[].entry[]` | `list` | For `choice` or `multiselect` restrictions, the list of possible entries' human-readable names. |   |
| `restrictions[].entryValue[]` | `list` | For `choice` or `multiselect` restrictions, the list of possible entries' machine-readable values. These values should be used in the configuration, either as a single `string` value for a `choice` restriction or in a `stringArray` for a `multiselect` restriction. |   |
| `restrictions[].defaultValue` | `nested object` | The default value of the restriction. `bundle` and `bundleArray` restrictions never have a default value. |   |
| `restrictions[].defaultValue.type` | `string` | The type of the value being provided. <br /> Acceptable values are: - "`bool`" - "`bundle`" - "`bundleArray`" - "`choice`" - "`hidden`" - "`integer`" - "`multiselect`" - "`string`" |   |
| `restrictions[].defaultValue.valueBool` | `boolean` | The boolean value - this will only be present if type is bool. |   |
| `restrictions[].defaultValue.valueString` | `string` | The string value - this will be present for types string, choice and hidden. |   |
| `restrictions[].defaultValue.valueInteger` | `integer` | The integer value - this will only be present if type is integer. |   |
| `restrictions[].defaultValue.valueMultiselect[]` | `list` | The list of string values - this will only be present if type is multiselect. |   |
| `restrictions[].nestedRestriction[]` | `list` | For `bundle` or `bundleArray` restrictions, the list of nested restrictions. A `bundle` restriction is always nested within a `bundleArray` restriction, and a `bundleArray` restriction is at most two levels deep. |   |
| `kind` | `string` | Deprecated. |   |