---
title: "Audio Started"
method: POST
path: "/audio.started"
tags: ["Audio Events"]
---

# Audio Started

`POST /audio.started`

The request example illustrates what your webhook endpoint should expect.

## Headers

- `magic-hour-event-signature` string, required — A signatured created with the webhook secret key and a signed_payload, using HMAC with SHA-256
- `magic-hour-event-timestamp` string, required — Time in seconds since the epoch. Use this value to check whether the request is within a reasonable window of the current time. Usually less than 5 minutes.

## Request body

- object
  - `type` 'audio.started', required
  - `payload` object, required — Success
    - `id` string, required — Unique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
    - `name` string, nullable, required — The name of the audio.
    - `status` 'draft' | 'queued' | 'rendering' | 'complete' | 'error' | 'canceled', required — The status of the audio. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being processed; the `audio.started` webhook event fires when rendering begins - `complete` - the job finished successfully; fires `audio.completed` - `error` - the job failed during processing; fires `audio.errored` - `canceled` - the job was manually canceled (for example from the Magic Hour web app) **Note:** `rendering`, `complete`, and `error` have matching webhook events; `canceled` does not - a canceled job emits no webhook event, so poll this endpoint to detect cancellation.
    - `type` string, required — The type of the audio project. Possible values are VOICE_GENERATOR, VOICE_CHANGER, VOICE_CLONER, VIDEO_TO_AUDIO, MUSIC_GENERATOR
    - `created_at` string, date-time, required
    - `enabled` boolean, required — Whether this resource is active. If false, it is deleted.
    - `credits_charged` integer, required — The amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded and this field will be updated to include the refund.
    - `downloads` object[], required
      - `url` string, uri, required
      - `expires_at` string, date-time, required
    - `error` object, nullable, required — In the case of an error, this object will contain the error encountered during video render
      - `message` string, required — Details on the reason why a failure happened.
      - `code` string, required — An error code to indicate why a failure happened.

## Response `200`

Success

- object — Success
  - `message` string, required

## Other responses

- `400` — Error
- `500` — Error

---

[API](https://skmtc.dev/magichourhq/apis/magic-hour-webhook.md) · [All operations](https://skmtc.dev/magichourhq/apis/magic-hour-webhook/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/magichourhq/magic-hour-webhook/revisions/15da4364f27e/schema)
