---
title: get_entity
description: Fetch the full raw provider payload for one ad entity by provider, type, and id.
---

Ask for all the settings of one campaign, ad set, ad or creative. The agent reads the fields that AdCrunch stored from the provider for that entity.

> Show me all the settings of the Q4 Acquisition campaign.

The agent reads the stored fields of that campaign. You see each field in the words of the provider, such as the start time of the campaign, and a Meta budget or bid in whole units of the currency of the ad account. [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) [![TikTok](/providers/tiktok.svg)](https://docs.adcrunch.dev/connect/providers) [![Google Ads](/providers/gads.svg)](https://docs.adcrunch.dev/connect/providers)

Fetch the full raw provider payload for a single ad entity by `provider`, `type`, and `id` (all discoverable via list_entities). Returns every provider-native field, not just the lean metadata list_entities surfaces. AdCrunch converts the Meta fields `daily_budget`, `lifetime_budget` and `bid_amount` to whole units of the account currency (50 is 50.00). This is the unit of `budget` in list_entities. When AdCrunch does not know the account currency, these Meta fields are null. A field whose name ends in `Micros` stays in micros (12340000 is 12.34). Every other field has the value that the provider sent.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | Bare provider-native entity id (no prefix). |
| `provider` | one of `meta`, `tiktok`, `snapchat`, `gads`, `dv360`, `x`, `openai` | yes | Provider that owns this entity. |
| `type` | string | yes | Provider-native entity type, e.g. `campaign`, `adset`, `ad`, `creative`. |

### Output

A successful call returns this object in `structuredContent`.

| Field | Type | Always present | Description |
| --- | --- | --- | --- |
| `entity` | map of any | yes | The payload that AdCrunch stored from the provider for the entity. The keys are the keys of the provider, and they differ for each provider and each type: a Meta campaign has `account_id`, `objective` and `start_time`, and a TikTok campaign has `campaign_id`, `campaign_name` and `objective_type`. The description of the tool names the money fields that AdCrunch converts. |

### 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
{
  "id": "120210000000000001",
  "provider": "meta",
  "type": "campaign"
}
```

The result, in `structuredContent`:

```json
{
  "entity": {
    "account_id": "1203456789012345",
    "created_time": "2026-08-28T14:12:07+0200",
    "id": "120210000000000001",
    "name": "Q4 Acquisition",
    "objective": "OUTCOME_SALES",
    "start_time": "2026-09-01T09:00:00+0200",
    "status": "ACTIVE",
    "updated_time": "2026-09-20T10:03:44+0200"
  }
}
```
