Get a week free of Claude Code →

API Documentation

Free, public REST API for accessing the Skills Playground directory. No authentication required. CORS enabled for all origins.

https://skillsplayground.com/api/v1
All responses return JSON. Rate limits apply to /api/chat and /api/import only. Public read endpoints are unlimited.

Endpoints

List Skills

GET /v1/skills

Returns a paginated list of skills, sorted by install count (descending).

Query parameters

ParamTypeDescription
pageinteger optionalPage number. Default: 1
limitinteger optionalResults per page, 1–100. Default: 20
categorystring optionalFilter by category slug, e.g. frontend
tagstring optionalFilter by tag, e.g. react
qstring optionalSearch name and description
Example request
curl "https://skillsplayground.com/api/v1/skills?category=frontend&limit=5"
Response
{
  "source": "https://skillsplayground.com",
  "api_docs": "https://skillsplayground.com/api/",
  "data": [
    {
      "slug": "frontend-design",
      "name": "Frontend Design",
      "description": "Create distinctive, production-grade UIs...",
      "category": "frontend",
      "icon": "🎨",
      "sourceUrl": "https://github.com/...",
      "tags": ["react", "css", "tailwind"],
      "installCommand": "claude install-skill ...",
      "importCount": 142
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 5,
    "total": 890,
    "totalPages": 178
  }
}

Get Skill

GET /v1/skills/:slug

Returns a single skill by its URL slug.

Example request
curl "https://skillsplayground.com/api/v1/skills/frontend-design"
Response
{
  "source": "https://skillsplayground.com",
  "api_docs": "https://skillsplayground.com/api/",
  "data": {
    "slug": "frontend-design",
    "name": "Frontend Design",
    "description": "Create distinctive, production-grade UIs...",
    "category": "frontend",
    "tags": ["react", "css", "tailwind"],
    "installCommand": "claude install-skill ...",
    "importCount": 142,
    "sourceUrl": "https://github.com/..."
  }
}
Returns 404 with {"error": "Skill not found"} if the slug doesn't match.

List MCP Servers

GET /v1/mcps

Returns a paginated list of MCP servers, sorted by official status and install count.

Query parameters

ParamTypeDescription
pageinteger optionalPage number. Default: 1
limitinteger optionalResults per page, 1–100. Default: 20
categorystring optionalFilter by category slug, e.g. database
transportstring optionalFilter by transport type: stdio, sse, or streamable-http
Example request
curl "https://skillsplayground.com/api/v1/mcps?category=database&limit=5"
Response
{
  "source": "https://skillsplayground.com",
  "api_docs": "https://skillsplayground.com/api/",
  "data": [
    {
      "slug": "supabase-mcp",
      "name": "supabase-mcp",
      "title": "Supabase MCP Server",
      "description": "Connect AI agents to Supabase...",
      "category": "database",
      "icon": "🗄️",
      "repositoryUrl": "https://github.com/...",
      "websiteUrl": "https://supabase.com",
      "packageName": "@supabase/mcp-server",
      "packageRegistry": "npm",
      "transportType": "stdio",
      "tags": ["postgres", "realtime"],
      "installCommand": "npx ...",
      "isOfficial": true,
      "isVerified": true,
      "importCount": 89
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 5,
    "total": 62,
    "totalPages": 13
  }
}

Get MCP Server

GET /v1/mcps/:slug

Returns a single MCP server by its URL slug.

Example request
curl "https://skillsplayground.com/api/v1/mcps/supabase-mcp"
Returns 404 with {"error": "MCP server not found"} if the slug doesn't match.

Directory Stats

GET /v1/stats

Aggregate statistics for the entire directory. Cached for 5 minutes.

Example request
curl "https://skillsplayground.com/api/v1/stats"
Response
{
  "source": "https://skillsplayground.com",
  "api_docs": "https://skillsplayground.com/api/",
  "data": {
    "totalSkills": 8642,
    "totalMcps": 62,
    "totalInstalls": 12450,
    "topCategories": [
      { "category": "frontend", "count": 1240 }
    ],
    "topSkills": [
      { "slug": "frontend-design", "name": "Frontend Design", "category": "frontend", "importCount": 142 }
    ],
    "topMcps": [
      { "slug": "supabase-mcp", "name": "supabase-mcp", "category": "database", "importCount": 89 }
    ],
    "updatedAt": "2026-02-26T12:00:00.000Z"
  }
}

Health Check

GET /health

Simple health check endpoint. Returns a timestamp.

curl "https://skillsplayground.com/api/health"
// { "status": "ok", "timestamp": "2026-02-26T12:00:00.000Z" }

Badges

Embeddable SVG badges for READMEs and websites. Cached for 1 hour.

Skill install badge

GET /badges/installs/:slug.svg
Install badge example
![Skills Playground](https://skillsplayground.com/badges/installs/YOUR_SLUG.svg)

MCP install badge

GET /badges/mcp/:slug.svg
MCP badge example
![Skills Playground](https://skillsplayground.com/badges/mcp/YOUR_SLUG.svg)

Author badge

GET /badges/author/:owner.svg

Shows total skills and installs for a GitHub owner.

![Skills Playground](https://skillsplayground.com/badges/author/YOUR_GITHUB_USERNAME.svg)

Featured badge

GET /badges/featured.svg
Featured badge
![Featured on Skills Playground](https://skillsplayground.com/badges/featured.svg)