as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Develop
Test
Publish
Monetize
Engage users
Device specifications
Resources

Watchlist

These instructions are for the addition and removal of content from the customer’s watchlist. Fire TV might use watchlist information to update the customer’s universal watchlist.

What to send

If the trigger is an app install and sign-in, or Fire TV’s on-device service asks for a refresh, provide all watchlist items with action=add. Otherwise, only send added and removed items. When triggered, send all the data. Amazon takes care of duplicates, so no need to filter these out yourself.

Field Name Required (Y/N) Description
Content ID Y Corresponds to the content ID provided to Fire TV through your catalog integration.
Activity Date Y Timestamp of when the customer added or removed the entitlement.
List Action Y ADDED or REMOVED.
Internal Profile ID Y Provide an obfuscated Profile ID so that Fire TV can associate the activity with the correct app customer.

When to send

  • When app initially launches and the user signs in.
  • When adding or removing an item from the customer’s watchlist. This action can occur off-device.
  • When asked to refresh by Fire TV’s on-device service.
  • When switching to a new profile.

How to send

To share the latest title the customer added to the watchlist, use the following code:

AmazonCustomerListReceiver listReceiver = AmazonCustomerListReceiver.getInstance(getContext());
AmazonCustomerListEntry listEntry = AmazonCustomerListEntry.builder()
   .contentId(AmazonContentId.builder()
      .id("contentId")
      .namespace(AmazonContentId.NAMESPACE_CDF_ID).build())
   .addedTimestampMs(System.currentTimeMillis())
   .profileId(AmazonProfileId.builder()
      .id("myProfileId1")
      .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
      .build())
   .build();

listReceiver.addCustomerListEntry(AmazonCustomerListType.WATCHLIST, listEntry);
val listReceiver: AmazonCustomerListReceiver = AmazonCustomerListReceiver.getInstance(context)
val listEntries: List<AmazonCustomerListEntry> = ArrayList()
val listEntry: AmazonCustomerListEntry = AmazonCustomerListEntry.builder()
    .contentId(
        AmazonContentId.builder()
            .id("contentId")
            .namespace(AmazonContentId.NAMESPACE_CDF_ID).build()
    )
    .addedTimestampMs(System.currentTimeMillis())
    .profileId(
        AmazonProfileId.builder()
            .id("myProfileId1")
            .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
            .build()
    )
    .build()
listEntries.add(listEntry)
val listEntry2: AmazonCustomerListEntry = AmazonCustomerListEntry.builder()
    .contentId(
        AmazonContentId.builder()
            .id("contentId2")
            .namespace(AmazonContentId.NAMESPACE_CDF_ID).build()
    )
    .addedTimestampMs(System.currentTimeMillis())
    .profileId(
        AmazonProfileId.builder()
            .id("myProfileId1")
            .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
            .build()
    )
    .build()
listEntries.add(listEntry2)
listReceiver.setCustomerList(AmazonCustomerListType.WATCHLIST, listEntries)

Send the customer’s full watchlist

The following example code shows how to send the customer’s full watchlist.

AmazonCustomerListReceiver listReceiver = AmazonCustomerListReceiver.getInstance(getContext());        List<AmazonCustomerListEntry> listEntries = new ArrayList<>();
   AmazonCustomerListEntry listEntry = AmazonCustomerListEntry.builder()
      .contentId(AmazonContentId.builder()
         .id("contentId")
         .namespace(AmazonContentId.NAMESPACE_CDF_ID).build())
      .addedTimestampMs(System.currentTimeMillis())
      .profileId(AmazonProfileId.builder()
         .id("myProfileId1")
         .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
         .build())
      .build();
   listEntries.add(listEntry);
   
   AmazonCustomerListEntry listEntry2 = AmazonCustomerListEntry.builder()
      .contentId(AmazonContentId.builder()
         .id("contentId2")
         .namespace(AmazonContentId.NAMESPACE_CDF_ID).build())
      .addedTimestampMs(System.currentTimeMillis())
      .profileId(AmazonProfileId.builder()
         .id("myProfileId1")
         .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
         .build())
      .build();
   listEntries.add(listEntry2);

listReceiver.setCustomerList(AmazonCustomerListType.WATCHLIST, listEntries);
val listReceiver: AmazonCustomerListReceiver = AmazonCustomerListReceiver.getInstance(context)
val listEntries: List<AmazonCustomerListEntry> = ArrayList()
val listEntry: AmazonCustomerListEntry = AmazonCustomerListEntry.builder()
    .contentId(
        AmazonContentId.builder()
            .id("contentId")
            .namespace(AmazonContentId.NAMESPACE_CDF_ID).build()
    )
    .addedTimestampMs(System.currentTimeMillis())
    .profileId(
        AmazonProfileId.builder()
            .id("myProfileId1")
            .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
            .build()
    )
    .build()
listEntries.add(listEntry)
val listEntry2: AmazonCustomerListEntry = AmazonCustomerListEntry.builder()
    .contentId(
        AmazonContentId.builder()
            .id("contentId2")
            .namespace(AmazonContentId.NAMESPACE_CDF_ID).build()
    )
    .addedTimestampMs(System.currentTimeMillis())
    .profileId(
        AmazonProfileId.builder()
            .id("myProfileId1")
            .namespace(AmazonProfileId.NAMESPACE_APP_INTERNAL)
            .build()
    )
    .build()
listEntries.add(listEntry2)
listReceiver.setCustomerList(AmazonCustomerListType.WATCHLIST, listEntries)

Next Steps

You can view the data types on the Data Type Reference.


Last updated: May 29, 2026