> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List the skills catalog (documents + folders)

> Always returns the paginated envelope. Omitting `limit` returns the whole catalog in a single page (`limit === total`) **without** usage stats (`linkedAgentsCount`, `linkedAssistantsCount`, `installCount`), which are computed per page and are expensive; pass `limit` to get them.



## OpenAPI

````yaml GET /v1/documents/skills
openapi: 3.0.0
info:
  title: Devic.ai Public API
  description: >-
    Devic.ai is an AI platform that allows you to create, manage, and use AI
    agents for various tasks.
  version: 1.0.0
  contact:
    name: Devic.ai Support
    url: https://devic.ai
  x-logo:
    url: https://devic.ai/logo.png
    altText: Devic.ai Logo
  x-summary: Public API for interacting with Devic.ai platform
servers:
  - url: https://api.devic.ai
    description: Production server
  - url: https://staging-api.devic.ai
    description: Staging server
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Group agents, assistants, documents and costs into projects
  - name: Documents
    description: >-
      Knowledge base documents: create, version, attach and index markdown
      content for RAG
  - name: Document Folders
    description: Organise knowledge base documents into folders and attach them in bulk
  - name: Files
    description: Upload files and obtain shareable download URLs to attach to messages
  - name: Agents
    description: Endpoints related to AI agents and their operations
  - name: Assistants
    description: Endpoints for interacting with assistants and their specializations
  - name: Tool Servers
    description: Endpoints for managing tool servers and their tool definitions
  - name: Health
    description: API health check endpoints
  - name: Documentation
    description: Endpoints for retrieving markdown documentation
  - name: Integrations
    description: Connect third-party apps and turn them into tools
  - name: Triggers
    description: Start an agent or an assistant from an app event
  - name: Tenant Integrations
    description: Apps that each end user connects for themselves
  - name: Memory
    description: What an assistant remembers between conversations
  - name: Skills
    description: Reusable instruction packs for agents and assistants
  - name: Speech to Text
    description: Audio transcription
  - name: Tenants
    description: Tenants, subtenants and their usage
  - name: MCP Gateway
    description: One MCP endpoint over many servers, with visibility per user
  - name: Tenant Sessions
    description: Tokens that prove which end user is calling
paths:
  /v1/documents/skills:
    get:
      tags:
        - Skills
      summary: List the skills catalog (documents + folders)
      description: >-
        Always returns the paginated envelope. Omitting `limit` returns the
        whole catalog in a single page (`limit === total`) **without** usage
        stats (`linkedAgentsCount`, `linkedAssistantsCount`, `installCount`),
        which are computed per page and are expensive; pass `limit` to get them.
      operationId: listSkills
      parameters:
        - name: tags
          required: false
          in: query
          description: Comma-separated tags
          schema:
            type: string
        - name: search
          required: false
          in: query
          schema:
            type: string
        - name: projectId
          required: false
          in: query
          schema:
            type: string
        - name: page
          required: false
          in: query
          schema:
            type: string
        - name: limit
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillCatalogPageDto'
        '401':
          description: Unauthorized - Invalid or missing token
        '429':
          description: Too Many Requests - Rate limit exceeded
        '500':
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    SkillCatalogPageDto:
      type: object
      properties:
        items:
          description: Skills in this page
          type: array
          items:
            $ref: '#/components/schemas/SkillCatalogItemDto'
        total:
          type: number
          description: Total matching skills
        page:
          type: number
          description: 1-based page number
        limit:
          type: number
          description: >-
            Page size. When the request omits `limit`, the whole catalog is
            returned in one page and this equals `total` — usage stats are
            omitted in that case because they are computed per page.
      required:
        - items
        - total
        - page
        - limit
    SkillCatalogItemDto:
      type: object
      properties:
        id:
          type: string
          description: Document `_id` (document-skill) or folder `_id` (folder-skill)
        type:
          type: string
          description: Skill shape
          enum:
            - document
            - folder
        name:
          type: string
          description: From the SKILL.md frontmatter, or the document/folder name
        description:
          type: string
          description: >-
            From the SKILL.md frontmatter, or the summary. Truncated to 1024
            chars.
        tags:
          description: Category tags
          type: array
          items:
            type: string
        projectId:
          type: string
          description: Project ID, when the skill is scoped
        readCount:
          type: number
          description: Times the knowledge tools read this skill
        linkedAgentsCount:
          type: number
          description: Agents linking this skill. Only returned when `limit` is set.
        linkedAssistantsCount:
          type: number
          description: Assistants linking this skill. Only returned when `limit` is set.
        installCount:
          type: number
          description: Active CLI installs. Only returned when `limit` is set.
        github:
          type: object
          description: >-
            Present when the folder-skill is connected to a GitHub repo folder
            (read-only, materialised live)
      required:
        - id
        - type
        - name
        - description
        - tags
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use JWT token for authentication

````