---
title: "Create multiple local controlled action drafts"
method: POST
path: "/controlled-draft/batch"
---

# Create multiple local controlled action drafts

`POST /controlled-draft/batch`

## 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/controlled-draft/batch`
- Auth: HTTP bearer

Creates up to 25 independently auditable drafts after one shared freshness evaluation. Never approves, executes, or writes ad platforms.

## Request body

- object
  - `operator_id` string
  - `requested_by` string
  - `confirmation` string
  - `internal_override` boolean
  - `audit_context` object
  - `items` object[], required
    - `request_id` string, required
    - `action_packet` object, required
    - `confirmation` string
    - `internal_override` boolean

## Response `200`

Batch draft result

- object
  - `schema_version` string
  - `status` string, required
  - `item_count` integer, required
  - `results` object[], required
  - `freshness_gate` object
  - `platform_write_performed` boolean
  - `approval_required_per_item` boolean

---

[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)
