---
title: "Create controlled creative refresh draft"
method: POST
path: "/creative-refresh-draft"
---

# Create controlled creative refresh draft

`POST /creative-refresh-draft`

## Request

- Base URL: `https://api.gravityads.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gravityads.dev/creative-refresh-draft`
- Auth: HTTP bearer

Creates a local creative refresh controlled-action draft. It never writes ad platforms until approve and creative_publish_controlled.

## Request body

- object
  - `request_id` string, required
  - `platform` string
  - `ad_account_id` string
  - `entity_type` string
  - `entity_id` string
  - `ad_id` string
  - `object_id` string
  - `campaign_id` string
  - `ad_group_id` string
  - `ad_group_resource_name` string
  - `creative_payload` object
  - `proposed_change` object
  - `action_packet` object
  - `operator_id` string
  - `requested_by` string
  - `confirmation` string
  - `internal_override` boolean
  - `audit_context` object

## Response `200`

Creative draft result

- object
  - `schema_version` string
  - `status` string, required
  - `action_id` string
  - `request_id` string
  - `controlled_action` object
  - `authority_flags` object
    - `platform_write_allowed` boolean
  - `result` object

---

[API](https://skmtc.dev/gravityads/apis/gravityads-api.md) · [All operations](https://skmtc.dev/gravityads/apis/gravityads-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gravityads/apis/gravityads-api/revisions/124cd07d534d?raw)
