# Descript Integration via LowCodeAPI
**Last Updated**: February 11, 2026
## Overview
Audio and video editing platform with AI-powered transcription and editing tools
The Descript API provides access to:
- **Speech to Text AI** - Related functionality
## Base Endpoint
```
https://api.lowcodeapi.com/descript/
```
**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`
## Authentication
LowCodeAPI handles authentication automatically. You only need to:
1. **Sign up** at [Descript](https://www.descript.com/)
2. **Get your credentials** from [credential page](https://app.squadcast.fm/account/developers)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests
The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your provider credentials (API keys, OAuth tokens, etc.)
- Apply them to each request
- Handle token refresh for OAuth providers
**Auth Type**: TOKEN
## URL Format (Important)
LowCodeAPI supports **two URL formats** for endpoints with path parameters. **Always try New Format first**, and only fall back to Old Format if it doesn't work.
### New Format (Priority) - Dynamic Path Parameters
- **Path parameters stay in the URL path** - Do NOT convert to query parameters
- **Provider name is always in the URL path** after `api.lowcodeapi.com/`
- Pattern: `https://api.lowcodeapi.com/{provider}/{path_with_params}?api_token={api_token}`
**Example**:
```bash
# New Format - Path parameter stays in the URL path
https://api.lowcodeapi.com/descript/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN
```
### Old Format (Fallback) - Sanitized Path + Query Parameters
- **Path parameters become query parameters**
- **Provider name is always in the URL path**
- Pattern: `https://api.lowcodeapi.com/{provider}/{sanitized_path}?{path_params}&api_token={api_token}`
**Example**:
```bash
# Old Format - Path parameter becomes a query parameter
https://api.lowcodeapi.com/descript/resource/id?id=RESOURCE_ID&api_token=YOUR_API_TOKEN
```
### Decision Flow for AI Agents
1. Always use **New Format first** - Keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider
## API Categories
- **Edit in Descript** - 1 endpoints
- **Overdub** - 3 endpoints
## Common Endpoints
### Category: Edit in Descript
#### Create Import URL
**Method**: `POST` | **LowCodeAPI Path**: `/v1/edit_in_descript/schema`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/descript/v1/edit_in_descript/schema?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/descript/v1/edit_in_descript/schema?api_token={api_token}
```
**Description**: Create an Import URL by sending a Project schema to Descript API from your service's backend.
**Request Body**:
```json
{
"partner_drive_id": "<string>",
"project_schema": "<object>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `partner_drive_id` | string | Yes | The drive id associated with the auth token. |
| `project_schema` | object | Yes | The Project schema |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/descript/v1/edit_in_descript/schema?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Create Import URL](https://docs.descriptapi.com/#operation/postEditInDescriptSchema)
---
### Category: Overdub
#### Generate a new Overdub
**Method**: `POST` | **LowCodeAPI Path**: `/v1/overdub/generate_async`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/generate_async?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/generate_async?api_token={api_token}
```
**Description**: It will create an Overdub generate async task. Use the get endpoint to fetch the job result. Usually, a task should take a few seconds. You can provide an optional callback_url as a parameter to this request. We will do a post to this url once the overdub is ready. There are two types of Overdub: standalone and contextual.
**Request Body**:
```json
{
"text": "<string>",
"voice_id": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `text` | string | Yes | The text you want to generate. |
| `callback_url` | string | No | when the overdub is ready, we do a post on that endpoint with a json object: {state, id}. Then user will have to get the result as usual |
| `prefix_audio_url` | string | No | The prefix audio url. |
| `prefix_text` | string | No | The transcript of the prefix audio. |
| `suffix_audio_url` | string | No | The suffix audio url. |
| `suffix_text` | string | No | The transcript of the suffix audio. |
| `voice_id` | string | Yes | The voice id |
| `voice_style_id` | string | No | The ID of the desired style associated with the voice. If not provided, the default voice style is used. This parameter is ignored if prefix_audio_url or suffix_audio_url is provided. |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/descript/v1/overdub/generate_async?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Generate a new Overdub](https://docs.descriptapi.com/#operation/createOverdubAsync)
---
#### Get an Overdub result
**Method**: `GET` | **LowCodeAPI Path**: `/v1/overdub/generate_async/{overdubId}`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/generate_async/{overdubId}?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/generate_async/overdubid?overdubId={overdubId}&api_token={api_token}
```
**Description**: It takes a few seconds for the Overdub audio to get generated. Once the state of the response is "done", your generate Overdub audio will be available at the "url" in the response.
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `overdubId` | string | Yes | ID of the Overdub to return. |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/descript/v1/overdub/generate_async/{overdubId}?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Get an Overdub result](https://docs.descriptapi.com/#operation/getOverdubAsync)
---
#### Get voices
**Method**: `GET` | **LowCodeAPI Path**: `/v1/overdub/voices`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/voices?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/descript/v1/overdub/voices?api_token={api_token}
```
**Description**: Lists all the voices (along with their voice styles) to which you have access.
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/descript/v1/overdub/voices?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Get voices](https://docs.descriptapi.com/#operation/getVoice)
---
## API Definition Endpoints
You can retrieve the complete OpenAPI specification for this provider using these endpoints:
**New Format (OpenAPI spec with dynamic path parameters):**
```bash
curl -X GET "https://backend.lowcodeapi.com/descript/openapi"
```
**Old Format (API definition with sanitized paths):**
```bash
curl -X GET "https://backend.lowcodeapi.com/descript/definition"
```
## Response Format
All responses from LowCodeAPI are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider API
}
}
```
The `data` key contains the raw response from the provider's API.
## Complete Endpoint Reference
For a complete list of all 4 endpoints, refer to:
- **Official Provider Documentation**: https://docs.descriptapi.com/#section/Authentication
## Usage Examples
### Example 1: Basic API Request (New Format)
Making a simple request to Descript:
```bash
# Replace RESOURCE_ID with an actual resource ID from your Descript account
curl -X GET "https://api.lowcodeapi.com/descript/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
```
### Example 2: Request with Query Parameters (New Format)
Request with specific parameters:
```bash
# Include query parameters for filtering
curl -X GET "https://api.lowcodeapi.com/descript/resources?filter=value&api_token=YOUR_API_TOKEN"
```
## Error Handling
Standard HTTP status codes apply. All responses are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider
}
}
```