API

Free, read-only JSON over the index. No auth, no API key. CORS open. Be reasonable (~1 req/sec); if you need bulk access, email support@openskillindex.com.

GET /api/search

Search the active skill index. All parameters are optional.

https://openskillindex.com/api/search?q=pdf&ecosystem=claude-code&language=en&max_risk=low&sort=top&limit=100&offset=0

Query parameters

Response shape

{
  "query": "pdf",
  "sort": "top",
  "ecosystem": "claude-code",
  "language": "en",
  "max_risk": null,
  "count": 100,
  "offset": 0,
  "limit": 100,
  "results": [
    {
      "id": "...",
      "slug": "openclaw-openclaw-pdf-extractor",
      "canonical_name": "pdf-extractor",
      "primary_description": "Extract structured text from PDFs...",
      "ecosystems": ["claude-code", "openclaw"],
      "llm_tags": ["pdf-parsing", "data-extraction"],
      "llm_category": "data",
      "language": "en",
      "risk_level": "none",
      "github_stars": 360272,
      "author_github": "openclaw",
      "repo": "openclaw/openclaw",
      "last_modified_at": "2026-04-19T...",
      "last_crawled_at": "2026-04-21T...",
      "skills_in_repo": 76,
      "rank": 0
    }
  ]
}

GET /api/stats

Index-wide aggregates — total skill count, ecosystem / language / risk breakdowns.

https://openskillindex.com/api/stats
{
  "total_skills": 211105,
  "ecosystems": ["claude-code", "openclaw", ...],
  "ecosystem_counts": [{ "name": "claude-code", "count": 120538 }, ...],
  "language_counts": [{ "name": "en", "count": 5118 }, ...],
  "risk_counts": [{ "name": "none", "count": 120512 }, ...]
}

Other endpoints

Stability

Field set may grow (additive only) — never rely on field count. Sort/filter semantics are committed but ranking weights may evolve. Slugs are stable for the lifetime of a skill.