The schemas outlined in this topic are intended for use by developers to integrate with Avails APIs. These schemas will be organized within a dedicated package to streamline governance. The payload schemas adhere to the MDDF API v2.6 standard; however, not all attributes from MDDF API v2.6 are supported by Prime Video. Unsupported attributes can still be included in the payload, but Prime Video will disregard them.
How MDDF XML is converted to JSON
The MDDF Avails API defines its schema in XML format, but supports payloads in both XML and JSON. Prime Video Partner APIs will use JSON-encoded payloads. The process for converting MDDF XML to JSON is outlined here:
- Namespaces are omitted when generating JSON attribute names.
- Text content of elements is directly assigned to the value of the corresponding JSON object.
<alice>bob</alice>
becomes{ "alice": "bob" }
- Nested elements become nested properties.
<alice><bob>charlie</bob><david>edgar</david></alice>
becomes{ "alice": { "bob": "charlie", "david": "edgar" } }
- Multiple elements with the same name and at the same level become array elements.
<alice><bob>charlie</bob><bob>david</bob></alice>
becomes{ "alice": { "bob": [ "charlie", "david" ] } }
- Mixed content (element and text nodes) at the same level become array elements.
<alice>bob<charlie>david</charlie>edgar</alice>
becomes{ "alice": [ "bob", { "charlie": "david" }, "edgar" ] }
- Attributes go in properties, and attribute names are prepended with an underscore.
<alice charlie="david">bob</alice>
becomes{ "alice": { "_charlie": "david", "value": "bob" } }
Common types
The Avails API schema supports the following data types, which require governance review to ensure standardization across all Resource Servers.
The maximum number of items allowed in batch requests is limited to 100.
Type |
Description |
Boolean |
Boolean type. Allowed values: true, false |
Integer |
32-bit signed integer. |
LongInteger |
64-bit signed integer. |
Decimal |
Floating point number. |
String |
An array of characters. |
Timestamp |
ISO time stamp. |
Enum |
An enumerated string with a pre-defined set of allowed values. |
Struct |
Structure serves as an aggregator for other attributes. |
Array |
Collection of items of ASME type. Designated by []. |
Schemas
PutAvailsAPIRequest type
Attribute |
Type |
Is mandatory |
Description |
avail |
Avail |
Yes |
Availability data |
PutAvailsAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
ValidateAvailsAPIRequest type
Attribute |
Type |
Is mandatory |
Description |
avail |
Avail |
Yes |
Availability data |
ValidateAvailsAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
DeleteAvailsAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
GetAvailsAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
avail |
Avail |
Yes |
Availability data |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
PutAvailsBatchAPIRequest type
Attribute |
Type |
Is mandatory |
Description |
requestItems |
PutAvailsBatchAPIRequestItem[] |
Yes |
List of individual requests |
PutAvailsBatchAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
responseItems |
PutAvailsBatchAPIResponseItem[] |
Yes |
List of response items |
PutAvailsBatchAPIRequestItem type
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
path |
String |
Yes |
Path to a resource for this request item. For Full Extract model the format is: For Partial Extract model the format is: |
body |
PutAvailsBatchAPIRequestItemBody |
Yes |
Availability data |
PutAvailsBatchAPIRequestItemBody type
Attribute |
Type |
Is mandatory |
Description |
avail |
Avail |
Yes |
Availability data |
PutAvailsBatchAPIResponseItem type
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
ValidateAvailsBatchAPIRequest type
Attribute |
Type |
Is mandatory |
Description |
requestItems |
ValidateAvailsBatchAPIRequestItem[] |
Yes |
List of individual requests |
ValidateAvailsBatchAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
responseItems |
ValidateAvailsBatchAPIResponseItem[] |
Yes |
List of response items |
ValidateAvailsBatchAPIRequestItem type
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
path |
String |
Yes |
Path to a resource for this request item For Full Extract model the format is: /avails/{licensor}/full-extract/{ALID}/validate For Partial Extract model the format is: /avails/{licensor}/partial-extract/transactions/{transactionID}/validate |
body |
ValidateAvailsBatchAPIRequestItemBody |
Yes |
Request body |
ValidateAvailsBatchAPIRequestItemBody type
Attribute |
Type |
Is mandatory |
Description |
avail |
Avail |
Yes |
Availability data |
ValidateAvailsBatchAPIResponseItem type
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
DeleteAvailsBatchAPIRequest type
Attribute |
Type |
Is mandatory |
Description |
requestItems |
DeleteAvailsBatchAPIRequestItem[] |
Yes |
List of individual requests |
DeleteAvailsBatchAPIResponse type
Attribute |
Type |
Is mandatory |
Description |
responseItems |
DeleteAvailsBatchAPIResponseItem[] |
Yes |
List of response items. |
DeleteAvailsBatchAPIRequestItem type
Attribute |
Type |
Is ,andatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
path |
String |
Yes |
Path to a resource for this request item. For Full Extract model the format is: For Partial Extract model the format is: |
DeleteAvailsBatchAPIResponseItem type
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
GetAvailsBatchAPIRequest
Attribute |
Type |
Is mandatory |
Description |
requestItems |
GetAvailsBatchAPIRequestItem[] |
Yes |
List of individual requests |
GetAvailsBatchAPIResponse
Attribute |
Type |
Is mandatory |
Description |
responseItems |
GetAvailsBatchAPIResponseItem[] |
Yes |
List of response items |
GetAvailsBatchAPIRequestItem
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
path |
String |
Yes |
Path to a resource for this request item. For Full Extract model the format is: For Partial Extract model the format is: |
GetAvailsBatchAPIResponseItem
Attribute |
Type |
Is mandatory |
Description |
requestItemId |
String |
Yes |
Unique identifier of item in batch request |
success |
Boolean |
Yes |
Status of operation |
errors |
Error[] |
No |
List of errors in case of failure |
avail |
Avail |
No |
Avail object |
Error type
Attribute |
Type |
Is mandatory |
Description |
code |
String |
Yes |
A string describing the error type. Validation error codes: APIV{number}, CRMSV{number} Examples: APIV400, CRMSE500 |
message |
String |
Yes |
Human-readable description of error |
Avail type
Attribute |
Type |
Required |
Notes |
ALID |
String |
Yes |
Specifies title identifier. Must match ALID specified in metadata contribution. |
Disposition |
AvailDisposition |
Yes |
Specifies extract model granularity. |
Licensor |
Publisher |
Yes |
Specifies information about entity granting license to Prime Video. |
Asset |
AvailAsset[] |
Yes |
Information about asset. Only a single asset should be specified in the list. |
Transaction |
AvailTrans[] |
Yes |
Information about transaction. |
SharedEntitlement |
AvailSharedEntitlement[] |
No |
Information on entitlements for other services. |
AvailDisposition type
Attribute |
Type |
Required |
Notes |
EntryType |
Enum |
Yes |
Allowed values: FullExtract, FullDelete, PartialExtract, PartialDelete |
Publisher type
Attribute |
Type |
Required |
Notes |
DisplayName |
String |
Yes |
Specifies name of Prime Video partner. This value will be provided to partners by Prime Video. Must be same value as used in EMA files. |
AvailAsset type
Attribute |
Type |
Required |
Notes |
_contentID |
String |
Yes |
Specifies content ID for this asset. This value will be provided to partners by Prime Video. Must be same value as used in EMA files. Must be same as ALID value provided in avail. |
WorkType |
Enum |
Yes |
Allowed values: Movie, Short, Episode, Season, Supplemental |
Metadata |
AvailUnitMetadata |
No |
Describes metadata for Movie or Short. Required when WorkType is Movie or Short. |
EpisodeMetadata |
AvailEpisodeMetadata |
No |
Describes metadata for Episode. Required when WorkType is Episode. |
SeasonMetadata |
AvailSeasonMetadata |
No |
Describes metadata for Season. Required when WorkType is Season. |
AvailSharedEntitlement type
Attribute |
Type |
Required |
Notes |
_ecosystem |
Enum |
Yes |
Allowed values: DMA |
EcosystemID |
String |
Yes |
Ecosystem specific title identifier |
AvailUnitMetadata type
Attribute |
Type |
Required |
Notes |
TitleInternalAlias |
String[] |
Yes |
Title Name. Only a single title name should be specified in the list. |
AvailEpisodeMetadata type
Attribute |
Type |
Required |
Notes |
TitleInternalAlias |
String[] |
Yes |
Title Name for Episode. Only a single title name should be specified in the list. |
EpisodeNumber |
ContentSequenceInfo |
Yes |
Number of this episode within season. |
SeasonMetadata |
AvailSeasonMetadata |
Yes |
Describes metadata for Season. Required when WorkType is Episode or Season. |
SeriesMetadata |
AvailSeriesMetadata |
Yes |
Describes metadata for Series. Required when WorkType is Episode or Season. |
AvailSeasonMetadata type
Attribute |
Type |
Required |
Notes |
SeasonContentID |
String |
Yes |
ALID for season. |
SeasonTitleInternalAlias |
String[] |
No |
Title Name for Season. Only a single title name should be specified in the list. |
SeasonNumber |
ContentSequenceInfo |
Yes |
Number for this season within series. |
NumberOfEpisodes |
Integer |
Yes |
Number of episodes in this season. |
SeriesMetadata |
AvailSeriesMetadata |
No |
Describes metadata for Series. Required when WorkType is Season. |
AvailSeriesMetadata type
Attribute |
Type |
Required |
Notes |
SeriesContentID |
String |
Yes |
ALID for series. |
SeriesTitleInternalAlias |
String[] |
No |
Title Name for Series. Only a single title name should be specified in the list. |
NumberOfSeasons |
Integer |
No |
Number of seasons in this series. |
AvailTrans type
Attribute |
Type |
Required |
Notes |
_TransactionID |
String |
No |
Unique identifier for availability window. Required when using PartialExtract. Optional when using FullExtract. |
LicenseType |
Enum |
Yes |
Allowed values: SVOD, FVOD, EST, POEST, VOD |
Territory |
Region[] |
Yes |
Territory where distribution is allowed. Only a single territory item must be provided. All Transactions within a single Avail object must have the same territory. |
Start |
DateTime |
Yes |
Start date and time for distribution in ISO format. |
End |
DateTime |
No |
End date and time for distribution in ISO format. If not provided, distribution has unlimited duration. |
AssetLanguage |
AssetLanguage[] |
No |
Language for asset expressed as ISO language code with asset type. Allowed asset types: subtitle, audio, subdub, sub, dub, ov, mta, any |
AllowedLanguage |
AssetLanguage[] |
No |
ISO language code with asset type. Allowed asset types: subtitle, audio, sub, dub, subdub, any |
HoldbackLanguage |
AssetLanguage[] |
No |
ISO language code with asset type. Allowed asset types: subtitle, audio, sub, dub, subdub, any |
LicenseRightsDescription |
String |
No |
Used to specify publishing priority. |
FormatProfile |
AvailFormatProfile |
Yes |
Quality of availed video. Allowed values: SD, HD, UHD |
ContractID |
String |
No |
Specifies contractual information. Allowed values: |
Terms |
AvailTerms[] |
Yes |
Specifies list of business terms for availability window. |
OtherInstructions |
String |
No |
Additional processing instructions for availability window. |
Region type
Attribute |
Type |
Required |
Notes |
country |
String |
Yes |
2-letter ISO 3166-1 country code |
AssetLanguage type
Attribute |
Type |
Required |
Notes |
value |
String |
Yes |
Language for asset expressed as RFC 5646 language code with asset type. |
_asset |
String |
No |
Different set of values are allowed, depending on the language attribute from AvailTrans type. Allowed values for AvailTrans.AssetLanguage: Allowed values for AvailTrans.AllowedLanguage and AvailTrans. HoldbackLanguage: Assets “sub” and “dub” are converted to their MDDF equivalent “subtitle” and “audio”. |
AvailFormatProfile type
Attribute |
Type |
Required |
Notes |
value |
Enum |
Yes |
Quality of availed video. Allowed values: SD, HD, UHD |
AvailTerms type
Attribute |
Type |
Required |
Notes |
_termName |
String |
Yes |
Identifies the term. The value is case-insensitive. For a list of allowed values, see below. |
Money |
Money |
No |
For more details see below. |
Text |
String |
No |
For more details see below. |
Event |
DateTime |
No |
For more details see below. |
Boolean |
Boolean |
No |
For more details see below. |
Duration |
String |
No |
For more details see below. |
Number |
Integer |
No |
For more details see below. |
Supported terms
Term name |
Attribute |
Required |
Notes |
ChannelIdentity |
Text |
Yes |
Identifier for a channel or subscription. |
Tier |
Text |
Conditional |
Pricing tier. Required if license type is POEST. |
SRP |
Money |
Conditional |
Suggested retail price. Required if license type is POEST. |
WSP |
Money |
Conditional |
Wholesale price. Required if license type is POEST. |
Category |
Text |
Conditional |
Price category. Required if license type is POEST. |
AnnounceDate |
Event |
No |
Date when the retailer is permitted to announce the availability start date of the title within the available territory. |
SuppressionLiftDate |
Event |
Conditional |
First date a title could be publicly announced as becoming available at a specific future date in territory of avail. Required if license type is POEST. |
RentalDuration |
Duration |
Conditional |
Duration of rental period in hours. Required if license type is SVOD. |
WatchDuration |
Duration |
Conditional |
How long user has to complete viewing once started, in hours. Required if license type is SVOD. |
Download |
Text |
No |
License includes permission to download. Valid values are Yes and No. When license type is SVOD, both rental duration and watch duration must be specified. |
Exclusive |
Boolean |
No |
Assets are exclusive within the scope of the Transaction. |
ExclusiveAttributes |
Text |
No |
Specifies type of exclusivity. Only considered when Exclusive is true. A default value will be used if not provided when Exclusive is true. |
BrandingRights |
Boolean |
No |
Indicates partner intent to display branding. |
BrandingRightsAttributes |
Text |
No |
Specifies branding text. Only considered when BrandingRights is true. A default value will be used if not provided when BrandingRights is true. |
allowAds |
Boolean |
No |
Determines whether ads are allowed or prohibited. This term can appear only once. |
allowedAdPlacement |
Text |
Conditional |
Specifies location in roll where ads can be inserted. Allowed values are: PreRoll, MidRoll, PostRoll, Overlays, PauseAds, Squeezebacks. This term can appear more than once. Either allowedAdPlacement or prohibitedAdPlacement can be specified, but not both. |
prohibitedAdPlacement |
Text |
Conditional |
Specifies location in roll where ads cannot be inserted. Allowed values are: PreRoll, MidRoll, PostRoll,Overlays, PauseAds, Squeezebacks. Allowed only when allowAds is true. Either allowedAdPlacement or prohibitedAdPlacement can be specified, but not both. |
cuepointDeliveryAndUsage |
Text |
No |
Specifies cuepoint delivery and usage obligations. Allowed values: PartnerWillDeliverAndPrimeVideoMustUse, PrimeVideoWillUseIfDelivered, NoDeliveryOrUsageObligations, TalentObligated. Allowed only when allowAds is true. |
blindBasisSelling |
Text |
No |
Allowed values: GuaranteedImpressions, NoGuaranteedImpressions This attribute should only be present if allowAds is set to true. |
sponsorships |
Text |
No |
Allowed values: Permitted, Prohibited, PermittedWithRestrictions. This attribute should only be present if allowAds is set to true. |
sponsorshipsRestrictions |
Text |
Conditional |
Free-form text This attribute should only be present if sponsorships is set to AllowedWithRestrictions. |
talentAndAmazonAdGuidelines |
Text |
No |
Allowed values: NoRestrictions, ConsultationRequired This attribute should only be present if allowAds is set to true. |
talentRestrictions |
Text |
Conditional |
Free-form text This attribute should only be present if talentAndAmazonAdGuidelines is set to ConsultationRequired. |
adLoadLimit |
Text |
No |
Number of ad minutes per hour. Value must be a valid integer. This attribute should only be present if allowAds is set to true. |
Money type
Attribute |
Type |
Required |
Notes |
value |
Decimal |
No |
Monetary value, required for some price types |
_currency |
String |
Yes |
ISO currency code |
ContentSequenceInfo type
Attribute |
Type |
Required |
Notes |
Number |
Integer |
Yes |
Content sequence number, such as episode number or season number |
BusinessLine enumeration
Enumerated value |
Description |
TVOD |
TVOD means purchase or rental. Related license types: EST, VOD, POEST |
PRIME_SUBSCRIPTION |
Amazon Prime or Amazon Kids+ subscription. Related license types: SVOD |
CHANNELS |
Third-party channel subscription. Related license types: SVOD |
FVOD |
Free content. Related license types: FVOD |