Dust Skills API

List the skill bundles installed in a Dust workspace and import new skills from uploaded files. Skills are reusable instruction + tool packs that agents can attach to.

Dust Skills API is one of 9 APIs that Dust publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include AI, Artificial Intelligence, Dust, and Skills. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

dust-skills-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Dust Skills API
  version: 1.0.2
  description: List and import skill bundles into a Dust workspace.
  contact:
    name: Dust Support
    url: https://docs.dust.tt
  license:
    name: MIT
    url: https://github.com/dust-tt/dust/blob/main/LICENSE
servers:
- url: https://dust.tt
  description: Dust.tt API (us-central1)
- url: https://eu.dust.tt
  description: Dust.tt API (europe-west1)
tags:
- name: Skills
  description: Skills
paths:
  /api/v1/w/{wId}/skills:
    get:
      summary: List Skills
      description: Retrieves the custom skills in the workspace. Active skills are returned by default.
      tags:
      - Skills
      security:
      - BearerAuth: []
      parameters:
      - in: path
        name: wId
        required: true
        description: Unique string identifier for the workspace
        schema:
          type: string
      - in: query
        name: status
        required: false
        description: Filter skills by status. Defaults to active.
        schema:
          type: string
          enum:
          - active
          - archived
          - suggested
      responses:
        '200':
          description: Skills available in the workspace.
          content:
            application/json:
              schema:
                type: object
                properties:
                  skills:
                    type: array
                    items:
                      $ref: '#/components/schemas/Skill'
        '400':
          description: Bad Request. Missing or invalid parameters.
        '401':
          description: Unauthorized. Invalid or missing authentication token.
        '404':
          description: Workspace not found.
        '405':
          description: Method not supported.
    post:
      summary: Import Skills from Uploaded Files
      description: Imports skills from uploaded files or ZIP archives into the workspace.
      tags:
      - Skills
      security:
      - BearerAuth: []
      parameters:
      - in: path
        name: wId
        required: true
        description: Unique string identifier for the workspace
        schema:
          type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - files
              properties:
                files:
                  type: array
                  items:
                    type: string
                    format: binary
                  description: Skill files or ZIP archives to import.
                names:
                  type: array
                  items:
                    type: string
                  description: Optional skill names to import from the uploaded files.
                onConflict:
                  type: string
                  enum:
                  - error
                  - skip
                  - override
                  description: Conflict handling strategy. Defaults to error.
      responses:
        '200':
          description: Skills import result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  imported:
                    type: array
                    items:
                      $ref: '#/components/schemas/Skill'
                  updated:
                    type: array
                    items:
                      $ref: '#/components/schemas/Skill'
                  skipped:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        message:
                          type: string
        '400':
          description: Bad Request. Missing or invalid uploaded files.
        '401':
          description: Unauthorized. Invalid or missing authentication token.
        '404':
          description: Workspace not found.
        '405':
          description: Method not supported.
components:
  schemas:
    MCPServerView:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier for the MCP server view
          example: 123
        sId:
          type: string
          description: Unique string identifier for the MCP server view
          example: mcp_sv_abc123
        name:
          type: string
          nullable: true
          description: Custom name for the MCP server view (null if not set)
          example: My Custom MCP Server
        description:
          type: string
          nullable: true
          description: Custom description for the MCP server view (null if not set)
          example: This MCP server handles customer data operations
        createdAt:
          type: number
          description: Unix timestamp of when the MCP server view was created
          example: 1625097600
        updatedAt:
          type: number
          description: Unix timestamp of when the MCP server view was last updated
          example: 1625184000
        spaceId:
          type: string
          description: ID of the space containing the MCP server view
          example: spc_xyz789
        serverType:
          type: string
          enum:
          - remote
          - internal
          description: Type of the MCP server
          example: remote
        server:
          type: object
          properties:
            sId:
              type: string
              description: Unique string identifier for the MCP server
              example: mcp_srv_def456
            name:
              type: string
              description: Name of the MCP server
              example: Customer Data Server
            version:
              type: string
              description: Version of the MCP server
              example: 1.0.0
            description:
              type: string
              description: Description of the MCP server
              example: Handles customer data operations and queries
            icon:
              type: string
              description: Icon identifier for the MCP server
              example: database
            authorization:
              type: object
              nullable: true
              properties:
                provider:
                  type: string
                  description: OAuth provider for authorization
                  example: github
                supported_use_cases:
                  type: array
                  items:
                    type: string
                    enum:
                    - platform_actions
                    - personal_actions
                  description: Supported use cases for the authorization
                  example:
                  - platform_actions
                scope:
                  type: string
                  description: OAuth scope required
                  example: repo:read
            tools:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Name of the tool
                    example: query_customers
                  description:
                    type: string
                    description: Description of what the tool does
                    example: Query customer database for information
                  inputSchema:
                    type: object
                    description: JSON Schema for the tool's input parameters
                    example:
                      type: object
                      properties:
                        customerId:
                          type: string
            availability:
              type: string
              description: Availability status of the MCP server
              example: production
            allowMultipleInstances:
              type: boolean
              description: Whether multiple instances of this server can be created
              example: false
            documentationUrl:
              type: string
              nullable: true
              description: URL to the server's documentation
              example: https://docs.example.com/mcp-server
        oAuthUseCase:
          type: string
          nullable: true
          enum:
          - platform_actions
          - personal_actions
          description: OAuth use case for the MCP server view
          example: platform_actions
        editedByUser:
          type: object
          nullable: true
          description: Information about the user who last edited the MCP server view
          properties:
            editedAt:
              type: number
              nullable: true
              description: Unix timestamp of when the edit occurred
              example: 1625184000
            fullName:
              type: string
              nullable: true
              description: Full name of the editor
              example: John Doe
            imageUrl:
              type: string
              nullable: true
              description: Profile image URL of the editor
              example: https://example.com/profile/johndoe.jpg
    Skill:
      type: object
      properties:
        sId:
          type: string
          description: Unique string identifier for the skill
          example: skill_abc123
        createdAt:
          type: number
          nullable: true
          description: Timestamp of when the skill was created
        updatedAt:
          type: number
          nullable: true
          description: Timestamp of when the skill was last updated
        editedBy:
          type: integer
          nullable: true
          description: Numeric identifier of the last editor
        status:
          type: string
          enum:
          - active
          - archived
          - suggested
          description: Current status of the skill
          example: active
        name:
          type: string
          description: Name of the skill
          example: Customer Support
        agentFacingDescription:
          type: string
          description: Description shown to agents when selecting or using the skill
          example: Use this skill to answer customer support questions.
        userFacingDescription:
          type: string
          description: Description shown to workspace users
          example: Answers support questions with the right workspace context.
        icon:
          type: string
          nullable: true
          description: Icon identifier for the skill
          example: ActionRobotIcon
        source:
          type: string
          nullable: true
          enum:
          - web_app
          - github
          - api
          - local_file
          description: Source used to create or import the skill
        sourceMetadata:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SkillSourceMetadata'
        reinforcement:
          type: string
          enum:
          - auto
          - 'on'
          - 'off'
          description: Reinforcement setting for the skill
        lastReinforcementAnalysisAt:
          type: string
          nullable: true
          description: Timestamp of the last reinforcement analysis, when available
        requestedSpaceIds:
          type: array
          items:
            type: string
          description: Space identifiers the skill needs access to
        fileAttachments:
          type: array
          items:
            type: object
            properties:
              fileId:
                type: string
                description: Unique string identifier for the attached file
              fileName:
                type: string
                description: Name of the attached file
        canWrite:
          type: boolean
          description: Whether the authenticated actor can edit the skill
        isExtendable:
          type: boolean
          description: Whether this skill can be extended by another skill
        isDefault:
          type: boolean
          description: Whether this skill is enabled by default
        extendedSkillId:
          type: string
          nullable: true
          description: Identifier of the extended skill, when applicable
        instructions:
          type: string
          nullable: true
          description: Instructions used by the agent when running the skill
        instructionsHtml:
          type: string
          nullable: true
          description: HTML representation of the skill instructions
        tools:
          type: array
          items:
            $ref: '#/components/schemas/MCPServerView'
    SkillSourceMetadata:
      type: object
      properties:
        repoUrl:
          type: string
          description: URL of the source repository, when applicable
          example: https://github.com/dust-tt/skills
        filePath:
          type: string
          description: Path to the source skill file
          example: support/SKILL.md
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Your DUST API key is a Bearer token.