Onboard to the Avails API - Prime Video Tech Docs

Onboard to the Avails API

Last updated 2025-05-20

The Avails API is built on the Partner API Framework, which offers a unified interface for externally accessible APIs. This framework allows studios, post-production houses, and other fulfillment partners to programmatically manage their video catalog on Prime Video.

Get started

To access the Avails API, you will need an MTLS certificate and an API Key. This section provides the steps to generate a Certificate Signing Request (CSR), request an MTLS certificate, and make API requests to the Avails API.

Workflow diagram of the 4 steps involved in onboarding to the Avails API. Each step is described in detail below this image.

Step 1: Client creates their private key and Certificate Signing Request (CSR) using openssl.


Step 2: Client sends email to pv-partner-apis-support@amazon.com with attached client.csr. (The team will respond with a certificate within 1 business day.) The following code snippet is a suggested example.

Step 3: Client receives public certificate, cacert, and API key from the Partner API team. The following code snippet provides an example of the messages you might recieve.

Step 4: Client uses PublicKey, Partner public certificate, and API key for calling the API.
Here are some sample integrations using different technologies.


Revoke MTLS certificate access

Occasionally, an MTLS certificate may need to be revoked. If you need one of their certificates to be revoked, send the information shown in the following example via email to pv-partner-apis-support@amazon.com.

MDDF-to-EMA Avail schema mapping

We are using the MDDF Avail schema in JSON. A diagram of the schema is available from MovieLabs at the following link: https://www.movielabs.com/md/avails/v2.6/avails-v2.6.1/avails-v2.6.1.html#Link2. The following table shows the mapping from EMA for the MDDF Avail properties and attributes supported.

Prime Video MDDF JSON

Prime Video EMA Spreadsheet

Avail.Compatibility.SpecVersion

1.7.3

Avail.ALID

ALID

Avail.Disposition.EntryType

EntryType

Avail.Licensor.DisplayName

DisplayName

Avail.Asset._contentID

ALID

Avail.Asset.WorkType

WorkType

Avail.Asset.Metadata.TitleInternalAliias

TitleInternalAlias

Avail.Asset.EpisodeMetadata.TitleInternalAliias

EpisodeTitleInternalAlias

Avail.Asset.EpisodeMetadata.EpisodeNumber.Number

EpisodeNumber

Avail.Asset.EpisodeMetadata.SeasonMetadata.SeasonTitleInternalAlias

SeasonTitleInternalAlias

Avail.Asset.EpisodeMetadata.SeasonMetadata.SeasonContentID

SeasonAltID

Avail.Asset.EpisodeMetadata.SeasonMetadata.SeasonNumber.Number

SeasonNumber

Avail.Asset.EpisodeMetadata.SeasonMetadata.NumberOfEpisodes

EpisodeCount

Avail.Asset.EpisodeMetadata.SeriesMetadata.SeriesContentID

SeriesAldID

Avail.Asset.EpisodeMetadata.SeriesMetadata.SeriesTitleInternalAlias

SeriesTitleInternalAlias

Avail.Asset.EpisodeMetadata.SeriesMetadata.NumberOfSeasons

SeasonCount

Avail.Asset.SeasonMetadata.SeasonTitleInternalAliias

SeasonTitleInternalAlias

Avail.Asset.SeasonMetadata.SeasonContentID

SeasonAltID

Avail.Asset.SeasonMetadata.SeasonNumber.Number

SeasonNumber

Avail.Asset.SeasonMetadata.NumberOfEpisodes

EpisodeCount

Avail.Asset.SeasonMetadata.SeriesMetadata.SeriesContentID

SeriesAldID

Avail.Asset.SeasonMetadata.SeriesMetadata.SeriesTitleInternalAlias

SeriesTitleInternalAlias

Avail.Asset.SeasonMetadata.SeriesMetadata.NumberOfSeasons

SeasonCount

Avail.Transaction.LicenseType

LicenseType

Avail.Transaction.Territory.Country

Territory

Avail.Transaction.Start

Start

Avail.Transaction.End

End

Avail.Transaction.AllowedLanguage

AllowedLanguages

Avail.Transaction.HoldbackLanguage

HoldbackLanguage

Avail.Transaction.AssetLanguage.value

AssetLanguage

Avail.Transaction.AssetLanguage._asset

LocalizationType

Avail.Transaction.LicenseRightsDescription

LicenseRightsDescription

Avail.Transaction.FormatProfile

FormatProfile

Avail.Transaction.ContractID

ContractID

Avail.Transaction.OtherInstructions

OtherInstructions

Avail.Transaction._TransactionID

AvailID

Avail.Transaction.Term._termName.ChannelIdentity

GroupIdentity

Avail.Transaction.Term._termName.AnnounceDate

AnnounceDate

Avail.Transaction.Term._termName.SuppressionLiftDate

SuppressionLiftDate

Avail.Transaction.Term._termName.RentalDuration

RentalDuration

Avail.Transaction.Term._termName.WatchDuration

WatchDuration

Avail.Transaction.Term._termName.Download

Download

Avail.Transaction.Term._termName.Tier

PriceType

Avail.Transaction.Term._termName.Category

PriceType

Avail.Transaction.Term._termName.WSP

PriceType

Avail.Transaction.Term._termName.SRP

SRP

Avail.Transaction.Term.Money.value

Price

Avail.Transaction.Term.Money._currency

PriceCurrency

Avail.Transaction.Term.Exclusivity

Exclusivity

Avail.Transaction.Term.ExclusiveAttributes

ExclusiveAttributes

Avail.SharedEntitlement.EcosystemID

DMA_ID

Avail.SharedEntitlement.ecosystem

DMA_ID

Methods

The following sections describe the different API request methods you can use with the Avails API, including their specific endpoints, and what the body of each request and response should look like.

Category: Full Extract

GET:

  • Endpoint:
    /avails/{licensor}/full-extract/{ALID}?territory={territory}&businessLine={businessLine}
  • RequestBody: -
  • ResponseBody: Avail with transactions for one scope

PUT:

  • Endpoint:
    /avails/{licensor}/full-extract/{ALID}
  • RequestBody:
    { ... Avail data }
  • ResponseBody: Success/Failure response

DELETE:

  • Endpoint:
    /avails/{licensor}/full-extract/{ALID}?territory={territory}&businessLine={businessLine}&contractID={CPH | FIXED_FEE}&channelIdentity={channelIdentity}
  • RequestBody: -
  • ResponseBody: Success/Failure response

POST:

  • Endpoint:
    /avails/{licensor}/full-extract/{ALID}/validate
  • RequestBody:
    { ... Avail data }
  • ResponseBody: Success/Failure response

Category: Batch
Sub Category: Full Extract

POST:

  • Endpoint:
    /avails/full-extract/batch/get
  • RequestBody:
  • ResponseBody:

POST:

  • Endpoint:
    /avails/full-extract/batch/put
  • RequestBody:
  • ResponseBody:

POST:

  • Endpoint:
    /avails/full-extract/batch/delete
  • RequestBody:
  • ResponseBody:

POST:

  • Endpoint:
    /avails/full-extract/batch/validate
  • RequestBody:
  • ResponseBody:

Business lines

For Full Extract, all Avails for a business line + territory must be delivered together. The following business lines are supported:

  • PRIME_SUBSCRIPTION
  • TVOD
  • FVOD
  • CHANNELS

BusinessLine values can be determined by the combination of LicenseType and BenefitId as shown in the following table.

LicenseType

BenefitId

BusinessLine

EST

-

TVOD

VOD

-

TVOD

POEST

-

TVOD

SVOD

PRIME

PRIME_SUBSCRIPTION

SVOD

A4K

PRIME_SUBSCRIPTION

SVOD

ANY (not PRIME or A4K)

CHANNELS

FVOD

ANY

FVOD

Can’t find what you’re looking for?

Contact us


Internal Server error! Please try again
Your session has expired

Please sign in to continue

Sign In
edit