> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apostra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get creative manifest

> Fetch a single creative manifest with its assets

`GET /api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}`

Returns one creative manifest with its inline assets, tracking URLs, and sync status.

## Request

```bash theme={null}
curl -X GET "https://api.apostra.com/api/v2/buyer/campaigns/cmp_987654321/creatives/cm_abcdef" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"
```

## Parameters

| Field        | Type   | Required | Notes                             |
| ------------ | ------ | -------- | --------------------------------- |
| `campaignId` | string | Yes      | Path param — owning campaign      |
| `creativeId` | string | Yes      | Path param — creative manifest ID |

## Response

```json theme={null}
{
  "creative_id": "cm_abcdef",
  "campaign_id": "cmp_987654321",
  "name": "Q2 hero video",
  "message": "30s product reveal — premium tone, 2-second hook",
  "template_id": "video_standard",
  "brand_domain": "acme.com",
  "format_id": { "id": "video_standard", "agent_url": "https://agent.example.com" },
  "preview_url": "https://storage.googleapis.com/creatives/cm_abcdef/preview.html",
  "assets": [
    {
      "asset_id": "asset_001",
      "name": "main_video",
      "original_filename": "hero-30s.mp4",
      "asset_type": "VIDEO",
      "content_type": "video/mp4",
      "file_size": 8421376,
      "file_size_status": "verified",
      "public_url": "https://cdn.example.com/creatives/cm_abcdef/hero-30s.mp4",
      "asset_source": "USER_UPLOADED",
      "created_at": "2026-06-07T15:04:00Z"
    }
  ],
  "tracking": {
    "impression_tracker_url": "https://track.scope3.com/imp?cid={CAMPAIGN_ID}",
    "click_tracker_url": "https://track.scope3.com/clk?rurl=https%3A%2F%2Facme.com%2Fpromo",
    "supported_macros": ["CAMPAIGN_ID", "DEVICE_TYPE", "COUNTRY"]
  },
  "sync_status": { "synced": true, "agent_count": 3, "last_synced_at": "2026-06-07T16:20:00Z" },
  "created_at": "2026-06-07T15:04:00Z",
  "updated_at": "2026-06-07T15:04:00Z"
}
```

`file_size` remains a required number for compatibility with existing V2 REST clients. A VIDEO response includes `file_size_status: "verified"` only when `file_size` is authoritative. When that positive evidence field is absent from a VIDEO and `file_size` is `0`, the origin did not provide authoritative evidence and the number is only a compatibility sentinel; do not use it for validation. This marker is VIDEO-only: IMAGE and AUDIO file-size behavior and provenance are unchanged, so do not infer their evidence status from the marker's absence.

MCP and internal manifest results do not use this REST compatibility mapping, so unavailable evidence may appear as `file_size: null` with `file_size_status` absent.

`sync_status.synced` is `true` once the manifest has propagated to at least one sales agent. `last_synced_at` is present on the full resource (not on list summaries).

## Errors

* `404 NOT_FOUND` — `campaignId` or `creativeId` does not exist or is not visible to the authenticated account.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Creative overview" href="/v2/object-guides/creative" icon="image">
    Manifest fields and tracking macros
  </Card>

  <Card title="Update creative manifest" href="/v2/buyer/creatives/tasks/update-creative-manifest" icon="pen">
    Edit fields or manage assets
  </Card>

  <Card title="List creative manifests" href="/v2/buyer/creatives/tasks/list-creative-manifests" icon="list">
    Browse all manifests on the campaign
  </Card>

  <Card title="Delete creative manifest" href="/v2/buyer/creatives/tasks/delete-creative-manifest" icon="trash">
    Remove the manifest
  </Card>
</CardGroup>
