Skip to main content
GET
/
skills
JavaScript
import Smithery from '@smithery/api';

const client = new Smithery({
  apiKey: process.env['SMITHERY_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const skillListResponse of client.skills.list()) {
  console.log(skillListResponse.id);
}
{
  "skills": [
    {
      "id": "<string>",
      "namespace": "<string>",
      "slug": "<string>",
      "displayName": "<string>",
      "description": "<string>",
      "prompt": "<string>",
      "qualityScore": 123,
      "listed": true,
      "createdAt": "<string>",
      "externalStars": 123,
      "externalForks": 123,
      "totalActivations": 123,
      "uniqueUsers": 123,
      "upvotes": 0,
      "downvotes": 0,
      "reviewCount": 0,
      "categories": [
        "<string>"
      ],
      "servers": [
        "<string>"
      ],
      "gitUrl": "<string>"
    }
  ],
  "pagination": {
    "currentPage": 0,
    "pageSize": 0,
    "totalPages": 0,
    "totalCount": 0
  }
}

Authorizations

Authorization
string
header
required

Smithery API key as Bearer token

Query Parameters

q
string

Search query for full-text and semantic search across skill names and descriptions.

category
string

Filter by skill category (e.g. 'code', 'data', 'web').

namespace
string

Filter by the namespace that owns the skill.

slug
string

Filter by exact skill slug within a namespace. Deprecated: use GET /skills/:namespace/:slug instead.

ownerId
string

Filter by the skill owner's user ID.

page
integer

Page number (1-indexed).

Required range: 1 <= x <= 9007199254740991
pageSize
integer

Number of results per page (default 20, max 100).

Required range: 1 <= x <= 100
topK
integer

Maximum number of candidate results to consider from the search index before pagination.

Required range: 10 <= x <= 500
fields
string

Comma-separated list of fields to include in response

Response

Successful response

skills
object[]
required
pagination
object
required