> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hooked.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What changed in the Hooked API, newest first

Changes that can affect an existing integration are marked **Breaking** or **Deprecated**. Everything else is new and opt-in.

<Update label="2026-10-05" description="Media library, catalogs, avatars, voices, new formats, signed webhooks" tags={["New endpoints", "Breaking", "Webhooks"]}>
  ## Changes to check in an existing integration

  * **Deprecated:** `POST /v1/project/create/ugc-ads` keeps working, but UGC Studio now has one endpoint per format: [Product in Hand](/api-reference/ugc-studio/product-in-hand), [App Demo](/api-reference/ugc-studio/app-demo), [Fashion](/api-reference/ugc-studio/fashion), [Before / After](/api-reference/ugc-studio/before-after) and [Voiceover](/api-reference/ugc-studio/voiceover). The format comes from the path and its assets sit at the top of the body. Same price.
  * **Breaking:** an integration, scheduled post or analysed account id that belongs to another team now answers **404** (it was 403), the same as a missing id. See [Channels](/api-reference/integration/details), [Publish](/api-reference/schedule/details) and [Account Analysis](/api-reference/social/account-details).
  * **Breaking:** create requests that used to produce a failed or degraded video are now refused with **400** and nothing is charged: an unknown caption preset, text style, game, art style or motion style, `mediaType: "media"` without `media`, or a model that does not match the media type. A malformed id answers 400 or 404, never 500. See [Validation errors](/guides/error-handling#validation-errors-400).
  * **Breaking:** rate limits per team: 30 `POST` and 120 other requests per minute, and 3 URL downloads at a time. Over a limit you get **429** with `Retry-After` and `X-RateLimit-*` headers; nothing runs or is charged. See [Rate limits](/guides/error-handling#rate-limits-429).
  * Every webhook call is now signed and carries `Hooked-Signature`, `Hooked-Event` and `Hooked-Delivery`. The body is unchanged, so existing handlers keep working; verify the signature to reject forged calls and use `Hooked-Delivery` to drop duplicates. Team endpoints can subscribe to events in Settings → Webhooks. See [Verify the signature](/guides/webhooks#verify-the-signature).
  * `GET /v1/health` answers only the API and database status. Host details (Node version, platform, memory, uptime, environment) and the `degraded` status are gone.
  * `POST /v1/project/create/product-ads` was removed. The trends, niche and social search endpoints are not available for now and answer 404.

  ## New: idempotent creates

  * Send an `Idempotency-Key` header on any `POST` that creates or charges. A retry with the same key and body within 24 hours gets the first answer back (`Idempotent-Replayed: true`) without creating or charging again. See [Idempotency](/guides/idempotency).

  ## New: slow creates answer at once

  * [Article to Video](/api-reference/video/article-to-video), [PDF to Video](/api-reference/video/pdf-to-video), [PDF to Brainrot](/api-reference/video/pdf-to-brainrot) and [Cinematic](/api-reference/video/cinematic) answer in seconds with a `projectId` and status `processing`. Invalid input, missing keys and too few credits are still refused up front; a later failure turns the project `failed`, refunds it and calls your webhook.
  * PDF to Video and PDF to Brainrot download and read `pdfUrl` themselves: teams on their own keys no longer need a Firecrawl key for them.

  ## New endpoints

  **Projects and videos**

  * [List projects](/api-reference/project/list), [Get project](/api-reference/project/details) and [Delete project](/api-reference/project/delete): follow a project from creation to its video.
  * [Get captions](/api-reference/project/captions) and [Edit project](/api-reference/project/edit): read a finished project's captions, change it, then [Render](/api-reference/video/render) again.
  * [Delete video](/api-reference/video/delete).

  **Media library**

  * [List](/api-reference/media/list), [Get](/api-reference/media/details), [Import from a URL](/api-reference/media/import), [Upload](/api-reference/media/upload) + [Complete upload](/api-reference/media/complete) and [Delete](/api-reference/media/delete).
  * [Generate image](/api-reference/media/generate-image) and [Generate video](/api-reference/media/generate-video) into the library.
  * A failed media says why in `error` ([Get Media](/api-reference/media/details)). Generation and import take an optional `webhook` and `metadata`, called once with `media.completed` or `media.failed`. See [Media webhooks](/guides/webhooks#media-webhooks).

  **Create**

  * UGC Studio per format (above), [Podcast / Dualcast](/api-reference/video/podcast-interview), [Reddit Story](/api-reference/video/reddit-story), [Quiz Video](/api-reference/video/quiz-video) and [Scrolling Video](/api-reference/video/scrolling-video).
  * From a source: [Article to Video](/api-reference/video/article-to-video), [PDF to Video](/api-reference/video/pdf-to-video), [PDF to Brainrot](/api-reference/video/pdf-to-brainrot), [Music to Video](/api-reference/video/music-to-video) and [Clone Video](/api-reference/video/clone-video).
  * [Cinematic Studio](/api-reference/video/cinematic).

  **Avatars, voices and characters**

  * Avatars: [Get](/api-reference/avatar/details), [Create from a photo](/api-reference/avatar/create-from-photo), [Generate](/api-reference/avatar/generate), [Hook + Demo reaction](/api-reference/avatar/create-reaction) and [Delete](/api-reference/avatar/delete).
  * Voices: [Clone](/api-reference/voice/clone), [Text to speech](/api-reference/voice/speech), [Speech to speech](/api-reference/voice/speech-to-speech) and [Delete](/api-reference/voice/delete).
  * Cinematic characters: [List](/api-reference/character/list), [Get](/api-reference/character/details), [Create](/api-reference/character/create), [Update](/api-reference/character/update) and [Delete](/api-reference/character/delete).

  **Images**

  * [Remove background](/api-reference/image/remove-background), [Expand](/api-reference/image/expand) and [Get image](/api-reference/image/details).

  **Account and catalogs**

  * [Account](/api-reference/account/get): plan, billing mode, credit balance, storage and provider keys.
  * [Catalogs](/api-reference/catalog/get): the valid values for presets, styles, games, models and other fields, so you can check a value before you create.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.