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

# List skills for local agents

> List the Effective skills the caller can install in an agent on their own computer. A skill is a folder of instructions, a SKILL.md and the references and scripts it uses, that agents such as Claude Code, Codex and Cursor load from disk. Effective's skills use the Effective MCP server, so connect it in the same agent.

Ordered by ID. Uses cursor pagination; repeat every other query parameter with nextCursor. Compare each contentHash with the one stored at install to find skills to download again with downloadSkill. Free, read-only and safe to retry.



## OpenAPI

````yaml /openapi.json get /skills
openapi: 3.0.3
info:
  title: Effective API
  version: 2.0.0
  description: The public Effective REST API. Authenticate using an Effective API key.
servers:
  - url: https://api.canary.effectiveai.app/api/v2
    description: Canary
security:
  - bearerAuth: []
paths:
  /skills:
    get:
      tags:
        - Skills
      summary: List skills for local agents
      description: >-
        List the Effective skills the caller can install in an agent on their
        own computer. A skill is a folder of instructions, a SKILL.md and the
        references and scripts it uses, that agents such as Claude Code, Codex
        and Cursor load from disk. Effective's skills use the Effective MCP
        server, so connect it in the same agent.


        Ordered by ID. Uses cursor pagination; repeat every other query
        parameter with nextCursor. Compare each contentHash with the one stored
        at install to find skills to download again with downloadSkill. Free,
        read-only and safe to retry.
      operationId: listSkills
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
            description: Skills per page, 1-100.
          required: false
          description: Skills per page, 1-100.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 8192
            description: >-
              Opaque nextCursor from this operation. Repeat every other query
              parameter unchanged; a cursor from a different query returns
              invalid_cursor.
          required: false
          description: >-
            Opaque nextCursor from this operation. Repeat every other query
            parameter unchanged; a cursor from a different query returns
            invalid_cursor.
          name: cursor
          in: query
        - schema:
            type: string
            enum:
              - effective
            description: Only skills from this source.
          required: false
          description: Only skills from this source.
          name: source
          in: query
        - schema:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            description: Only the skill with exactly this name.
            example: effective
          required: false
          description: Only the skill with exactly this name.
          name: name
          in: query
      responses:
        '200':
          description: Served skills; nextCursor is null on the last page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/V2Skill'
                  nextCursor:
                    type: string
                    nullable: true
                    description: Cursor for the next page, or null on the last page.
                required:
                  - data
                  - nextCursor
                additionalProperties: false
        '400':
          description: Invalid query or cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: Credential not permitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2Skill:
      type: object
      properties:
        id:
          type: string
          maxLength: 74
          pattern: ^effective:[a-z0-9]+(?:-[a-z0-9]+)*$
          description: >-
            Skill ID: its source and name, such as `effective:effective`. Stable
            while the skill keeps its name.
          example: effective:effective
        name:
          type: string
          maxLength: 64
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          description: >-
            Skill name, as its SKILL.md frontmatter declares it: lowercase words
            joined by hyphens. Install the skill in a folder of this name, such
            as `~/.claude/skills/<name>/`.
          example: effective
        description:
          type: string
          description: >-
            The SKILL.md frontmatter description: what the skill does and when
            to use it.
        source:
          type: string
          enum:
            - effective
          description: 'Where the skill comes from. `effective`: Effective''s own skills.'
        contentHash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
          description: >-
            Hash of the skill folder's file paths and bytes. It changes exactly
            when the skill's content changes, so a client that stored it can
            tell whether its copy is current. The ETag of downloadSkill is this
            value, quoted.
        fileCount:
          type: integer
          minimum: 1
          description: Files in the skill folder, SKILL.md included.
        sizeBytes:
          type: integer
          minimum: 0
          description: Total size of those files, in bytes.
      required:
        - id
        - name
        - description
        - source
        - contentHash
        - fileCount
        - sizeBytes
      additionalProperties: false
    V2CodedError:
      allOf:
        - $ref: '#/components/schemas/V2Error'
        - type: object
          properties:
            code:
              type: string
              minLength: 1
              description: Stable error code. Clients must tolerate unknown future codes.
            details:
              type: array
              items:
                type: object
                properties:
                  location:
                    type: string
                    enum:
                      - path
                      - query
                      - header
                      - body
                  path:
                    type: array
                    items:
                      type: string
                      maxLength: 64
                    maxItems: 12
                  code:
                    type: string
                    enum:
                      - required
                      - invalid_type
                      - invalid_value
                      - unknown_field
                  message:
                    type: string
                    minLength: 1
                    maxLength: 200
                required:
                  - location
                  - path
                  - code
                  - message
              minItems: 1
              maxItems: 20
              description: Bounded safe validation issues; may omit some invalid fields.
            requestId:
              type: string
              minLength: 1
              maxLength: 128
              description: >-
                Existing server correlation for this HTTP attempt, when
                available.
            dataset:
              type: string
              enum:
                - naic
                - osha
              description: Dataset needed for dataset_not_enabled.
            businessCode:
              type: string
              description: The rater’s own refusal code, for business_rejection.
            violations:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    description: Authored or built-in constraint code
                  message:
                    type: string
                    description: Authored message for the failed constraint
                  path:
                    type: string
                    description: Input path of the offending value; empty for the request
                  value:
                    nullable: true
                    description: Offending input value, size-bounded by the runtime
                  constraint:
                    type: string
                    description: The constraint the value failed, as text
                  cite:
                    type: string
                    nullable: true
                    description: >-
                      Filing citation of the constraint, when the source cites
                      one
                required:
                  - code
                  - message
                  - path
                  - value
                  - constraint
                  - cite
                additionalProperties: false
              maxItems: 256
              description: >-
                Each input constraint the submission failed, for invalid_inputs
                and business_rejection.
            violationsTruncated:
              type: boolean
              description: >-
                True when the rater reported more violations than violations
                holds.
            executionId:
              type: string
              description: >-
                The recorded execution of a failed rating, for rater rating
                failures.
            accessUrl:
              type: string
              nullable: true
              format: uri
              description: >-
                Where to add the product to your account, for
                product_access_required.
          required:
            - code
    V2Error:
      type: object
      properties:
        error:
          type: string
          minLength: 1
          description: Human-readable explanation of the failure.
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Effective API key. Send Authorization: Bearer sk-eai-...'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.