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.

Run with Naftiko DescriptAPI Endpoints

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

descript-api-endpoints.yaml Raw ↑
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: $.