

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

 When you create a Domain dataset group for the VIDEO\_ON\_DEMAND domain, each dataset type has a default schema with a set of VIDEO\_ON\_DEMAND 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\_ON\_DEMAND-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\_ON\_DEMAND domain. Each dataset section includes the default VIDEO\_ON\_DEMAND schema in JSON format. 

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

## VIDEO\_ON\_DEMAND 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\_ID (`string`)<br />ITEM\_ID (`string`)<br />TIMESTAMP (`long`)<br />EVENT\_TYPE (`string` and depending on [use case](domain-use-cases.md), `Watch` and `Click` event types) | EVENT\_VALUE (`float`, `null`)<br />IMPRESSION (`string`, `null`)<br />RECOMMENDATION\_ID (`string`, `null`)<br />EVENT\_ATTRIBUTION\_SOURCE (`string`, `null`) | 
| Users ([default schema](VIDEO-ON-DEMAND-users-dataset.md#VIDEO-ON-DEMAND-users-dataset-schema)) | USER\_ID (`string`)<br />1 metadata field (categorical `string` or numerical) | SUBSCRIPTION\_MODEL (categorical `string`, `null`) | 
| Items ([default schema](VIDEO-ON-DEMAND-items-dataset.md#VIDEO-ON-DEMAND-items-dataset-schema)) | ITEM\_ID (`string`)<br />CREATION\_TIMESTAMP (`long`)<br />GENRES (categorical `string`) |  PRICE (`float`, `null`)<br />DURATION (`float`, `null`)<br />GENRE\_L2 (categorical `string`, `null`)<br />GENRE\_L3 (categorical `string`, `null`)<br />AVERAGE\_RATING (`float`, `null`)<br />PRODUCT\_DESCRIPTION (textual `string`, `null`)<br />CONTENT\_OWNER (categorical `string`, `null`)<br />CONTENT\_CLASSIFICATION (categorical `string`, `null`) | 