---
title: "Import skills from uploaded files"
method: POST
path: "/api/v1/w/{wId}/skills"
tags: ["Skills"]
---

# Import skills from uploaded files

`POST /api/v1/w/{wId}/skills`

Imports skills from uploaded files or ZIP archives into the workspace.

## Path parameters

- `wId` string, required

## Response `200`

Skills import result.

- object
  - `imported` Skill[]
    - `sId` string — Unique string identifier for the skill
    - `createdAt` number, nullable — Timestamp of when the skill was created
    - `updatedAt` number, nullable — Timestamp of when the skill was last updated
    - `editedBy` integer, nullable — Numeric identifier of the last editor
    - `status` 'active' | 'archived' | 'suggested' — Current status of the skill
    - `name` string — Name of the skill
    - `agentFacingDescription` string — Description shown to agents when selecting or using the skill
    - `userFacingDescription` string — Description shown to workspace users
    - `icon` string, nullable — Icon identifier for the skill
    - `source` 'web_app' | 'github' | 'api' | 'local_file', nullable — Source used to create or import the skill
    - `sourceMetadata` SkillSourceMetadata
      - `repoUrl` string — URL of the source repository, when applicable
      - `filePath` string — Path to the source skill file
    - `reinforcement` 'auto' | 'on' | 'off' — Reinforcement setting for the skill
    - `lastReinforcementAnalysisAt` string, nullable — Timestamp of the last reinforcement analysis, when available
    - `requestedSpaceIds` string[] — Space identifiers the skill needs access to
    - `fileAttachments` object[]
      - `fileId` string — Unique string identifier for the attached file
      - `fileName` string — Name of the attached file
    - `canWrite` boolean — Whether the authenticated actor can edit the skill
    - `isDefault` boolean — Whether this skill is enabled by default. Deprecated, use availability instead.
    - `availability` 'editors' | 'workspace_users' | 'users_and_agents' — Who the skill is available to (users_and_agents makes it discoverable by agents)
    - `instructions` string, nullable — Instructions used by the agent when running the skill
    - `instructionsHtml` string, nullable — HTML representation of the skill instructions
    - `tools` MCPServerView[]
      - `id` integer — Unique identifier for the MCP server view
      - `sId` string — Unique string identifier for the MCP server view
      - `name` string, nullable — Custom name for the MCP server view (null if not set)
      - `description` string, nullable — Custom description for the MCP server view (null if not set)
      - `createdAt` number — Unix timestamp of when the MCP server view was created
      - `updatedAt` number — Unix timestamp of when the MCP server view was last updated
      - `spaceId` string — ID of the space containing the MCP server view
      - `serverType` 'remote' | 'internal' — Type of the MCP server
      - `server` object
        - `sId` string — Unique string identifier for the MCP server
        - `name` string — Name of the MCP server
        - `version` string — Version of the MCP server
        - `description` string — Description of the MCP server
        - `icon` string — Icon identifier for the MCP server
        - `authorization` object, nullable
          - `provider` string — OAuth provider for authorization
          - `supported_use_cases` string[] — Supported use cases for the authorization
          - `scope` string — OAuth scope required
        - `tools` object[]
          - `name` string — Name of the tool
          - `description` string — Description of what the tool does
          - `inputSchema` object — JSON Schema for the tool's input parameters
        - `availability` string — Availability status of the MCP server
        - `allowMultipleInstances` boolean — Whether multiple instances of this server can be created
        - `documentationUrl` string, nullable — URL to the server's documentation
      - `oAuthUseCase` 'platform_actions' | 'personal_actions', nullable — OAuth use case for the MCP server view
      - `isRestrictedToSkills` boolean, required — Whether the MCP server view can only be used through skills
      - `editedByUser` object, nullable — Information about the user who last edited the MCP server view
        - `editedAt` number, nullable — Unix timestamp of when the edit occurred
        - `fullName` string, nullable — Full name of the editor
        - `imageUrl` string, nullable — Profile image URL of the editor
  - `updated` Skill[]
    - `sId` string — Unique string identifier for the skill
    - `createdAt` number, nullable — Timestamp of when the skill was created
    - `updatedAt` number, nullable — Timestamp of when the skill was last updated
    - `editedBy` integer, nullable — Numeric identifier of the last editor
    - `status` 'active' | 'archived' | 'suggested' — Current status of the skill
    - `name` string — Name of the skill
    - `agentFacingDescription` string — Description shown to agents when selecting or using the skill
    - `userFacingDescription` string — Description shown to workspace users
    - `icon` string, nullable — Icon identifier for the skill
    - `source` 'web_app' | 'github' | 'api' | 'local_file', nullable — Source used to create or import the skill
    - `sourceMetadata` SkillSourceMetadata
      - `repoUrl` string — URL of the source repository, when applicable
      - `filePath` string — Path to the source skill file
    - `reinforcement` 'auto' | 'on' | 'off' — Reinforcement setting for the skill
    - `lastReinforcementAnalysisAt` string, nullable — Timestamp of the last reinforcement analysis, when available
    - `requestedSpaceIds` string[] — Space identifiers the skill needs access to
    - `fileAttachments` object[]
      - `fileId` string — Unique string identifier for the attached file
      - `fileName` string — Name of the attached file
    - `canWrite` boolean — Whether the authenticated actor can edit the skill
    - `isDefault` boolean — Whether this skill is enabled by default. Deprecated, use availability instead.
    - `availability` 'editors' | 'workspace_users' | 'users_and_agents' — Who the skill is available to (users_and_agents makes it discoverable by agents)
    - `instructions` string, nullable — Instructions used by the agent when running the skill
    - `instructionsHtml` string, nullable — HTML representation of the skill instructions
    - `tools` MCPServerView[]
      - `id` integer — Unique identifier for the MCP server view
      - `sId` string — Unique string identifier for the MCP server view
      - `name` string, nullable — Custom name for the MCP server view (null if not set)
      - `description` string, nullable — Custom description for the MCP server view (null if not set)
      - `createdAt` number — Unix timestamp of when the MCP server view was created
      - `updatedAt` number — Unix timestamp of when the MCP server view was last updated
      - `spaceId` string — ID of the space containing the MCP server view
      - `serverType` 'remote' | 'internal' — Type of the MCP server
      - `server` object
        - `sId` string — Unique string identifier for the MCP server
        - `name` string — Name of the MCP server
        - `version` string — Version of the MCP server
        - `description` string — Description of the MCP server
        - `icon` string — Icon identifier for the MCP server
        - `authorization` object, nullable
          - `provider` string — OAuth provider for authorization
          - `supported_use_cases` string[] — Supported use cases for the authorization
          - `scope` string — OAuth scope required
        - `tools` object[]
          - `name` string — Name of the tool
          - `description` string — Description of what the tool does
          - `inputSchema` object — JSON Schema for the tool's input parameters
        - `availability` string — Availability status of the MCP server
        - `allowMultipleInstances` boolean — Whether multiple instances of this server can be created
        - `documentationUrl` string, nullable — URL to the server's documentation
      - `oAuthUseCase` 'platform_actions' | 'personal_actions', nullable — OAuth use case for the MCP server view
      - `isRestrictedToSkills` boolean, required — Whether the MCP server view can only be used through skills
      - `editedByUser` object, nullable — Information about the user who last edited the MCP server view
        - `editedAt` number, nullable — Unix timestamp of when the edit occurred
        - `fullName` string, nullable — Full name of the editor
        - `imageUrl` string, nullable — Profile image URL of the editor
  - `skipped` object[]
    - `name` string
    - `message` string

## Other responses

- `400` — Bad Request. Missing or invalid uploaded files.
- `401` — Unauthorized. Invalid or missing authentication token.
- `404` — Workspace not found.

---

[API](https://skmtc.net/dust-tt/apis/dust-api-documentation.md) · [All operations](https://skmtc.net/dust-tt/apis/dust-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dust-tt/dust-api-documentation/revisions/5834d690c29d/schema)
