---
title: "POST /v1/stories/{id}/panels/{pid}/regenerate"
method: POST
path: "/v1/stories/{id}/panels/{pid}/regenerate"
tags: ["stories"]
---

# POST /v1/stories/{id}/panels/{pid}/regenerate

`POST /v1/stories/{id}/panels/{pid}/regenerate`

## Request

- Base URL: `https://api.mangii.ai`
- URL: `https://api.mangii.ai/v1/stories/{id}/panels/{pid}/regenerate`
- Auth: HTTP bearer

Optional prompt and quality only. Style is locked after panel 0.

## Path parameters

- `id` string, required
- `pid` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- RegeneratePanelRequest
  - `prompt` string
  - `quality` 'standard' | 'hd' | 'ultra'
  - `identity_panel_id` string
  - `identity_image` string
  - `reference_image` string
  - `continuity_panel_id` string
  - `continuity_image` string
  - `context_panel_ids` string[]
  - `async` boolean

## Response `200`

Sync completion (opt-in, long-timeout host only)

- GenerationResult
  - `credits_charged` integer, required
  - `credits_remaining` integer, required
  - `quality` string, required
  - `request_id` string, required
  - `job_id` string
  - `story_id` string
  - `panel_id` string
  - `image_url` string: HTTPS URL of the finished panel.
  - `next_step` string: What to call next.

## Other responses

- `202`: Job accepted
- `409`: Idempotency-Key is already in flight (idempotency_in_progress — retry the same key) or was reused with a different body (idempotency_conflict — pick a new key).
- `429`: Per-key rate limit exceeded for the current minute bucket. Every /v1 operation shares one per-key limiter, so any of them can return this.

---

[API](https://skmtc.dev/mangii/apis/mangii-headless-api.md) · [All operations](https://skmtc.dev/mangii/apis/mangii-headless-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mangii/apis/mangii-headless-api/revisions/40aba1e6eae0?raw)
