---
title: "Retry a failed short"
method: POST
path: "/v1/shorts/{product_id}/retry"
tags: ["Shorts"]
---

# Retry a failed short

`POST /v1/shorts/{product_id}/retry`

## Request

- Base URL: `https://api.jellypod.com`
- URL: `https://api.jellypod.com/v1/shorts/{product_id}/retry`
- Auth: HTTP bearer

## Path parameters

- `product_id` string, uuid, required

## Headers

- `idempotency-key` string: Optional key for one logical generation command. Reuse the same key and input after a lost or uncertain response. After a proven rejection before work starts, follow recovery.idempotency_key. Omit it to start a new generation on every request.

## Response `202`

Generation retry accepted

- object
  - `data` object, required
    - `background_music` boolean, required
    - `created_at` string, required
    - `error` string, nullable, required
    - `generation_id` string, nullable, required
    - `host_id` string, nullable, required
    - `host_ids` string[], nullable, required
    - `id` string, uuid, required
    - `language` 'en' | 'es' | 'fr' | 'hi' | 'pt' | 'zh' | 'de' | 'ja' | 'ar' | 'ru' | 'ko' | 'id' | 'it' | 'nl' | 'tr' | 'pl' | 'sv' | 'fil' | 'ms' | 'ro' | 'uk' | 'el' | 'cs' | 'da' | 'fi' | 'no' | 'bg' | 'hr' | 'sk' | 'ta' | 'ace' | 'af' | 'ak' | 'sq' | 'am' | 'hy' | 'as' | 'awa' | 'az' | 'ban' | 'bjn' | 'ba' | 'eu' | 'be' | 'bem' | 'bn' | 'bho' | 'bs' | 'bug' | 'my' | 'yue' | 'ca' | 'ckb' | 'hne' | 'ny' | 'crh' | 'dyu' | 'dz' | 'et' | 'gl' | 'lg' | 'ka' | 'gn' | 'gu' | 'ht' | 'ha' | 'he' | 'hu' | 'is' | 'ig' | 'ga' | 'jv' | 'kab' | 'kam' | 'kn' | 'ks' | 'kk' | 'km' | 'ki' | 'rw' | 'kg' | 'ky' | 'lo' | 'ltg' | 'lv' | 'lt' | 'lb' | 'mk' | 'mag' | 'mai' | 'ml' | 'mt' | 'mni' | 'mr' | 'min' | 'lus' | 'mn' | 'ne' | 'nso' | 'or' | 'pag' | 'ps' | 'fa' | 'pa' | 'sat' | 'sr' | 'sd' | 'si' | 'sl' | 'so' | 'sw' | 'ss' | 'tg' | 'te' | 'th' | 'ti' | 'ur' | 'ug' | 'uz' | 'vi' | 'cy', required
    - `object` 'short', required
    - `orientation` 'LANDSCAPE' | 'PORTRAIT' | 'SQUARE', required
    - `phase` string, nullable, required
    - `status` 'idle' | 'generating' | 'completed' | 'failed', required
    - `studio_url` string, uri, required
    - `style_id` string, required
    - `target_duration_seconds` number, nullable, required
    - `title` string, required
    - `updated_at` string, required

## Other responses

- `400`: Validation failed or malformed request.
- `401`: Missing or invalid API key.
- `403`: Authenticated, but this API key does not have access to this resource.
- `404`: Resource not found.
- `429`: Rate limit exceeded. Response includes `Retry-After`, `RateLimit`, and `RateLimit-Policy` headers (IETF draft).
- `500`: Internal server error.

---

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