Pinterest catalog ai_disclosures: one entry per asset URL

Pinterest catalog items take ai_disclosures entries, each with an asset url and a disclosure type. Keep your Sume-made files and feed URLs aligned.

4 min readSume
All posts

In Pinterest's catalog API, AI disclosure is per asset, not per item. Each ai_disclosures entry has a url that identifies one image or video asset on the item and a list of disclosure types. If you replace product photos with AI-generated ones, add an entry for each asset URL in your feed, otherwise the declaration does not point at the file.

How is the catalog field shaped?

The spec describes ai_disclosures on catalog items as AI content disclosures for individual assets: image_link, additional_image_link or video_link on most item types, and main image link or additional image link on hotels. Each entry declares which disclosure types apply to a single asset URL. The item array uses the disclosure types ai_modified and synthetic_performer in lowercase.

Catalog ai_disclosures (read 2026-10-02)
PartDetail
Entryurl plus disclosure list
Asset fields coveredimage_link, additional_image_link, video_link
Hotel itemsmain image link, additional_image_link
Disclosure valuesai_modified, synthetic_performer

Why does the URL matter?

The URL ties the declaration to a specific file. If you regenerate an image and upload it under a new URL, the old disclosure no longer matches, so update the feed entry in the same change. Keep a stable naming scheme for the files you host.

How do I generate catalog-ready images?

Most catalogs want square or portrait product shots. Ask for aspect_ratio 1:1 or 4:5 and output_format jpeg, then host the file under your own domain, since the feed needs a URL that Pinterest can fetch. The Sume URL is a hosting detail of the job result and not something to rely on as your permanent feed URL.

import json, os, urllib.request

body = {
    "model": "bytedance-seed/seedream-4.5",
    "prompt": "white ceramic vase on a seamless light grey backdrop, product photo",
    "aspect_ratio": "1:1",
    "output_format": "jpeg"
}
req = urllib.request.Request(
    "https://api.sume.com/v1/images",
    data=json.dumps(body).encode(),
    headers={
        "Authorization": "Bearer " + os.environ["SUME_API_KEY"],
        "Content-Type": "application/json",
    },
    method="POST",
)
print(urllib.request.urlopen(req).read().decode())

What should I verify?

Check which item types in your catalog support the field, since the spec lists it per type. Review Pinterest's policy for when a disclosure is required.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume