{ "job_id": "<string>", "drive_id": "<string>", "folder_id": "<string>", "drive_name": "My Team Workspace", "upload_urls": {}}
Import media to drive library
Import media files into the drive media library (shared workspace-level media collection).
Unlike project media import, this endpoint adds files to the drive’s shared media library
rather than to a specific project. Files can optionally be placed in a folder.
Media URL requirements
URLs must be accessible by Descript servers
URLs must support HTTP Range requests
Recommended to sign URLs for 12-48 hours to reduce chance of failure
Supported file types: the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI
Direct file upload
Instead of providing a URL, you can upload files directly by specifying content_type and file_size for a media item. The response will include a signed upload_url for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the Direct file upload guide for a full walkthrough.
Async Operations
Imports run in the background and return a job_id. Monitor progress via the GET /jobs/ endpoint.
Dynamic webhook
If callback_url is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).
Map of media reference IDs to their import definitions. Key is the display name
or path (e.g. "video.mp4" or "Folder/SubFolder/video.mp4"). Paths with forward
slashes create nested folders automatically.
Signed upload URLs for direct upload media items. Only present when the request includes direct upload references.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Descript Help Center","description":"User guides and documentation for Descript, a text-based video and audio editor.","colors":{"primary":"#651A39","light":"#CDCDFE","dark":"#F73B3B"},"logo":{"light":"https://mintcdn.com/descript-5bf56f3f/cSbTRRN32pg3UC1d/images/01a_Logo_2_color_Dark.png?fit=max\u0026auto=format\u0026n=cSbTRRN32pg3UC1d\u0026q=85\u0026s=5d5e4bea817ea025e6f7daf713a7fcfe","dark":"https://mintcdn.com/descript-5bf56f3f/cSbTRRN32pg3UC1d/images/01b_Logo_2_color_Light.png?fit=max\u0026auto=format\u0026n=cSbTRRN32pg3UC1d\u0026q=85\u0026s=90296d892f5b71071480e08d18b959b8"},"favicon":"https://mintcdn.com/descript-5bf56f3f/cSbTRRN32pg3UC1d/images/02a_Monogram_Primary.png?fit=max\u0026auto=format\u0026n=cSbTRRN32pg3UC1d\u0026q=85\u0026s=0dcc0c665590f0d18907633e2c109a25","api":{"openapi":"developers/openapi.json"},"appearance":{"default":"system"},"background":{"color":{"light":"#fdfcfc","dark":"#110A0D"}},"navbar":{"links":[]},"footer":{"socials":{"x":"https://x.com/descript","website":"https://www.descript.com","discord":"https://discord.com/channels/764925197379174411/960303941789294602","reddit":"https://www.reddit.com/r/Descript","facebook":"https://www.facebook.com/descriptapp"}},"fonts":{"heading":{"family":"Booton SemiBold","weight":500},"body":{"family":"Booton Regular","weight":500}},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"ga4":{"measurementId":"G-5C5EVM1H51"},"posthog":{"apiKey":"phc_w3ZqFHxxJraLWo3LU7wfDkCEhJZLo0X22W9e0VFu2Vu","sessionRecording":true}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity","grok","aistudio","mcp","cursor","vscode","download-spec","download-pdf"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"descript-5bf56f3f","hasAudioNarration":false,"actualSubdomain":"descript-5bf56f3f","customDomains":["help.descript.com","docs.descriptapi.com"],"gitSource":{"type":"github","owner":"descriptinc","repo":"descript","deployBranch":"main","contentDirectory":"help-center","isPrivate":true,"mountPath":"","label":"","isBase":true},"chroma":{"liveDeploymentHistoryId":"6aea4ba3686df1f3186fbd49","collectionId":"79ffc07a-e967-425d-9d18-798a9401dd6a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea4ba3686df1f3186fbd49"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea5bdc7e77426133be5c41","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Help Center","count":334},{"language":"default","tag":"SquadCast","count":67},{"language":"default","tag":"Script editing","count":34},{"language":"default","tag":"Export \u0026 share","count":33},{"language":"default","tag":"Record","count":28},{"language":"default","tag":"Visuals","count":28},{"language":"default","tag":"Add \u0026 manage media","count":25},{"language":"default","tag":"Effects, animations, transitions","count":23},{"language":"default","tag":"Troubleshooting","count":20},{"language":"default","tag":"Billing, payments, plans","count":19}],"searchSettings":{"isFiltersEnabled":false,"showContentSnippets":true,"maxResults":12}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"type":"link","url":"http://descript.zendesk.com/hc/en-us/requests/new"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instinct-self-updating-docs","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".effect-anchor{scroll-margin-top:6rem}tr:has(.effect-anchor:target){background-color:rgba(101,26,57,.07)}.dark tr:has(.effect-anchor:target){background-color:rgba(205,205,254,.1)}tr:has(.effect-anchor) td ul{margin:0}.custom-card{backdrop-filter:brightness(1.06);-webkit-backdrop-filter:brightness(1.06);border:1.5px solid rgba(0,0,0,.12);border-radius:1rem;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.custom-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.08)}.dark .custom-card{border-color:rgba(255,255,255,.14)}.dark .custom-card:hover{border-color:rgba(255,255,255,.22)}"}],"page":{"pagePath":"developers/api-reference/import/import-drive-media","slug":"/developers/api-reference/import/import-drive-media","pageMetadata":{"title":"Import media to drive library","openapi":"POST /jobs/import/drive_media","noindex":true,"description":"Import media files into the drive media library (shared workspace-level media collection).\n\nUnlike project media import, this endpoint adds files to the drive's shared media library\nrather than to a specific project. Files can optionally be placed in a folder.\n\n### Media URL requirements\n- URLs must be accessible by Descript servers\n- URLs must support HTTP Range requests\n- Recommended to sign URLs for 12-48 hours to reduce chance of failure\n- [Supported file types](https://help.descript.com/add-and-manage-media/supported-file-types#importing-with-the-api): the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI\n\n### Direct file upload\n\nInstead of providing a URL, you can upload files directly by specifying `content_type` and `file_size` for a media item. The response will include a signed `upload_url` for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the [Direct file upload](#tag/Direct-file-upload) guide for a full walkthrough.\n\n### Async Operations\n\nImports run in the background and return a `job_id`. Monitor progress via the [GET /jobs/{job_id}](#operation/getJob) endpoint.\n\n### Dynamic webhook\n\nIf `callback_url` is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\n","href":"/developers/api-reference/import/import-drive-media"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Import media files into the drive media library (shared workspace-level media collection).\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Unlike project media import, this endpoint adds files to the drive’s shared media library\\nrather than to a specific project. Files can optionally be placed in a folder.\"\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Media URL requirements\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"URLs must be accessible by Descript servers\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"URLs must support HTTP Range requests\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Recommended to sign URLs for 12-48 hours to reduce chance of failure\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://help.descript.com/add-and-manage-media/supported-file-types#importing-with-the-api\",\n children: \"Supported file types\"\n }), \": the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Direct file upload\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Instead of providing a URL, you can upload files directly by specifying \", _jsx(_components.code, {\n children: \"content_type\"\n }), \" and \", _jsx(_components.code, {\n children: \"file_size\"\n }), \" for a media item. The response will include a signed \", _jsx(_components.code, {\n children: \"upload_url\"\n }), \" for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the \", _jsx(_components.a, {\n href: \"#tag/Direct-file-upload\",\n children: \"Direct file upload\"\n }), \" guide for a full walkthrough.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Async Operations\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Imports run in the background and return a \", _jsx(_components.code, {\n children: \"job_id\"\n }), \". Monitor progress via the \", _jsx(_components.a, {\n href: \"#operation/getJob\",\n children: \"GET /jobs/\"\n }), \" endpoint.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Dynamic webhook\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"If \", _jsx(_components.code, {\n children: \"callback_url\"\n }), \" is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Import media to drive library","openapi":"POST /jobs/import/drive_media","noindex":true,"description":"Import media files into the drive media library (shared workspace-level media collection).\n\nUnlike project media import, this endpoint adds files to the drive's shared media library\nrather than to a specific project. Files can optionally be placed in a folder.\n\n### Media URL requirements\n- URLs must be accessible by Descript servers\n- URLs must support HTTP Range requests\n- Recommended to sign URLs for 12-48 hours to reduce chance of failure\n- [Supported file types](https://help.descript.com/add-and-manage-media/supported-file-types#importing-with-the-api): the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI\n\n### Direct file upload\n\nInstead of providing a URL, you can upload files directly by specifying `content_type` and `file_size` for a media item. The response will include a signed `upload_url` for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the [Direct file upload](#tag/Direct-file-upload) guide for a full walkthrough.\n\n### Async Operations\n\nImports run in the background and return a `job_id`. Monitor progress via the [GET /jobs/{job_id}](#operation/getJob) endpoint.\n\n### Dynamic webhook\n\nIf `callback_url` is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\n","href":"/developers/api-reference/import/import-drive-media"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/descript-5bf56f3f/2dc3a904ed64e2d6/analytics.js","/_mintlify/custom/descript-5bf56f3f/0f2d12095d1f7fa5/legacy-hash-redirect.js"],"openApiReferenceData":{"operation":{"tags":["API Endpoints"],"summary":"Import media to drive library","security":["28b196fb-6c3e-41a6-b462-9a34d4a923a7"],"description":"Import media files into the drive media library (shared workspace-level media collection).\n\nUnlike project media import, this endpoint adds files to the drive's shared media library\nrather than to a specific project. Files can optionally be placed in a folder.\n\n### Media URL requirements\n- URLs must be accessible by Descript servers\n- URLs must support HTTP Range requests\n- Recommended to sign URLs for 12-48 hours to reduce chance of failure\n- [Supported file types](https://help.descript.com/add-and-manage-media/supported-file-types#importing-with-the-api): the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI\n\n### Direct file upload\n\nInstead of providing a URL, you can upload files directly by specifying `content_type` and `file_size` for a media item. The response will include a signed `upload_url` for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the [Direct file upload](#tag/Direct-file-upload) guide for a full walkthrough.\n\n### Async Operations\n\nImports run in the background and return a `job_id`. Monitor progress via the [GET /jobs/{job_id}](#operation/getJob) endpoint.\n\n### Dynamic webhook\n\nIf `callback_url` is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\n","operationId":"importDriveMedia","requestBody":"bfb73a86-1db3-4a59-a8d9-2cbd6dd0b49f","responses":{"201":"69f258f1-b125-4b67-ada5-285d04b18a7d","400":"b118aaa5-7828-41fb-ad4b-59a48ee614b6","401":"77e5a85f-129d-42df-b726-692e57864861","402":"2163d760-4936-483f-a288-4f64cb76e8be","403":"704b5e0d-c677-4c63-9675-fef10f66a133","404":"13778ea4-4a07-48bc-9e76-63b40820e078","429":"21d67f19-cdb7-4d66-b653-d05303f6de45"},"method":"post","type":"path","servers":["a768f050-c5b4-4ea7-8d39-6bdbe0c0c89a"],"path":"/jobs/import/drive_media","baseUrlOptions":["https://descriptapi.com/v1"],"title":"Import media to drive library","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["add_media"],"properties":{"add_media":{"type":"object","description":"Map of media reference IDs to their import definitions. Key is the display name\nor path (e.g. \"video.mp4\" or \"Folder/SubFolder/video.mp4\"). Paths with forward\nslashes create nested folders automatically.\n","minProperties":1,"maxProperties":100,"additionalProperties":{"oneOf":[{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"URL to download the media file from. Recommended signed for 12+ hours.","isRequired":true,"uniqueKey":"add_media.additionalProperties.oneOf.0.url","typeLabel":"string\u003curi>"},"language":{"type":"string","description":"ISO 639-1 language code for transcription (e.g., \"en\", \"es\").","uniqueKey":"add_media.additionalProperties.oneOf.0.language","typeLabel":"string"}},"uniqueKey":"add_media.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["content_type","file_size"],"properties":{"content_type":{"type":"string","description":"MIME type of the file to upload (e.g. \"video/mp4\").","isRequired":true,"uniqueKey":"add_media.additionalProperties.oneOf.1.content_type","typeLabel":"string"},"file_size":{"type":"integer","minimum":1,"description":"File size in bytes.","isRequired":true,"uniqueKey":"add_media.additionalProperties.oneOf.1.file_size","typeLabel":"integer"},"language":{"type":"string","description":"ISO 639-1 language code for transcription (e.g., \"en\", \"es\").","uniqueKey":"add_media.additionalProperties.oneOf.1.language","typeLabel":"string"}},"uniqueKey":"add_media.additionalProperties.oneOf.1","typeLabel":"object"}],"uniqueKey":"add_media.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"add_media","typeLabel":"object"},"folder_id":{"type":"string","description":"Target drive media folder ID (UUID) or \"root\" for the root folder. If not provided, defaults to root.","uniqueKey":"folder_id","typeLabel":"string"},"callback_url":{"type":"string","format":"uri","description":"Optional callback URL to receive notifications about job status changes.","uniqueKey":"callback_url","typeLabel":"string\u003curi>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"add_media":{},"folder_id":"\u003cstring>","callback_url":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"69f258f1-b125-4b67-ada5-285d04b18a7d":{"description":"Job created","content":{"application/json":{"schema":{"type":"object","required":["job_id","drive_id","folder_id"],"properties":{"job_id":{"type":"string","description":"The ID of the created import job. Use this to query job status.","isRequired":true,"uniqueKey":"job_id","typeLabel":"string"},"drive_id":{"type":"string","description":"The drive ID where the media is being imported.","isRequired":true,"uniqueKey":"drive_id","typeLabel":"string"},"folder_id":{"type":"string","description":"The target folder ID in the drive media library.","isRequired":true,"uniqueKey":"folder_id","typeLabel":"string"},"drive_name":{"oneOf":[{"type":"string","description":"Human-readable name of the connected drive (workspace)","example":"My Team Workspace","uniqueKey":"drive_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable name of the connected drive (workspace)","example":"My Team Workspace","uniqueKey":"drive_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"drive_name","typeLabel":"string | null"},"upload_urls":{"type":"object","description":"Signed upload URLs for direct upload media items. Only present when the request includes direct upload references.","additionalProperties":{"type":"object","properties":{"upload_url":{"type":"string","format":"uri","description":"Signed URL to PUT the file bytes to.","uniqueKey":"upload_urls.additionalProperties.upload_url","typeLabel":"string\u003curi>"},"asset_id":{"type":"string","description":"The asset ID for the uploaded file.","uniqueKey":"upload_urls.additionalProperties.asset_id","typeLabel":"string"},"artifact_id":{"type":"string","description":"The artifact ID for the uploaded file.","uniqueKey":"upload_urls.additionalProperties.artifact_id","typeLabel":"string"}},"uniqueKey":"upload_urls.additionalProperties","typeLabel":"object"},"uniqueKey":"upload_urls","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"job_id":"\u003cstring>","drive_id":"\u003cstring>","folder_id":"\u003cstring>","drive_name":"My Team Workspace","upload_urls":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"b118aaa5-7828-41fb-ad4b-59a48ee614b6":{"description":"Invalid request","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"77e5a85f-129d-42df-b726-692e57864861":{"description":"Unauthorized","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"2163d760-4936-483f-a288-4f64cb76e8be":{"description":"Insufficient media minutes","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"704b5e0d-c677-4c63-9675-fef10f66a133":{"description":"Forbidden","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"13778ea4-4a07-48bc-9e76-63b40820e078":{"description":"Folder not found","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"21d67f19-cdb7-4d66-b653-d05303f6de45":{"description":"Too many requests","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"28b196fb-6c3e-41a6-b462-9a34d4a923a7":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal API token created in Descript Settings → API Tokens. See the Authentication section for details.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"a768f050-c5b4-4ea7-8d39-6bdbe0c0c89a":{"url":"https://descriptapi.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Personal API token created in Descript Settings → API Tokens. See the Authentication section for details.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Personal API token created in Descript Settings → API Tokens. See the Authentication section for details.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"developers/openapi.json"},"subdomain":"descript-5bf56f3f","siteName":"Descript Help Center","title":"Import media to drive library - Descript Help Center","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T15:23:23.635Z","originalFileLocation":"developers/api-reference/import/import-drive-media.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Import media files into the drive media library (shared workspace-level media collection). Unlike project media import, this endpoint adds files to the drive\u0026#x27;s shared media library rather than to a specific project. Files can optionally be placed in a folder. ### Media URL requirements - URLs must be accessible by Descript servers - URLs must support HTTP Range requests - Recommended to sign URLs for 12-48 hours to reduce chance of failure - Supported file types: the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI ### Direct file upload Instead of providing a URL, you can upload files directly by specifying content_type and file_size for a media item. The response will include a signed upload_url for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the Direct file upload guide for a full walkthrough. ### Async Operations Imports run in the background and return a job_id. Monitor progress via the GET /jobs/{job_id} endpoint. ### Dynamic webhook If callback_url is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Descript Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Import media to drive library - Descript Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Import media files into the drive media library (shared workspace-level media collection). Unlike project media import, this endpoint adds files to the drive\u0026#x27;s shared media library rather than to a specific project. Files can optionally be placed in a folder. ### Media URL requirements - URLs must be accessible by Descript servers - URLs must support HTTP Range requests - Recommended to sign URLs for 12-48 hours to reduce chance of failure - Supported file types: the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI ### Direct file upload Instead of providing a URL, you can upload files directly by specifying content_type and file_size for a media item. The response will include a signed upload_url for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the Direct file upload guide for a full walkthrough. ### Async Operations Imports run in the background and return a job_id. Monitor progress via the GET /jobs/{job_id} endpoint. ### Dynamic webhook If callback_url is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Descript Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.descript.com/developers/api-reference/import/import-drive-media\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://descript-5bf56f3f.mintlify.app/_mintlify/api/og/v2?division=Import\u0026amp;title=Import+media+to+drive+library\u0026amp;description=Import+media+files+into+the+drive+media+library+%28shared+workspace-level+media+collection%29.%0A%0AUnlike+project+media+import%2C+this+endpoint+adds+files+to+the+drive%27s\u0026amp;theme=f81376d507a7ea740b835510\u0026amp;signature=350b622a39ff4a7298c47920ad6b36a152d5f9b9c97d82760fac98c66d33d129\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Import media to drive library - Descript Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Import media files into the drive media library (shared workspace-level media collection). Unlike project media import, this endpoint adds files to the drive\u0026#x27;s shared media library rather than to a specific project. Files can optionally be placed in a folder. ### Media URL requirements - URLs must be accessible by Descript servers - URLs must support HTTP Range requests - Recommended to sign URLs for 12-48 hours to reduce chance of failure - Supported file types: the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI ### Direct file upload Instead of providing a URL, you can upload files directly by specifying content_type and file_size for a media item. The response will include a signed upload_url for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the Direct file upload guide for a full walkthrough. ### Async Operations Imports run in the background and return a job_id. Monitor progress via the GET /jobs/{job_id} endpoint. ### Dynamic webhook If callback_url is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://descript-5bf56f3f.mintlify.app/_mintlify/api/og/v2?division=Import\u0026amp;title=Import+media+to+drive+library\u0026amp;description=Import+media+files+into+the+drive+media+library+%28shared+workspace-level+media+collection%29.%0A%0AUnlike+project+media+import%2C+this+endpoint+adds+files+to+the+drive%27s\u0026amp;theme=f81376d507a7ea740b835510\u0026amp;signature=350b622a39ff4a7298c47920ad6b36a152d5f9b9c97d82760fac98c66d33d129\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/descript-5bf56f3f/kFeqHqu-v8e5VpSc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Descript Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#651A39\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.descript.com/developers/api-reference/import/import-drive-media\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/api-reference/import/import-drive-media.md\">","siteName":"Descript Help Center","nav":{"global":null,"tabs":[{"tab":"Help Center","pages":[{"title":"Help Center","href":""}]},{"tab":"SquadCast","pages":[{"title":"SquadCast","href":"/squadcast/quickstart"}]},{"tab":"Developers","icon":"square-terminal","groups":[{"group":"Get started","pages":[{"title":"Descript API","href":"/developers"},{"title":"Quickstart","href":"/developers/get-started/quickstart"},{"title":"Authentication","href":"/developers/get-started/authentication"}]},{"group":"Guides","pages":[{"title":"Using the CLI","href":"/developers/guides/cli"},{"title":"Direct file upload","href":"/developers/guides/direct-upload"},{"title":"Rate limiting","href":"/developers/guides/rate-limiting"}]},{"group":"MCP","pages":[{"title":"Descript MCP","href":"/developers/mcp/overview"}]},{"group":"Partner integrations","pages":[{"title":"Edit in Descript","href":"/developers/partners/edit-in-descript"},{"title":"Export from Descript","href":"/developers/partners/export-from-descript"}]},{"group":"API endpoints","pages":[{"title":"API endpoints","sidebarTitle":"Overview","href":"/developers/api-reference/overview"},{"group":"Import","pages":[{"title":"Import media and sequences","openapi":"POST /jobs/import/project_media","description":"Import media files into a new or existing project and create compositions.\n\nThis endpoint can:\n- Create a new project if `project_id` is not provided\n- Import media files from URLs\n- Create multitrack sequences\n- Create compositions (timelines) from existing or new media in the project\n- Trigger transcription and other background processing tasks\n\n### Media URL requirements\n- URLs must be accessible by Descript servers\n- URLs must support HTTP Range requests\n- Recommended to sign URLs for 12-48 hours to reduce chance of failure\n- [Supported file types](https://help.descript.com/add-and-manage-media/supported-file-types#importing-with-the-api): the API accepts more containers and codecs than the app, including MXF, MPEG-TS, and AVI\n\n### Direct file upload\n\nInstead of providing a URL, you can upload files directly by specifying `content_type` and `file_size` for a media item. The response will include a signed `upload_url` for each direct upload item. PUT the file bytes to that URL, and the import job will process it automatically. See the [Direct file upload](#tag/Direct-file-upload) guide for a full walkthrough.\n\n### Async Operations\n\nImports run in the background and return a `job_id`. Monitor progress via the [GET /jobs/{job_id}](#operation/getJob) endpoint.\n\n### Dynamic webhook\n\nIf `callback_url` is provided, Descript will POST the job status to that URL when the job finishes (successfully or not).\n\nThe payload will match the format returned by [GET /jobs/{job_id}](#operation/getJob).\n","href":"/developers/api-reference/import/import-project-media"},{"title":"Import media to drive library","openapi":"POST /jobs/import/drive_media","href":"/developers/api-reference/import/import-drive-media"}]},{"group":"Agent","pages":[{"title":"Agent edit","openapi":"POST /jobs/agent","description":"Use a background agent to create and edit projects using a natural language prompt.\n\n- **Edit existing project**: Provide a `project_id` to edit an existing project\n- **Target a specific composition**: Provide both `project_id` and `composition_id` to direct the agent to a specific composition within the project\n- **Create new project**: Provide a `project_name` instead of `project_id` to create a new project\n\n### Common use cases\n- Create new content: \"create a 30-second video about cooking tips\"\n- Apply audio effects: \"add studio sound to every clip\"\n- Remove filler words: \"remove all filler words from the transcript\"\n- Create highlights: \"create a 30-second highlight reel\"\n- Content editing: \"remove the section from 1:30 to 2:15\"\n\n### Async Operations\n\nAgent edits run in the background and return a `job_id`. Monitor progress via the [GET /jobs/{job_id}](#operation/getJob) endpoint.\n\n### Dynamic webhook\n\nIf `callback_url` is provided, Descript will POST the job status to that URL when the job completes or fails.\nThe payload will match the format returned by [GET /jobs/{job_id}](#operation/getJob).\n","href":"/developers/api-reference/agent/create-agent-edit"},{"title":"List agent models","openapi":"GET /agent/models","href":"/developers/api-reference/agent/list-agent-models"}]},{"group":"Jobs","pages":[{"title":"Get job status","openapi":"GET /jobs/{job_id}","href":"/developers/api-reference/jobs/get-job"},{"title":"List jobs","openapi":"GET /jobs","href":"/developers/api-reference/jobs/list-jobs"},{"title":"Cancel job","openapi":"DELETE /jobs/{job_id}","href":"/developers/api-reference/jobs/cancel-job"},{"title":"Publish project media","openapi":"POST /jobs/publish","href":"/developers/api-reference/jobs/publish-project"}]},{"group":"Projects","pages":[{"title":"List projects","openapi":"GET /projects","href":"/developers/api-reference/projects/list-projects"},{"title":"Get project details","openapi":"GET /projects/{project_id}","href":"/developers/api-reference/projects/get-project"},{"title":"Search a drive","openapi":"GET /search","href":"/developers/api-reference/projects/search"}]},{"group":"Export","pages":[{"title":"Export project transcript","openapi":"POST /export/transcript","href":"/developers/api-reference/export/export-transcript"}]},{"group":"Status","pages":[{"title":"Check API status","openapi":"GET /status","href":"/developers/api-reference/status/get-status"}]},{"group":"Partner endpoints","pages":[{"title":"Create Import URL","openapi":"POST /edit_in_descript/schema","href":"/developers/api-reference/partners/edit-in-descript-schema"},{"title":"Get Published Project Metadata","openapi":"GET /published_projects/{publishedProjectSlug}","href":"/developers/api-reference/partners/published-project-metadata"}]}]}]}]},"basePath":"","title":"Import media to drive library - Descript Help Center","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}