Skip to main content
Manage catalog feeds on a seller account. Sync product feeds, inventory data, store locations, offerings, and industry-vertical catalogs (hotel, flight, job, vehicle, real estate, education, destination). Supports URL-based feeds with scheduled re-fetch, inline item data, and discovery of existing catalogs. Terminology. sync_catalogs manages buyer-provided data feeds that a seller uses to render or target ads. This is separate from the seller-side wholesale product feed exposed by get_products buying_mode: "wholesale" and the wholesale signals feed exposed by get_signals discovery_mode: "wholesale"; webhooks are the push layer for changes to those seller-side feeds. Response Time: Instant to days (returns completed for small catalogs, or submitted for large feeds requiring platform review) Request Schema: /schemas/v3/media-buy/sync-catalogs-request.json Response Schema: /schemas/v3/media-buy/sync-catalogs-response.json

Who calls whom

The buyer calls sync_catalogs on the seller to push catalog feeds to the seller’s account. The seller validates items, runs content policy checks, and returns per-item approval status. This task sits between format discovery and creative submission in the account state setup sequence:
  1. list_creative_formats — check catalog asset types in each format’s assets array to know what feeds to sync
  2. sync_catalogs — push the required feeds to the account
  3. sync_creatives — submit creatives that reference synced catalogs by catalog_id
  4. create_media_buy — launch the campaign

Quick start

Sync a product feed:

Request parameters

Catalog object

Each catalog in the catalogs array is a Catalog object. Key fields:

Response

Success response — per-catalog results: Error response — operation failed entirely: Responses use discriminated unions — you get either catalogs or errors, never both.

Example response with item-level review

Item review lifecycle

Catalog items follow a simple review cycle: items enter pending on sync, and the platform reviews them asynchronously. Items are either approved, rejected (with reasons), or approved with warning (serving but with fixable issues). Rejection is not terminal — fix the issue in the source catalog and re-sync. Re-syncing an item resets it to pending for re-review. The item_issues array on the response identifies per-item rejection reasons.

Discovery mode

Omit catalogs to list all catalogs on the account without modification:
This matters because sellers may already have brand data from other sources — a retailer might have the brand’s product catalog from their commerce platform. Discovery lets the buyer build on existing state rather than re-uploading everything.

Async approval workflow

Large feeds or feeds requiring content policy review return status: "submitted" with a task_id. The seller reviews items asynchronously and notifies the buyer via webhook when done. Async response states:
  • working — platform is processing the feed (fetching URL, validating items)
  • input-required — platform needs buyer action (fix validation errors, provide missing fields)
  • submitted — review complete, final per-catalog results available
Configure push_notification_config on the request to receive webhook notifications for state transitions.

Common scenarios

Retail media (product + inventory + store)

Recruitment (inline job offerings)

Dry run validation

Error handling

Best practices

  1. Check format requirements first — Call list_creative_formats and check catalog asset types in each format’s assets array before syncing. This tells you what catalog types to sync and what fields each item needs.
  2. Use discovery mode — Before syncing, call without catalogs to see what the seller already has. The seller may have brand data from other sources.
  3. Set update_frequency — For URL-based feeds, always set update_frequency so the platform knows how often to re-fetch. Stale feeds lead to ads showing out-of-stock products.
  4. Declare conversion_events — Connect catalogs to the conversion tracking system by declaring which event types represent conversions for catalog items.
  5. Use dry_run for large feeds — Validate before committing, especially for first-time syncs with thousands of items.
  6. Handle per-item failures — In lenient mode, valid items are processed even when others fail. Check item_issues on the response to fix rejected items.

Next steps

  • Catalogs — Complete documentation on catalog types, sourcing, and format requirements
  • Account state — How catalogs fit into the account setup sequence
  • sync_creatives — Submit creatives that reference synced catalogs
  • list_creative_formats — Discover format catalog requirements