The Notifications API lets you receive real-time notifications for various content events on Prime Video—eliminating the need to repeatedly poll status APIs. Set up automated workflows that respond instantly to asset delivery updates and live status changes, enabling you to resolve issues faster and keep your catalog current.
Real-Time Issue Detection – Receive instant notifications when asset deliveries fail or live statuses change, enabling you to address problems immediately instead of discovering them hours or days later through manual checks.
Reduced API Overhead – Eliminate the need for continuous polling of status APIs, reducing your infrastructure costs and API call volume while still maintaining up-to-date information.
Automated Workflow Integration – Connect notifications directly to your existing systems (AWS services or webhooks) to trigger automated responses, ticket creation, or alerting workflows without manual intervention.
Comprehensive Event Coverage – Monitor both asset delivery status and live status across all your titles and territories from a single notification system.
Getting Started
Getting started with notifications requires three steps:
- Register a Target: Set up where you want to receive notifications. You can choose from AWS services (SQS, SNS, EventBridge) or HTTPS webhooks.
- Create Subscriptions: Map the events you want to monitor to your registered targets. Each subscription covers one topic (AssetStatus or OfferStatus), but you can subscribe to multiple event types within that topic.
- Receive Notifications: Once configured, you’ll automatically receive notifications as events occur in real-time.
Available Topics and Events
Topics group related events together. When you create a subscription, you select a topic and specify which events within that topic you want to monitor.
LiveStatusUpdated
Topic: OfferStatus
Notifies you when a title’s live status changes on the Prime Video storefront — i.e., when a title goes live or not live.
What triggers this notification? A title’s live/not-live status changes on the storefront. Use the callbackUrl in the payload to retrieve full offer status details via the Offer Status API.
Payload:{
"alid": "partner-listing-id",
"territory": "US",
"marketplace": "US",
"partnerAlias": "partner-alias",
"eventType": "LiveStatusUpdated",
"callbackUrl": "https://partnerapi.primevideo.com/v1/avails/{partnerAlias}/status/{alid}?marketplace={marketplace}&territory={territory}",
"eventTimestamp": "2024-01-01T00:00:00.000Z"
}
AssetStatusUpdated
Topic: AssetStatus
Notifies you once an asset reaches a final delivery outcome. A notification is sent when an asset’s status becomes:
- Fulfilled — the asset was delivered successfully, or
- Failed — the asset could not be delivered or needs attention.
What triggers this notification? A change in the delivery status of an asset (e.g., video, audio, subtitle, artwork). Use the callbackUrl to retrieve the full asset delivery status, including detailed error information where applicable.
Use cases:
- Detect delivery failures in real time and trigger automated re-delivery workflows
- Confirm successful asset processing without polling the Asset Status API
- Integrate with internal ticketing systems for immediate issue resolution
Payload:{
"alid": "partner-listing-id",
"marketplace": "US",
"partnerAlias": "partner-alias",
"eventType": "AssetStatusUpdated",
"callbackUrl": "https://partnerapi.primevideo.com/v1/assets/{partnerAlias}/status/{alid}?marketplace={marketplace}",
"eventTimestamp": "2024-01-01T00:00:00.000Z"
}
Request and Response Schemas
This section provides technical specifications for developers to integrate the Partner Notification API into your systems. Use this reference to understand the request format, response structure, and data types returned by the API.
Base URL
All API requests are made to the following base URL. Append the relevant endpoint path to this URL when making requests.
https://partnerapi.primevideo.com/v1
Target Management
A target is the destination where you want to receive notifications—this can be an AWS service (SQS, SNS, or EventBridge) or an HTTPS webhook endpoint. You must register at least one target before creating subscriptions.
Register Target
POST /{licensor}/notifications/targets
Create a new notification target where you’ll receive event notifications.
Request Body:
{
"type": "SQS|SNS|EVENTBRIDGE|WEBHOOK",
"destination": "target-destination",
"auth": { /* varies by type */ }
}
Response:
{
"targetId": "target-id-1",
"status": "ACTIVE"
}
List All Targets
Use this endpoint to retrieve a full list of the notification targets registered for your organization. This is useful for auditing your current configuration or identifying target IDs to use when creating or updating subscriptions.
GET /{licensor}/notifications/targets
Retrieve all registered targets for your organization.
Get Specific Target
GET /{licensor}/notifications/targets?targetId={id}
Retrieve details for a specific target.
Update Target
PUT /{licensor}/notifications/targets/{targetId}
Update an existing target configuration.
Delete Target
DELETE /{licensor}/notifications/targets/{targetId}
Remove a target from your configuration.
Subscription Management
A subscription maps one or more events to a registered target, determining which notifications you receive and where they are delivered. Each subscription is scoped to a single topic, but you can create multiple subscriptions to cover all the events relevant to your workflow.
Create Subscription
POST /{licensor}/notifications/subscriptions
Create a subscription to map events to your targets.
Request Body:
{
"topic": "OfferStatus",
"eventTargetMapping": {
"LiveStatusUpdated": ["target-id-1"]
}
}
{
"topic": "AssetStatus",
"eventTargetMapping": {
"AssetStatusUpdated": ["target-id-1"]
}
}
Response:
{
"subscriptionId": "subscription-id-1",
"status": "ACTIVE"
}
List All Subscriptions
GET /{licensor}/notifications/subscriptions
Retrieve all subscriptions for your organization.
Update Subscription
PUT /{licensor}/notifications/subscriptions/{id}
Update an existing subscription configuration.
Delete Subscription
DELETE /{licensor}/notifications/subscriptions/{id}
Remove a subscription from your configuration.
Target Types
Target types define how Prime Video delivers notifications to your systems. You can choose from AWS-managed services for reliable, scalable delivery, or configure an HTTPS webhook to receive notifications directly at your own endpoint.
AWS Targets (SQS, SNS, EventBridge)
Required Fields:
- destination – ARN of AWS resource
- assumeRoleArn – IAM role for delivery
- externalId – Security identifier (optional but recommended)
SQS Example:{
"type": "SQS",
"destination": "arn:aws:sqs:{region}:{account-id}:{queue-name}",
"auth": {
"assumeRoleArn": "arn:aws:iam::{account-id}:role/{role-name}",
"externalId": "{external-id}"
}
}
SNS Example:{
"type": "SNS",
"destination": "arn:aws:sns:{region}:{account-id}:{topic-name}",
"auth": {
"assumeRoleArn": "arn:aws:iam::{account-id}:role/{role-name}",
"externalId": "{external-id}"
}
}
EventBridge Example:{
"type": "EVENTBRIDGE",
"destination": "arn:aws:events:{region}:{account-id}:event-bus/{bus-name}",
"auth": {
"assumeRoleArn": "arn:aws:iam::{account-id}:role/{role-name}",
"externalId": "{external-id}"
}
}
Bearer Token:{
"type": "WEBHOOK",
"destination": "https://your-api.example.com/webhooks",
"auth": {
"type": "bearer",
"bearerToken": "your-token"
}
}
API Key:{
"type": "WEBHOOK",
"destination": "https://your-api.example.com/webhooks",
"auth": {
"type": "apiKey",
"apiKey": "your-key",
"apiKeyHeader": "X-API-Key"
}
}
HMAC (Recommended):{
"type": "WEBHOOK",
"destination": "https://your-api.example.com/webhooks",
"auth": {
"type": "hmac",
"hmacSecret": "your-secret",
"hmacAlgorithm": "HmacSHA256",
"hmacHeader": "X-Signature"
}
}
Payload
Payload Structure
All notification payloads follow a consistent structure:
Field |
Description |
|---|---|
alid |
Partner listing ID (title identifier) |
territory |
Territory code (e.g., US, GB) |
marketplace |
Marketplace code |
partnerAlias |
Partner identifier |
eventType |
The specific event that occured |
callbackUrl |
URL to retrieve full status details |
eventTimestamp |
ISO 8601 timestamp of the event |
Webhooks receive HTTP POST requests with the following payload:{
"alid": "partner-listing-id",
"territory": "US",
"marketplace": "US",
"partnerAlias": "partner-alias",
"eventType": "LiveStatusUpdated",
"callbackUrl": "https://callback-url.com",
"eventTimestamp": "2024-01-01T00:00:00.000Z"
}
Authentication Headers:
- HMAC: X-Signature: {signature}X-Signature: {signature}
- API Key: X-API-Key: {key}X-API-Key: {key}
- Bearer: Bearer {token}Authorization: Bearer {token}
Error Responses
When a request cannot be completed, the API returns a structured error response to help you identify and resolve the issue. The response includes an error code and a human-readable message describing the problem.
{
"error": {
"code": "ERROR_CODE",
"message": "Human readable error message"
}
}
Common Error Codes:
- BAD_REQUEST – Invalid request parameters
- UNAUTHORIZED – Authentication failed
- NOT_FOUND – Resource not found
- CONFLICT – Resource already exists
AWS Target Setup Guide
If you are using an AWS service (SQS, SNS, or EventBridge) as your notification target, you must configure an IAM Delivery Role to grant Prime Video permission to deliver notifications to your AWS resources. Follow the steps below to set up the required IAM role and permission policies before registering your target.
Prerequisites
- AWS destination resource (SQS Queue, SNS Topic, or EventBridge Bus)
- IAM Delivery Role with trust and permission policies
IAM Role Setup
1. Create Role: AWS Console → IAM → Roles → Create Role → Custom Trust Policy
2. Trust Policy{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::687801838843:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "{external-id}"
},
"ArnLike": {
"aws:PrincipalArn": "arn:aws:iam::687801838843:role/PVPartnerApiNPS-ExecutionRole-*"
}
}
}
]
}
3. Permission Policy (choose one):
SQS:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["sqs:SendMessage", "sqs:GetQueueUrl"],
"Resource": "arn:aws:sqs:{region}:{account-id}:{queue-name}"
}]
}
SNS:{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:{region}:{account-id}:{topic-name}"
}]
}
EventBridge: {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "events:PutEvents",
"Resource": "arn:aws:events:{region}:{account-id}:event-bus/{bus-name}"
}]
}