Free, public REST API for accessing the Skills Playground directory. No authentication required. CORS enabled for all origins.
/api/chat and /api/import only. Public read endpoints are unlimited.GET /v1/skillsGET /v1/skills/:slugGET /v1/mcpsGET /v1/mcps/:slugGET /v1/statsGET /healthReturns a paginated list of skills, sorted by install count (descending).
| Param | Type | Description |
|---|---|---|
page | integer optional | Page number. Default: 1 |
limit | integer optional | Results per page, 1–100. Default: 20 |
category | string optional | Filter by category slug, e.g. frontend |
tag | string optional | Filter by tag, e.g. react |
q | string optional | Search name and description |
curl "https://skillsplayground.com/api/v1/skills?category=frontend&limit=5"
{
"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
}
}
Returns a single skill by its URL slug.
curl "https://skillsplayground.com/api/v1/skills/frontend-design"
{
"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/..."
}
}
404 with {"error": "Skill not found"} if the slug doesn't match.Returns a paginated list of MCP servers, sorted by official status and install count.
| Param | Type | Description |
|---|---|---|
page | integer optional | Page number. Default: 1 |
limit | integer optional | Results per page, 1–100. Default: 20 |
category | string optional | Filter by category slug, e.g. database |
transport | string optional | Filter by transport type: stdio, sse, or streamable-http |
curl "https://skillsplayground.com/api/v1/mcps?category=database&limit=5"
{
"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
}
}
Returns a single MCP server by its URL slug.
curl "https://skillsplayground.com/api/v1/mcps/supabase-mcp"
404 with {"error": "MCP server not found"} if the slug doesn't match.Aggregate statistics for the entire directory. Cached for 5 minutes.
curl "https://skillsplayground.com/api/v1/stats"
{
"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"
}
}
Simple health check endpoint. Returns a timestamp.
curl "https://skillsplayground.com/api/health"
// { "status": "ok", "timestamp": "2026-02-26T12:00:00.000Z" }
Embeddable SVG badges for READMEs and websites. Cached for 1 hour.


Shows total skills and installs for a GitHub owner.

