---
title: "Launch a static image or video creative generation from a brief"
method: POST
path: "/creatives/generate"
tags: ["Creatives"]
---

# Launch a static image or video creative generation from a brief

`POST /creatives/generate`

## Request

- Base URL: `https://api.web2wave.com/api`
- URL: `https://api.web2wave.com/api/creatives/generate`
- Auth: API key in header `api_key`

Asynchronous. Returns the created rework(s); poll GET /creatives/reworks/{id} until it is finished. Charges the prepaid creatives wallet. Provide audience_id or new_audience_name. Optional reference files go in multipart field assets[].

## Request body

- object
  - `brief` string, required
  - `output_type` 'image' | 'video'
  - `audience_id` integer
  - `new_audience_name` string
  - `new_audience_description` string
  - `format` string: Aspect / placement key
  - `style_preset` string
  - `scenario_slug` string
  - `brand_hex` string
  - `exact_copy` object
    - `headline` string
    - `subline` string
    - `cta` string
    - `disclaimer` string
  - `quiz_id` integer: Project quiz shown as the product screen
  - `concept_creative_id` integer: Inspiration ad id from /creatives/ads
  - `single_take` boolean
  - `variant_count` integer

## Response `200`

Generation accepted

## Other responses

- `201`: Generation accepted
- `403`: Balance required {balance_required, upgrade_required, balance_usd, min_topup_usd}
- `422`: Validation error (e.g. missing audience)
- `429`: Rate limit exceeded

## Changes

- **2026-11-03** `eb8b2d9124ac`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/web2wave/apis/web2wave-api/changes/creatives/generate/post.md)

---

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