What's in the recording.ready event
Every delivery is a JSON body shaped like this:
{
"event": "recording.ready",
"event_id": "b1f2...", // unique per delivery, use to de-duplicate retries
"version": "1",
"timestamp": "2026-07-05T14:41:00Z", // when the webhook fired
"account_id": "...",
"session_url": "https://app.suretake.io/share/...", // shareable preview/download page
"show": { "id": "...", "name": "My Podcast" },
"session": {
"id": "...",
"name": "Episode 12",
"date": "2026-07-05",
"started_at": "2026-07-05T14:03:00Z", // full timestamp, for sorting
"notes": "00:12:30 New topic\n00:41:05 Ad read", // notes + markers, as text
"notes_url": "https://app.suretake.io/api/share/.../notes" // same notes as a .txt download
},
"client": { "email": "guest@example.com", "name": "Jane Guest" },
"track_count": 2, // number of participant tracks in "tracks" below
"tracks": [ // ONLY individual participant recordings, no backup here
{
"type": "browser", // an individual participant's local recording
"recording_id": "...",
"participant_id": "...",
"name": "Host",
"file_url": "https://.../host.mp4",
"synced_url": null, // present only if the participant joined late (time-aligned copy)
"duration_seconds": 3120
},
{
"type": "browser",
"recording_id": "...",
"participant_id": "...",
"name": "Jane Guest",
"file_url": "https://.../guest.mp4",
"synced_url": null,
"duration_seconds": 3115
}
],
// media_urls: flat "just grab these" list of participant files (same order as "tracks").
// A no-code shortcut: map straight into a multi-file field, no code step. Already the
// right file per track: the synced version when a track needed aligning, else file_url.
"media_urls": [ "https://.../host.mp4", "https://.../guest.mp4" ],
// The server-side recording of everyone together, kept OUT of "tracks" on purpose so
// you can import just the participant recordings. Use it as a safety net if you want it.
"combined_backup_url": "https://.../combined.mp4",
"transcript": { "url": "https://.../transcript.docx" } // or null (see the transcript article)
}A few notes: tracks holds only the individual participant recordings. It's an array whose length varies with the number of participants, so always iterate it rather than assuming a fixed count.
The combined backup (the single server-side recording of everyone together) is deliberately not in tracks; it's provided separately as combined_backup_url, so you can import just the participant files and treat the backup as an optional safety net.
Related articles
Still stuck? Email support.