Skip to main content
POST

Authorizations

Authorization
string
header
required

Personal API token created in Descript Settings → API Tokens. See the Authentication section for details.

Body

application/json

Publish request

Request to publish a project composition.

project_id
string<uuid>
required

The ID of the project to publish.

Example:

"9f36ee32-5a2c-47e7-b1a3-94991d3e3ddb"

composition_id
string

Composition to publish. If omitted, the first composition that has content is used, skipping the empty placeholder that leads projects created by an agent or import job.

Accepts any of the following formats:

  • A full composition UUID (e.g. 39677a40-1c43-4c36-8449-46cfbc4de2b5)
  • A 5-character short ID from a Descript URL (e.g. 39677)
  • A full Descript project URL (e.g. https://web.descript.com/{project_id}/39677)
Example:

"39677a40-1c43-4c36-8449-46cfbc4de2b5"

media_type
enum<string>
default:Video

Media type of the published output. Defaults to Video when omitted.

If the target composition has no video content:

  • omitting media_type publishes it as Audio (the completed job result reports media_type: Audio),
  • explicitly requesting Video is rejected with a 422.
Available options:
Video,
Audio
resolution
enum<string>

Resolution for the published output. Only applicable when media_type is Video.

Available options:
480p,
720p,
1080p,
1440p,
4K
callback_url
string<uri>

Optional webhook URL to call when the job completes or fails. Descript will POST the job status (same format as GET /jobs/{job_id}) to this URL.

Example:

"https://example.com/webhooks/descript/job_callback"

access_level
enum<string>

Desired access level for the published share page. If omitted, the drive's configured default is used. Returns 403 if the requested level is not permitted by the drive's publish settings (e.g. requesting public when search engine indexing is disabled).

Available options:
public,
unlisted,
drive,
private

Response

Publish job created successfully

job_id
string<uuid>
required

Unique identifier for the publish job

Example:

"6dc3f30a-58c2-4174-96a6-dc18cf3c7776"

drive_id
string<uuid>
required

Drive ID where the project is located

Example:

"c9c5c47e-158a-49f7-846b-4f6ee2a229a2"

project_id
string<uuid>
required

The project ID being published

Example:

"9f36ee32-5a2c-47e7-b1a3-94991d3e3ddb"

project_url
string<uri>
required

URL to access the project in Descript web app

Example:

"https://web.descript.com/9f36ee32-5a2c-47e7-b1a3-94991d3e3ddb"

drive_name
string | null

Human-readable name of the connected drive (workspace)

Example:

"My Team Workspace"