

# VIDEO\$1ON\$1DEMAND datasets and schemas
<a name="VIDEO-ON-DEMAND-datasets-and-schemas"></a>

 When you create a Domain dataset group for the VIDEO\$1ON\$1DEMAND domain, each dataset type has a default schema with a set of VIDEO\$1ON\$1DEMAND specific required and recommended fields. You can either use the default schema or create a new one based on the default schema. The data you import must match your schema in format and type. Use the default domain schemas listed in the sections below as a guide to determine what data to import to create your VIDEO\$1ON\$1DEMAND-based recommender.

You are free to add additional fields. As long as the fields aren't listed as required or reserved, and the data types are listed in [Schema data types](how-it-works-dataset-schema.md#personalize-datatypes), the field names and data types are up to you.

For information about general Amazon Personalize schema requirements, such as formatting requirements and available field data types, see [Creating schema JSON files for Amazon Personalize schemas](how-it-works-dataset-schema.md). These requirements apply to all schemas, regardless of domain.

 The following topics provide information about each dataset's required and recommended fields for the VIDEO\$1ON\$1DEMAND domain. Each dataset section includes the default VIDEO\$1ON\$1DEMAND schema in JSON format. 

**Topics**
+ [VIDEO\$1ON\$1DEMAND domain dataset and schema requirements](#VIDEO-ON-DEMAND-dataset-requirements)
+ [Item interactions dataset requirements (VIDEO\$1ON\$1DEMAND domain)](VIDEO-ON-DEMAND-interactions-dataset.md)
+ [Users dataset requirements (VIDEO\$1ON\$1DEMAND domain)](VIDEO-ON-DEMAND-users-dataset.md)
+ [Items dataset requirements (VIDEO\$1ON\$1DEMAND domain)](VIDEO-ON-DEMAND-items-dataset.md)

## VIDEO\$1ON\$1DEMAND domain dataset and schema requirements
<a name="VIDEO-ON-DEMAND-dataset-requirements"></a>

Each dataset type has the following required fields and reserved keywords. Reserved keywords are optional, non-metadata fields. These fields are considered reserved because you must define the fields as their required data type when you use them. Reserved categorical string fields must have `categorical` set to `true`, while reserved string fields can't be categorical. The keywords can't be in your data.


| Dataset type | Required fields | Reserved keywords | 
| --- | --- | --- | 
| Item interactions ([default schema](VIDEO-ON-DEMAND-interactions-dataset.md#VIDEO-ON-DEMAND-interactions-schema)) |  USER\$1ID (`string`) ITEM\$1ID (`string`) TIMESTAMP (`long`) EVENT\$1TYPE (`string` and depending on [use case](domain-use-cases.md), `Watch` and `Click` event types)  |  EVENT\$1VALUE (`float`, `null`) IMPRESSION (`string`, `null`) RECOMMENDATION\$1ID (`string`, `null`) EVENT\$1ATTRIBUTION\$1SOURCE (`string`, `null`)  | 
| Users ([default schema](VIDEO-ON-DEMAND-users-dataset.md#VIDEO-ON-DEMAND-users-dataset-schema)) |  USER\$1ID (`string`) 1 metadata field (categorical `string` or numerical)  |  SUBSCRIPTION\$1MODEL (categorical `string`, `null`)  | 
| Items ([default schema](VIDEO-ON-DEMAND-items-dataset.md#VIDEO-ON-DEMAND-items-dataset-schema)) |  ITEM\$1ID (`string`) CREATION\$1TIMESTAMP (`long`) GENRES (categorical `string`)  |   PRICE (`float`, `null`) DURATION (`float`, `null`) GENRE\$1L2 (categorical `string`, `null`) GENRE\$1L3 (categorical `string`, `null`) AVERAGE\$1RATING (`float`, `null`) PRODUCT\$1DESCRIPTION (textual `string`, `null`) CONTENT\$1OWNER (categorical `string`, `null`) CONTENT\$1CLASSIFICATION (categorical `string`, `null`)  | 