List a feed's uploads
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Meta product catalog ID (from GET /v1/ads/catalogs)
Query Parameters
A facebook, instagram, metaads or whatsapp account ID
A facebook, instagram or metaads account whose Meta login carries catalog_management; its token performs the call instead of the account's own
Response Body
application/json
application/json
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.productcatalogs.listAdCatalogFeedUploads({ path: { catalogId: 'catalog_abc123', feedId: 'feed_abc123', }, query: { accountId: 'account_abc123', },});console.log(data);{ "uploads": [ { "id": "string", "url": "string", "startTime": "string", "endTime": "string", "errorCount": 0, "warningCount": 0, "itemsDetected": 0, "itemsDeleted": 0 } ]}Set ad tracking tags
Unified update. Send only the fields for the ad's platform: - Meta: `urlTags` (array of {key,value}). Meta creatives are immutable, so this rebuilds the creative and repoints the ad. By DEFAULT we PRESERVE the existing creative verbatim (re-post its object_story_spec + the new url_tags, reusing the image), so you send `urlTags` ALONE, with no need to read back headline/body/CTA. `creative` (headline, body, callToAction, linkUrl, imageUrl) is OPTIONAL and only needed to rebuild explicitly, or for SHARE / page-post / dark / asset_feed creatives whose object_story_spec Meta strips (those return 422 asking for `creative`). - Google: `trackingUrlTemplate` and/or `finalUrlSuffix` (full template strings; account quota applies). - LinkedIn: `dynamicValueParameters` and/or `customValueParameters` (campaign-level Dynamic UTM).
List a catalog's product feeds
Next Page