---
title: "Read the project-level audio timeline."
method: GET
path: "/trailers/{jobId}/storyboard/audio-timeline"
tags: ["Trailer"]
---

# Read the project-level audio timeline.

`GET /trailers/{jobId}/storyboard/audio-timeline`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/trailers/{jobId}/storyboard/audio-timeline`
- Auth: HTTP bearer

Returns the multi-track audio timeline: music layers with their clips — a clip may span several beats and crossfade into the next — plus sound-effect cues placed at an absolute offset within a beat. Every sound-effect cue in the answer carries how loud it really is: `assetLufs` (its file: a bed's body, the median of its sounding 400 ms windows; a spot's loudest 400 ms), `normGainDb` (what the mix lifts or lowers the file by before its `level`: a bed is levelled to -17 LUFS, a spot to -18, never past -1.5 dBTP or more than +30 dB), `mixLufs` (where it sits in the mix at its level; the sound map reads it against its scene's own mix, and the sound map itself lists a capture beat's own click sounds with their loudness too), a bed's `continuity` (the share of its span within 10 dB of its body) and `loudnessFlag` (`too_quiet`: its file came out too quiet to bring up, make it again; `clipped`; `gappy`: a bed that drops out or fades, make it again as one continuous sound; `unmeasured`: measured at the next stitch). Also returns the beat axis (label, duration, start image) that clips are positioned against. This is the through-composed alternative to per-beat beds, which are generated independently and therefore share no tempo, key or phrase. Scope: `story:read`.

## Response `200`

The audio timeline and the beat axis it is placed against.

- object

## Other responses

- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: The named project or source does not exist or is owned by another account.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/4534f5d25540?raw)
