Creatives

Stored read: List creatives

Available on: Meta

Lists the creatives of every ad account your organization connects, newest first.

Meta only, today

A standalone Creative is Meta’s model. TikTok has none — its creative material (the video or image, the ad text, the call to action) is embedded in the Ad itself, so a TikTok advertiser lists nothing here and AdCrunch does not invent a creative for it. Google Ads has none either: it keeps its creative material on the ad_group_ad link resource.

An empty answer for those providers is normal, and it is not a failure.

No parent

A creative is account-level: it belongs to an advertiser and not to any one campaign or ad group, and one creative can be reused across many ads. So there is no campaign or ad group to filter by, and a row carries no campaignId and no adGroupId.

Freshness

A creative is re-read only when the ad that carries it changes. A body-copy tweak or a thumbnail swap made in the provider’s own interface lags until the next ad-level change reaches AdCrunch.

Not an Asset

A Creative is the provider’s — the assembled payload it returns once an ad exists. An Asset is yours: a source media file your organization owns, held before any ad references it. They are deliberately unlinked; read the Assets API for those.

get/observe/creatives

Request

  • Base URL: https://api.adcrunch.dev
  • URL: https://api.adcrunch.dev/observe/creatives
  • Auth: HTTP bearer

Query parameters

idsstring

Ids to filter on, separated by commas. An id is the bare id its provider gives.

cursorstring

The nextCursor of the previous page. Omit it to get the first page. Send it with no change, and with the same filters as the request that answered it: a cursor from a different query gets a 400 invalid_cursor. Do not build or change a cursor.

limitinteger

The greatest number of rows on the page, from 1 to 500. The default is 100. A greater value gets a 400, with error of invalid_request.

advertiserIdstring

Read one ad account from what AdCrunch holds, prefixed acc_. One your organization does not own answers an empty list rather than a failure. To ask the provider instead, put the advertiser in the path.

'meta'
OR
'tiktok'
OR
'snapchat'
OR
'gads'
OR
'dv360'
OR
'x'
OR
'openai'
status'ACTIVE' | 'PAUSED' | 'DELETED' | 'ARCHIVED'

Read one status, normalized across the providers. TikTok ENABLE and DISABLE are read here as ACTIVE and PAUSED.

Response

The matching creatives, and how many there are in all. Only Meta advertisers answer rows today.

nextCursorstring

Send this value as cursor to get the next page. It is absent on the last page.

Example response

{
  "data": [
    {
      "advertiserId": "acc_1203456789012345",
      "createdAt": 1789610000000,
      "createdTime": null,
      "currency": "EUR",
      "deletedAt": null,
      "id": "120210000000003",
      "name": "Bestsellers carousel — FR",
      "path": "120210000000003",
      "provider": "meta",
      "status": "ACTIVE",
      "type": "creative",
      "updatedAt": null,
      "updatedTime": null
    }
  ],
  "nextCursor": "eyJwIjpbMTc4OTYxMDAwMDAwMCwibWV0YSIsImNyZWF0aXZlIiwiMTIwMjEwMDAwMDAwMDAzIl0sInEiOiI5MTZmZHNjbWx6In0"
}

Changes

No recorded changes to this operation across all 1 revision of this API.