---
search:
  tags:
    - Creatives
    - GET
seo:
  description: >-
    Available on: Meta Reference for the GET /observe/{advertiserId}/creatives
    endpoint in the AdCrunch API.
sidebar:
  label: 'Live read: List an advertiser’s creatives'
  badge: GET
title: 'Live read: List an advertiser’s creatives'
type: openapi-operation
---
**Available on:** [![Meta](/providers/meta.svg)](https://docs.adcrunch.dev/connect/providers)

Asks the provider for the creatives of one ad account, now. This is a **live read**: the path names the advertiser, so the answer is what the provider holds, not what AdCrunch holds.

An advertiser your organization does not own answers an empty list, not a failure.

Meta is the one provider with a separate creative. An advertiser on TikTok or Google Ads answers an empty list, because its provider has none. An advertiser on a provider AdCrunch cannot read live answers `501`.

A live row carries no `createdAt`, `updatedAt` or `deletedAt`, because AdCrunch stores nothing for it. Each request counts against the rate limits of the provider.

For the stored rows of the same advertiser, read `/observe/creatives?advertiserId=…`. That path takes every `status`, and the Status section below lists the statuses this one takes.

`limit` and `cursor` page the answer. Send `nextCursor` back as `cursor` to get the next page. A live cursor is good only for a live read. At TikTok, every page keeps the page size of the first.

## Status

`status` selects the status an entity is set to, not whether it delivers, and every row of the answer carries it. A provider takes a status only where one request to it selects exactly the entities in that status. Any other status answers `501`.

The stored read, `/observe/creatives?advertiserId=…&status=…`, takes every status. A status that a provider never uses answers an empty list.

| Provider | Takes `status` |
| --- | --- |
| Meta | `PAUSED`, `ARCHIVED` |

`GET /observe/{advertiserId}/creatives`
