---
title: get_creative
description: Get all the stored fields of one Meta creative — its headline, its text, its image or video, its call to action and its link.
---

Ask what one Meta creative shows. The agent reads the fields that AdCrunch stored from Meta for that creative.

> What does the "Bestsellers carousel — FR" creative say?

The agent reads the stored fields of that creative. You see its headline, its text, its call to action and its link. [Read your accounts](/mcp/tools/read-your-accounts) shows the full job.

## Reference

**Available on:** [![Meta](/providers/meta.svg)](https://docs.adcrunch.dev/connect/providers)

Get all the stored fields of one Meta creative, by its ad account and its id: the headline in `title`, the text in `body`, the image or the video, the call to action and the link. The `creative` of a Meta ad gives its id. Each field has the value that Meta sent. It sends the payload that AdCrunch stored from the provider at the last ingestion, with the field names of the provider. Use it when a row of list_creatives does not hold the field that you need. To read the row of the provider now, use meta_list_creatives with `ids` set to the id. An ad account that your organization does not own, an id that AdCrunch does not store for that ad account, and a provider that has no creatives each give `not_found`.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `advertiserId` | string | yes | The ad account that holds the creative, prefixed `acc_`. It must belong to your organization. Each row of list_creatives gives it as `advertiserId`. |
| `id` | string | yes | The id that the provider gives the creative, with no prefix. Each row of list_creatives gives it as `id`. |

### Output

A successful call returns this object in `structuredContent`.

| Field | Type | Always present | Description |
| --- | --- | --- | --- |
| `creative` | map of any | yes | The payload that AdCrunch stored from Meta for the creative, with the keys of Meta, such as `title`, `body`, `call_to_action_type` and `link_url`. |

### Failure codes

A failed call has `isError` set, and `structuredContent.error` holds one of these codes. [Errors](/mcp/errors) describes the shape of a failed call.

- `not_found`
- `payload_unavailable`
- `forbidden`
- `invalid_request`
- `internal_error`

### Scope

The token must hold `observe:read`. [Auth & scopes](/mcp/auth) 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:

```json
{
  "advertiserId": "acc_1203456789012345",
  "id": "120210000000003"
}
```

The result, in `structuredContent`:

```json
{
  "creative": {
    "account_id": "1203456789012345",
    "body": "Our bestsellers, now at 20% off.",
    "call_to_action_type": "SHOP_NOW",
    "id": "120210000000003",
    "image_url": "https://scontent.xx.fbcdn.net/v/t45.1600-4/bestsellers.jpg",
    "link_url": "https://example.com/bestsellers",
    "name": "Bestsellers carousel — FR",
    "status": "ACTIVE",
    "thumbnail_url": "https://scontent.xx.fbcdn.net/v/t45.1600-4/thumb.jpg",
    "title": "Bestsellers"
  }
}
```
