Descript · Capability
Descript API — API Endpoints
Descript API — API Endpoints. 9 operations. Lead operation: List jobs. Self-contained Naftiko capability covering one Descript business surface.
What You Can Do
GET
Listjobs
— List jobs
/v1/jobs
POST
Agenteditjob
— Agent edit
/v1/jobs/agent
POST
Importprojectmedia
— Import media and sequences
/v1/jobs/import/project-media
POST
Publishjob
— Publish project media
/v1/jobs/publish
GET
Getjob
— Get job status
/v1/jobs/{job-id}
DELETE
Canceljob
— Cancel job
/v1/jobs/{job-id}
GET
Listprojects
— List projects
/v1/projects
GET
Getproject
— Get project details
/v1/projects/{project-id}
GET
Getstatus
— Check API status
/v1/status
MCP Tools
list-jobs
List jobs
read-only
idempotent
agent-edit
Agent edit
import-media-and-sequences
Import media and sequences
publish-project-media
Publish project media
get-job-status
Get job status
read-only
idempotent
cancel-job
Cancel job
idempotent
list-projects
List projects
read-only
idempotent
get-project-details
Get project details
read-only
idempotent
check-api-status
Check API status
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Descript API — API Endpoints
description: 'Descript API — API Endpoints. 9 operations. Lead operation: List jobs. Self-contained Naftiko capability covering
one Descript business surface.'
tags:
- Descript
- API Endpoints
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DESCRIPT_API_KEY: DESCRIPT_API_KEY
capability:
consumes:
- type: http
namespace: descript-api-endpoints
baseUri: https://descriptapi.com/v1
description: Descript API — API Endpoints business capability. Self-contained, no shared references.
resources:
- name: jobs
path: /jobs
operations:
- name: listjobs
method: GET
description: List jobs
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_id
in: query
type: string
description: Filter by project ID
- name: type
in: query
type: string
description: Filter by job type
- name: cursor
in: query
type: string
description: Cursor for the next page of results, obtained from `pagination.next_cursor` in a previous response
- name: limit
in: query
type: integer
description: Number of items per page (1-100). Defaults to 20.
- name: created_after
in: query
type: string
description: 'Filter jobs created after this timestamp (ISO 8601). Default: 7 days ago. Oldest allowed: 30 days
ago.'
- name: created_before
in: query
type: string
description: 'Filter jobs created before this timestamp (ISO 8601). Default: now.'
- name: jobs-agent
path: /jobs/agent
operations:
- name: agenteditjob
method: POST
description: Agent edit
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: jobs-import-project_media
path: /jobs/import/project_media
operations:
- name: importprojectmedia
method: POST
description: Import media and sequences
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: jobs-publish
path: /jobs/publish
operations:
- name: publishjob
method: POST
description: Publish project media
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: jobs-job_id
path: /jobs/{job_id}
operations:
- name: getjob
method: GET
description: Get job status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: job_id
in: path
type: string
description: The job ID
required: true
- name: canceljob
method: DELETE
description: Cancel job
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: job_id
in: path
type: string
description: The job ID
required: true
- name: projects
path: /projects
operations:
- name: listprojects
method: GET
description: List projects
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Filter projects whose name contains this string (case-insensitive).
- name: folder_path
in: query
type: string
description: Filter projects by folder path (e.g. "Clients/Acme/Videos"). Use "/" to separate nested folders. Returns
only projects directly inside the deepest folder.
- name: created_by
in: query
type: string
description: Filter projects created by this user UUID. Pass `me` to filter by the authenticated user.
- name: created_after
in: query
type: string
description: Filter projects created after this ISO 8601 timestamp.
- name: created_before
in: query
type: string
description: Filter projects created before this ISO 8601 timestamp.
- name: updated_after
in: query
type: string
description: Filter projects updated after this ISO 8601 timestamp.
- name: updated_before
in: query
type: string
description: Filter projects updated before this ISO 8601 timestamp.
- name: sort
in: query
type: string
description: Sort field. Defaults to created_at.
- name: direction
in: query
type: string
description: Sort direction. Defaults to desc.
- name: cursor
in: query
type: string
description: Pagination cursor from a previous response's `pagination.next_cursor`.
- name: limit
in: query
type: integer
description: Number of projects per page (1-100). Defaults to 20.
- name: projects-project_id
path: /projects/{project_id}
operations:
- name: getproject
method: GET
description: Get project details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_id
in: path
type: string
description: The project UUID
required: true
- name: status
path: /status
operations:
- name: getstatus
method: GET
description: Check API status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
authentication:
type: bearer
token: '{{env.DESCRIPT_API_KEY}}'
exposes:
- type: rest
namespace: descript-api-endpoints-rest
port: 8080
description: REST adapter for Descript API — API Endpoints. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/jobs
name: jobs
description: REST surface for jobs.
operations:
- method: GET
name: listjobs
description: List jobs
call: descript-api-endpoints.listjobs
with:
project_id: rest.project_id
type: rest.type
cursor: rest.cursor
limit: rest.limit
created_after: rest.created_after
created_before: rest.created_before
outputParameters:
- type: object
mapping: $.
- path: /v1/jobs/agent
name: jobs-agent
description: REST surface for jobs-agent.
operations:
- method: POST
name: agenteditjob
description: Agent edit
call: descript-api-endpoints.agenteditjob
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/jobs/import/project-media
name: jobs-import-project-media
description: REST surface for jobs-import-project_media.
operations:
- method: POST
name: importprojectmedia
description: Import media and sequences
call: descript-api-endpoints.importprojectmedia
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/jobs/publish
name: jobs-publish
description: REST surface for jobs-publish.
operations:
- method: POST
name: publishjob
description: Publish project media
call: descript-api-endpoints.publishjob
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/jobs/{job-id}
name: jobs-job-id
description: REST surface for jobs-job_id.
operations:
- method: GET
name: getjob
description: Get job status
call: descript-api-endpoints.getjob
with:
job_id: rest.job_id
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: canceljob
description: Cancel job
call: descript-api-endpoints.canceljob
with:
job_id: rest.job_id
outputParameters:
- type: object
mapping: $.
- path: /v1/projects
name: projects
description: REST surface for projects.
operations:
- method: GET
name: listprojects
description: List projects
call: descript-api-endpoints.listprojects
with:
name: rest.name
folder_path: rest.folder_path
created_by: rest.created_by
created_after: rest.created_after
created_before: rest.created_before
updated_after: rest.updated_after
updated_before: rest.updated_before
sort: rest.sort
direction: rest.direction
cursor: rest.cursor
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}
name: projects-project-id
description: REST surface for projects-project_id.
operations:
- method: GET
name: getproject
description: Get project details
call: descript-api-endpoints.getproject
with:
project_id: rest.project_id
outputParameters:
- type: object
mapping: $.
- path: /v1/status
name: status
description: REST surface for status.
operations:
- method: GET
name: getstatus
description: Check API status
call: descript-api-endpoints.getstatus
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: descript-api-endpoints-mcp
port: 9090
transport: http
description: MCP adapter for Descript API — API Endpoints. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: list-jobs
description: List jobs
hints:
readOnly: true
destructive: false
idempotent: true
call: descript-api-endpoints.listjobs
with:
project_id: tools.project_id
type: tools.type
cursor: tools.cursor
limit: tools.limit
created_after: tools.created_after
created_before: tools.created_before
outputParameters:
- type: object
mapping: $.
- name: agent-edit
description: Agent edit
hints:
readOnly: false
destructive: false
idempotent: false
call: descript-api-endpoints.agenteditjob
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: import-media-and-sequences
description: Import media and sequences
hints:
readOnly: false
destructive: false
idempotent: false
call: descript-api-endpoints.importprojectmedia
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: publish-project-media
description: Publish project media
hints:
readOnly: false
destructive: false
idempotent: false
call: descript-api-endpoints.publishjob
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-job-status
description: Get job status
hints:
readOnly: true
destructive: false
idempotent: true
call: descript-api-endpoints.getjob
with:
job_id: tools.job_id
outputParameters:
- type: object
mapping: $.
- name: cancel-job
description: Cancel job
hints:
readOnly: false
destructive: true
idempotent: true
call: descript-api-endpoints.canceljob
with:
job_id: tools.job_id
outputParameters:
- type: object
mapping: $.
- name: list-projects
description: List projects
hints:
readOnly: true
destructive: false
idempotent: true
call: descript-api-endpoints.listprojects
with:
name: tools.name
folder_path: tools.folder_path
created_by: tools.created_by
created_after: tools.created_after
created_before: tools.created_before
updated_after: tools.updated_after
updated_before: tools.updated_before
sort: tools.sort
direction: tools.direction
cursor: tools.cursor
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-project-details
description: Get project details
hints:
readOnly: true
destructive: false
idempotent: true
call: descript-api-endpoints.getproject
with:
project_id: tools.project_id
outputParameters:
- type: object
mapping: $.
- name: check-api-status
description: Check API status
hints:
readOnly: true
destructive: false
idempotent: true
call: descript-api-endpoints.getstatus
outputParameters:
- type: object
mapping: $.