# Lấy một creative

Trả về bản ghi dữ liệu của một creative đã duyệt thuộc tổ chức của bạn. Dùng endpoint này để lấy một creative, hoặc kiểm tra một creative bạn đã lưu có còn khả dụng không.

```
GET /api/delivery/v1/creatives/{id}
```

**Scope:** `creatives:export`

## Mô tả

Trả về cùng bản ghi như [Liệt kê creative](https://docs.wandura.ai/vi/developers/reference/creatives-list#the-creative-record), được bọc trong envelope `{code, message, data, server_time}`. Creative không tồn tại, thuộc tổ chức khác, hoặc không ở status `approved` hay `pushed` đều trả về cùng một `404`, nên bạn không phân biệt được các trường hợp này.

## Tham số request

| Tên | Vị trí | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| `Authorization` | header | string | Có | `Bearer <API key>` của một key có scope `creatives:export`. |
| `id` | path | string (UUID) | Có | `creative_id` của creative. Giá trị không phải UUID sẽ trả `404`. |

## Ví dụ request

```bash
curl -s https://www.wandura.ai/api/delivery/v1/creatives/5e1b7c3a-2d4f-4a6b-9c8d-0e1f2a3b4c5d \
  -H "Authorization: Bearer $WANDURA_API_KEY"
```

## Response

`200 OK`

| Trường | Kiểu | Mô tả |
|---|---|---|
| `code` | integer | `0`. |
| `message` | string | `"ok"`. |
| `data` | object | Bản ghi creative. Các trường được liệt kê trong [Bản ghi creative](https://docs.wandura.ai/vi/developers/reference/creatives-list#the-creative-record). |
| `server_time` | integer | Giờ server tính bằng giây Unix epoch. |

## Ví dụ response

```json
{
  "code": 0,
  "message": "ok",
  "data": {
    "schema_version": 1,
    "creative_id": "5e1b7c3a-2d4f-4a6b-9c8d-0e1f2a3b4c5d",
    "creative_code": "ACV001-FILM0001-EP1-2-F1-TEAM",
    "name": "Heiress returns - wedding hook",
    "status": "pushed",
    "created_at": 1790500000,
    "approved_at": 1790590000,
    "updated_at": 1790640000,
    "org": { "slug": "your-org" },
    "film": { "code": "FILM0001", "title": "The Heiress Returns", "language": "en", "genres": ["romance", "revenge"] },
    "episodes": [1, 2],
    "placement": "reels_9x16",
    "aspect": "9:16",
    "duration_ms": 21500,
    "scenes": [
      { "episode_no": 1, "start_ms": 12000, "end_ms": 19500, "duration_ms": 7500, "action": "reveal", "line": "You threw me out. Now watch me take it all back." },
      { "episode_no": 2, "start_ms": 40000, "end_ms": 54000, "duration_ms": 14000, "action": null, "line": null }
    ],
    "hook": { "action": "reveal", "line": "You threw me out. Now watch me take it all back." },
    "formula": { "name": "Cliffhanger opener" },
    "rights": { "ends_at": 1798675200 },
    "lineage": { "parent_creative_id": null },
    "final": { "ready": true, "target": { "width": 1080, "height": 1920, "fps": 30, "codec": "h264" } }
  },
  "server_time": 1790679032
}
```

## Lỗi

| Status | `code` | Khi nào |
|---|---|---|
| 401 | 4010 | Thiếu header `Authorization: Bearer`. |
| 401 | 4011 | Key không tồn tại hoặc đã bị thu hồi. |
| 403 | 4030 | Key thiếu scope `creatives:export`. |
| 403 | 4031 | Quyền truy cập của tổ chức bạn đang bị tạm ngưng. |
| 404 | 4040 | Không có creative đã duyệt nào với ID này cho tổ chức của bạn, hoặc ID không phải UUID. |
| 429 | không có | Đã chạm rate limit. Body phẳng với `error_code` `rate_limited`, không phải envelope. |
| 503 | 5030 | Feed tạm thời không khả dụng. Retry với backoff. |
| 503 | 5031 | Wandura chưa kiểm được API key kịp thời. Key không sai: retry với backoff. |

Xem [Lỗi](https://docs.wandura.ai/vi/developers/concepts/errors#creatives-errors) để biết cách xử lý từng trường hợp.
