Projects
A project is the top-level container in Descript. It holds media files, transcriptions, and compositions. When you import media through the API, a new project is created automatically. Every project has:- A
project_id(used in API calls) - A
project_url(opens the project in Descript) - One or more compositions
Compositions
A composition is a timeline arrangement within a project — think of it like a sequence in a video editor. A project can have multiple compositions (like scenes in a movie, or different cuts of the same footage). When importing media, you can specify compositions and which clips go into each:Drives
A Drive is a Descript workspace. Projects live inside Drives. You might have a personal Drive, a team Drive, or multiple Drives for different departments. API tokens are scoped to a single Drive. This means:- Each token can only access projects in its Drive
- Cross-drive operations return
403 Forbidden - If you work across multiple Drives, create a separate token for each
Jobs
A job is any long-running API operation. Importing media creates a job. Running an agent edit creates a job. Jobs run asynchronously — you get ajob_id back immediately and check for the result later.
Every job has:
- A
job_id— unique identifier - A
job_type— eitherimport/project_mediaoragent - A
job_state—running,stopped,cancelled, orfailed - A
result— available when the job finishes
Media
Media refers to the video and audio files you import into projects. The API accepts media from URLs — direct file uploads aren’t supported yet. Key constraints:- Files must be under 1GB
- URLs must be publicly accessible or pre-signed
- Supported formats: MP4, MOV, WAV, FLAC, AAC, MP3
Underlord (Agent)
Underlord is Descript’s AI editing engine. In the app, it’s the AI assistant that removes filler words, enhances audio, adds captions, and more. In the API, you interact with Underlord through the Agent endpoint by providing a natural language prompt. The API calls it “agent” in endpoint names and parameters, but it’s the same Underlord you’d use in the Descript app.How they fit together
- Create a project and import media → import job
- Descript transcribes the media automatically
- Run an agent (Underlord) edit → agent job
- Open the project in Descript to review and export