Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview
On this page

list_creatives

List the creatives of your Meta ad accounts, as AdCrunch stores them.

Ask which creatives your Meta ad accounts hold. Only Meta has a creative of its own. On TikTok and on Google Ads, the image, the video and the text are part of the ad.

Which creatives does the EU account use?

The agent lists the creatives of that ad account. You see the name and the status of each creative. Read your accounts shows the full job.

Reference

Available on: Meta

List the creatives of your Meta ad accounts: the material that an ad shows, such as the image or the video, the text and the link. Only Meta has a creative of its own. TikTok and Google Ads keep this material in the ad, so their ad accounts list no creative. A creative belongs to the ad account and not to a campaign, and several ads can use one creative. So this list takes no campaign and no ad group. A creative is not an Asset: an Asset is a file of your organization, which asset_list lists. It reads what AdCrunch stored at the last ingestion, not what the provider holds now. To ask the provider now, use meta_list_creatives. Without advertiserId, it lists the creatives of each ad account of your organization. Use list_advertisers to find the ids of your ad accounts. The row that AdCrunch stored last comes first. The answer holds at most limit rows (default 100, maximum 500). When it carries nextCursor, more rows exist: call this tool again with the same arguments and cursor set to that value. When it carries no nextCursor, you have every row.

Input

Argument Type Required Description
advertiserId string no List one ad account, prefixed acc_. Omit it to list every ad account of your organization. An ad account that your organization does not own gives an empty list. list_advertisers gives the ids.
ids array of string no List only these ids. An id is the bare id that the provider gives, the id of a row.
provider one of meta, tiktok, snapchat, gads, dv360, x, openai no List the ad accounts of one provider. Omit it to list every provider.
status one of ACTIVE, PAUSED, DELETED, ARCHIVED no List one status, the same for each provider. TikTok ENABLE and DISABLE are ACTIVE and PAUSED here.
cursor string, at least 1 character no 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.
limit integer, 1 to 500 no 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. Default: 100.

Output

A successful call returns this object in structuredContent.

Field Type Always present Description
creatives array of object yes The creatives that match, as AdCrunch stored them. An empty array means that no creative matches, that your organization does not own the advertiser, or that the provider has no creative.
creatives[].advertiserId string yes The advertiser that owns it, prefixed acc_.
creatives[].createdAt number or null yes When AdCrunch first stored this row. Null when the row was read live: AdCrunch holds no copy of it. createdAt, updatedAt and deletedAt are AdCrunch’s own times, so all three are null together on a live row.
creatives[].createdTime number or null yes When the provider created the entity. This is the provider’s own time, so a live row carries it. Null where the provider reports none.
creatives[].currency string or null yes The account currency, ISO 4217. Every row of one advertiser carries the same one. Null when AdCrunch does not know it yet.
creatives[].deletedAt number or null yes When AdCrunch marked the row deleted. A listing never carries a deleted row, so this is null.
creatives[].id string yes The id the provider gives, with no prefix. It is unique for one provider and one type, and it may legitimately recur across two types or two providers.
creatives[].name string yes The name at the provider.
creatives[].path string yes The ancestors and this entity, ids joined by /, oldest first. This is what makes a subtree one string comparison.
creatives[].provider string yes The ad platform: meta, tiktok or gads. Those three are the providers whose entities AdCrunch reads, and https://docs.adcrunch.dev/connect/providers says how deep each one goes.
creatives[].status one of ACTIVE, PAUSED, DELETED, ARCHIVED yes The status, normalized across the providers. TikTok ENABLE and DISABLE read here as ACTIVE and PAUSED.
creatives[].updatedAt number or null yes When AdCrunch last rewrote this row. Null if it never changed.
creatives[].updatedTime number or null yes When the provider last edited the entity. Null where the provider reports none.
creatives[].type string yes The type the provider uses, kept as the provider writes it: creative. Only Meta has a creative of its own. The resource names the concept, and the row keeps the provider’s own word, because a Meta adset and a Google Ads ad_group are not the same object.
nextCursor string no Send this value as cursor to get the next page. It is absent on the last page.

Failure codes

A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.

  • invalid_cursor
  • forbidden
  • invalid_request
  • internal_error

Scope

The token must hold observe:read. Auth & scopes lists each scope.

Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

  • Read-only. The tool changes nothing.
  • Closed world. The tool reads and writes the data of AdCrunch only.

Example

The arguments:

{
  "advertiserId": "acc_1203456789012345"
}

The result, in structuredContent:

{
  "creatives": [
    {
      "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
    }
  ]
}

Was this page helpful?