---
title: "Submit a draft creative for moderation."
method: POST
path: "/v1/agent/creatives/{id}/submit"
---

# Submit a draft creative for moderation.

`POST /v1/agent/creatives/{id}/submit`

## Request

- Base URL: `https://api.nowyourlink.com`
- URL: `https://api.nowyourlink.com/v1/agent/creatives/{id}/submit`
- Auth: OAuth 2 (authorization code, authorization URL `https://api.nowyourlink.com/oauth/authorize`, token URL `https://api.nowyourlink.com/oauth/token`, scopes: `creatives:write`)

Submit a draft creative for moderation.

## Path parameters

- `id` string, required

## Response `202`

Accepted for moderation, or auto-rejected by the keyword filter.

- object
  - `ad_id` string, required
  - `state` 'pending' | 'rejected', required
  - `reason_code` string

## Other responses

- `401`: The bearer token is missing, expired or invalid. A missing Authorization header returns an empty body.
- `403`: This grant lacks the scope the operation requires.
- `404`: No such creative in your library (ads.not-found).
- `405`: The path exists but does not accept this method (agent.method-not-allowed).
- `409`: The creative is not a draft, or video processing has not finished (ads.not-draft, ads.state-conflict, media.transcode-failed, media.transcode-pending).
- `422`: A required field or the creative asset is missing (ads.incomplete, lists the field names in `missing`).
- `429`: This grant's 120-per-minute token bucket is empty. Wait Retry-After seconds before retrying.

---

[API](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api.md) · [All operations](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api/revisions/cd8408529b48?raw)
