Skip to main content
POST /api/v2/buyer/advertisers/{advertiserId}/catalogs/sync Inbound ADCP sync_catalogs endpoint. Buyers call this to sync catalog feeds and items onto the advertiser. Provide either a remote feed url or inline items per catalog — not both.

Request

curl
curl -X POST https://api.interchange.io/api/v2/buyer/advertisers/12345/catalogs/sync \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "account": { "account_id": "12345" },
    "catalogs": [
      {
        "catalog_id": "summer-sale-2026",
        "type": "product",
        "name": "Summer Sale 2026",
        "url": "https://feeds.acme.com/products.xml",
        "feed_format": "google_merchant_center",
        "update_frequency": "daily",
        "conversion_events": ["purchase", "add_to_cart"]
      }
    ],
    "delete_missing": false,
    "validation_mode": "strict"
  }'

Parameters

FieldTypeRequiredNotes
advertiserIdstring (path)YesUnique identifier for the advertiser
account.account_idstringYesAdvertiser ID (seat ID) to attach catalogs to
catalogsarrayYesCatalog feeds to sync (1–50 per call)
catalogs[].catalog_idstringYesBuyer-assigned catalog identifier
catalogs[].typeenumYesproduct, offering, inventory, store, promotion, hotel, flight, job, vehicle, real_estate, education, destination
catalogs[].namestringNoDisplay name (1–255 chars)
catalogs[].urlstringNoRemote feed URL. Provide this or items, not both
catalogs[].itemsarrayNoInline catalog items (max 10000). Provide this or url, not both
catalogs[].feed_formatenumNogoogle_merchant_center, facebook_catalog, shopify, linkedin_jobs, custom
catalogs[].update_frequencyenumNorealtime, hourly, daily, weekly
catalogs[].conversion_eventsarrayNoConversion event IDs linked to this catalog
catalog_idsarrayNoOnly process these catalog_ids from the catalogs array
delete_missingbooleanNoArchive buyer-managed catalogs not in this request. Default false
dry_runbooleanNoPreview changes without persisting. Default false
validation_modeenumNostrict (default) or lenient item validation

Response

{
  "catalogs": [
    {
      "catalog_id": "summer-sale-2026",
      "action": "created",
      "platform_id": "cat_abc123",
      "item_count": 1840,
      "items_approved": 1832,
      "items_pending": 0,
      "items_rejected": 8,
      "item_issues": [
        { "item_id": "sku_4471", "field": "image_link", "issue": "unreachable URL", "severity": "error" }
      ],
      "last_synced_at": "2026-06-07T12:00:00Z",
      "next_fetch_at": "2026-06-08T12:00:00Z"
    }
  ],
  "dry_run": false
}
Each result carries an action of created, updated, unchanged, failed, or deleted. Item-level problems appear in item_issues with severity error or warning. When dry_run was true, nothing is persisted.

Errors

  • 400 VALIDATION_ERROR — a catalog supplies both url and items, exceeds 50 catalogs, or fails strict item validation.
  • 404 NOT_FOUNDadvertiserId does not exist or is not visible to the authenticated customer.
See Errors for the full error contract.

Advertiser tasks

All advertiser operations

Advertiser overview

Fields, lifecycle, and concepts

List catalogs

See synced catalogs