Descript API

By Abhishek Kumar
5 min read
Enhance your apps with Descript’s REST API for transcription, editing, and collaboration. Real-time webhooks and rate limits ensure smooth, efficient performance.

Table of Contents

Record, edit, mix, collaborate, and master your audio and video with Descript.

API Overview

Descript is a cloud-based audio and video editing software that empowers creators with innovative features and an intuitive interface. It seamlessly integrates transcription, editing, mixing, and collaboration tools, enabling users to produce high-quality content with ease. Descript's advanced algorithms provide automatic transcription, noise reduction, and sound effects, allowing users to focus on their creative vision. Its collaborative features facilitate seamless project sharing and real-time editing, making it an ideal tool for teams and remote work.

Descript API offers a comprehensive suite of REST APIs, providing developers with the ability to integrate Descript's powerful editing capabilities into their own applications. The well-documented API enables developers to access various functionalities, including transcription, editing, and collaboration. Webhooks provide real-time updates on project status, allowing developers to respond to events and automate workflows. Rate limits ensure fair usage of the API, preventing excessive requests and maintaining optimal performance. By leveraging Descript API, developers can enhance their applications with professional-grade audio and video editing capabilities, empowering users to create and collaborate with greater efficiency.

API Request Limits

Free

100 requests per day

Pro

1000 requests per day

Enterprise

Custom limits

SDKs

APIs

/transcript

Method: get

Description: Get a transcript by ID..

Endpoint: /transcripts/{transcriptId}

Parameters: None

/transcripts/{transcriptId}

Method: patch

Description: Update a transcript by ID..

Endpoint: None

Parameters: name, words, audiograms

/transcripts

Method: get

Description: Get a list of transcripts..

Endpoint: None

Parameters: speaker_id, media_url, created_at, updated_at, duration, name, speaker_name, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/videos

Method: get

Description: Get a list of videos..

Endpoint: None

Parameters: speaker_id, audio_url, created_at, updated_at, duration, name, speaker_name, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/podcast-episodes

Method: get

Description: Get a list of podcast episodes..

Endpoint: None

Parameters: speaker_id, audio_url, created_at, updated_at, duration, name, speaker_name, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/podcast-episodes/{podcastEpisodeId}

Method: patch

Description: Update a podcast episode by ID..

Endpoint: None

Parameters: name, words, audiograms

/podcast-episodes/{podcastEpisodeId}

Method: get

Description: Get a podcast episode by ID..

Endpoint: None

Parameters: None

/podcast-shows

Method: get

Description: Get a list of podcast shows..

Endpoint: None

Parameters: speaker_id, audio_url, created_at, updated_at, duration, name, speaker_name, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/podcast-shows/{podcastShowId}

Method: patch

Description: Update a podcast show by ID..

Endpoint: None

Parameters: name, words, audiograms

/podcast-shows/{podcastShowId}

Method: get

Description: Get a podcast show by ID..

Endpoint: None

Parameters: None

/folders

Method: get

Description: Get a list of folders..

Endpoint: None

Parameters: speaker_id, audio_url, created_at, updated_at, duration, name, speaker_name, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/folders/{folderId}

Method: patch

Description: Update a folder by ID..

Endpoint: None

Parameters: name, words, audiograms

/folders/{folderId}

Method: get

Description: Get a folder by ID..

Endpoint: None

Parameters: None

/sessions

Method: get

Description: Get a list of sessions..

Endpoint: None

Parameters: created_at, updated_at, url, short_urls, transcript_id, audio_id, podcast_episode_id, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/sessions/{sessionId}

Method: patch

Description: Update a session by ID..

Endpoint: None

Parameters: name, words, audiograms

/sessions/{sessionId}

Method: get

Description: Get a session by ID..

Endpoint: None

Parameters: None

/templates

Method: get

Description: Get a list of templates..

Endpoint: None

Parameters: created_at, updated_at, description, audio_url, name, source_audio_url, collaborators_count, rating, is_final, voicing, locked, marked, associate_speakers, uploaded_at, workflow_state, workflow_export_status, speaker_label

/templates/{templateId}

Method: patch

Description: Update a template by ID..

Endpoint: None

Parameters: name, words, audiograms

/templates/{templateId}

Method: get

Description: Get a template by ID..

Endpoint: None

Parameters: None

/audio

Method: post

Description: Upload audio to create a session..

Endpoint: None

Parameters: file

/audio/{audioId}

Method: get

Description: Get an audio file by ID..

Endpoint: None

Parameters: None

/audio/{audioId}

Method: delete

Description: Delete an audio file by ID..

Endpoint: None

Parameters: None

/audio/{audioId}

Method: patch

Description: Update an audio file by ID..

Endpoint: None

Parameters: name, words, audiograms

/audio/{audioId}/upload

Method: put

Description: Upload an audio file..

Endpoint: None

Parameters: file

/audio/{audioId}

Method: post

Description: Upload an audio file..

Endpoint: None

Parameters: file

/videos

Method: post

Description: Upload video to create a session..

Endpoint: None

Parameters: file

/videos/{videoId}

Method: get

Description: Get a video file by ID..

Endpoint: None

Parameters: None

/videos/{videoId}

Method: delete

Description: Delete a video file by ID..

Endpoint: None

Parameters: None

/videos/{videoId}

Method: patch

Description: Update a video file by ID..

Endpoint: None

Parameters: name, words, audiograms

/videos/{videoId}/upload

Method: put

Description: Upload a video file..

Endpoint: None

Parameters: file

/videos/{videoId}

Method: post

Description: Upload a video file..

Endpoint: None

Parameters: file

/audio-effects

Method: get

Description: Get a list of audio effects..

Endpoint: None

Parameters: name

/audio-effects/{audioEffectId}

Method: get

Description: Get an audio effect by ID..

Endpoint: None

Parameters: None

/collaborators

Method: get

Description: Get a list of collaborators..

Endpoint: None

Parameters: email, full_name, is_admin, is_owner, permissions

/collaborators/{collaboratorId}

Method: get

Description: Get a collaborator by ID..

Endpoint: None

Parameters: None

/collaborators/{collaboratorId}

Method: patch

Description: Update a collaborator by ID..

Endpoint: None

Parameters: permissions

/collaborators/{collaboratorId}

Method: put

Description: Update a collaborator by ID..

Endpoint: None

Parameters: permissions

/collaborators/{collaboratorId}

Method: delete

Description: Delete a collaborator by ID..

Endpoint: None

Parameters: None

/me

Method: get

Description: Get the current user..

Endpoint: None

Parameters: None

/me

Method: patch

Description: Update the current user..

Endpoint: None

Parameters: full_name

/me

Method: put

Description: Update the current user..

Endpoint: None

Parameters: full_name

/export-targets

Method: get

Description: Get a list of export targets..

Endpoint: None

Parameters: name, type, url

/export-targets/{exportTargetId}

Method: get

Description: Get an export target by ID..

Endpoint: None

Parameters: None

/export-targets/{exportTargetId}

Method: patch

Description: Update an export target by ID..

Endpoint: None

Parameters: url

/export-targets/{exportTargetId}

Method: delete

Description: Delete an export target by ID..

Endpoint: None

Parameters: None

/jobs

Method: get

Description: Get a list of jobs..

Endpoint: None

Parameters: name, type, status, result, started_at, completed_at

/jobs/{jobId}

Method: get

Description: Get a job by ID..

Endpoint: None

Parameters: None

FAQ

How do I get a Descript API key?

To get a Descript API key, you need to create an account on the Descript website. Once you have created an account, you can go to the API Keys page in your account settings to create a new API key.

What are the rate limits for the Descript API?

The Descript API has the following rate limits: - 10 requests per second per IP address - 100 requests per minute per IP address - 1000 requests per hour per IP address

How can I test the Descript API without using my live account?

To test the Descript API without using your live account, you can create a sandbox account. A sandbox account allows you to test the API without affecting your live data.

What is the difference between a developer account and a regular Descript account?

A developer account gives you access to the Descript API and other developer tools. A regular Descript account does not give you access to the API.

How do I authenticate to the Descript API?

To authenticate to the Descript API, you need to use an API key. You can create an API key on the API Keys page in your account settings.

Last Update: September 13, 2024