---
title: "Start AI image / video generations."
method: POST
path: "/studio/generations"
tags: ["AI Studio"]
---

# Start AI image / video generations.

`POST /studio/generations`

## Request

- Base URL: `https://wowreveal.com/api/v1`
- URL: `https://wowreveal.com/api/v1/studio/generations`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `modelKey` string, required
  - `presetId` string, nullable
  - `prompt` string
  - `negativePrompt` string, nullable
  - `params` object
  - `inputs` object[]
    - `role` 'start' | 'end' | 'reference' | 'video' | 'audio', required
    - `uploadId` string
    - `generationId` string
    - `fileId` string
  - `count` integer

## Response `201`

Success

- object
  - `generations` Generation[], required
    - `id` string, required
    - `kind` 'image' | 'video' | 'audio'
    - `modelKey` string
    - `status` 'queued' | 'running' | 'complete' | 'failed', required
    - `outputs` object[]
      - `url` string, uri: Signed link, valid 24 hours.
      - `downloadUrl` string
      - `mimeType` string
      - `width` integer
      - `height` integer
      - `durationSec` number
    - `creditsCharged` integer
    - `creditsRefunded` integer
    - `errorCode` string, nullable
    - `errorMessage` string, nullable
    - `createdAt` string, date-time
  - `creditsCharged` integer, required
  - `balance` integer, required

## Other responses

- `400`: Invalid request (VALIDATION_ERROR and other 400 codes).
- `401`: Missing or revoked API key (INVALID_API_KEY).
- `403`: The plan has no API access, or the account is blocked.
- `429`: Rate limit (RATE_LIMITED) — see the Retry-After header.

---

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