Claude Code Skills·Claude Skills·The open SKILL.md registry for Claude
ClaudSkills › API

Public API

Read-only REST over the open Claude Code skill catalog. 69,369+ SKILL.md files, no auth, CORS-open, edge-cached. OpenAPI 3.1 spec at /api/v1/openapi.json.

Status: v1 (stable). The catalog data is licensed CC BY 4.0 — free for any use including commercial, attribution required. Per-skill SKILL.md license is separate; check each skill's license field before redistributing.

Quick start

Every endpoint is GET-only, JSON, no auth, CORS open. Hit any URL straight from a browser, curl, or an LLM tool-call:

curl https://claudskills.com/api/v1/skills?limit=5
curl https://claudskills.com/api/v1/skills/seo
curl https://claudskills.com/api/v1/categories
curl https://claudskills.com/api/v1/openapi.json

Or in JavaScript:

const r = await fetch('https://claudskills.com/api/v1/skills?category=engineering&limit=20');
const {data, next, total} = await r.json();
// data: array of Skill objects; next: URL for the next page (null if last)

Endpoints

GET/api/v1/
Discovery doc — lists all endpoints with descriptions, query parameter cheatsheet, and rate-limit notes.
GET/api/v1/skills
Paginated skill list. Returns {data, next, total, limit, offset}. Default limit 50, max 200.
limit
1–200, default 50
offset
0-based
category
engineering, security, growth, sales, content, science, product, tools, ads, general
tag
e.g. lang:python
daily_eligible
true to filter to the daily-eligible bucket only
GET/api/v1/skills/{slug}
Single skill detail. Returns a Skill object. 404 if not found.
GET/api/v1/categories
Category list with counts, sorted by count descending. Each entry has a url field pointing at the category hub page.
GET/api/v1/categories/{cat}
Category detail + paginated skills. Same pagination contract as /skills.
GET/api/v1/tags
Top 200 tags by count, sorted descending. Each entry: tag, count, slug (URL-safe form for /tag/<slug>/ pages).
GET/api/v1/stats
Catalog stats: totals, category breakdown, miner schedule, last refresh timestamp. Mirrors /data/stats.json with API context.
GET/api/v1/openapi.json
OpenAPI 3.1 spec — paths, query parameters, response shapes, Skill + Page schemas. Pasteable into Swagger UI, Postman, Stoplight, or any other OpenAPI tool.

Skill schema

Every Skill object in API responses has this stable shape:

{
  "slug":           "seo",
  "name":           "SEO",
  "description":    "Run a broad SEO audit across…",
  "category":       "general",
  "subcategory":    "general-misc",
  "tags":           ["type:audit"],
  "daily_eligible": false,
  "featured":       false,
  "author":         null,
  "author_url":     null,
  "license":        null,
  "url":            "https://claudskills.com/skills/seo/",
  "og_image":       "https://claudskills.com/og/seo.png"
}

Fields will only be added in v1 — never removed or renamed. Breaking changes will mount at /api/v2/ in parallel with v1 still running.

Caching & rate limits

There is no enforced per-key rate limit. The Worker is fronted by Cloudflare's edge cache with a 1-hour TTL, so even high-volume callers hit the upstream catalog rarely. The catalog itself only changes daily (01:00 local miner run; typically settled by ~05:00 local).

Every response carries Cache-Control: public, max-age=3600, s-maxage=3600. Please respect it on your end — repeating identical requests inside the TTL window is wasted bandwidth.

If you need to enumerate the full catalog (all ~69,000 skills), prefer the bulk dataset at github.com/claudskills/catalog-public — one daily-refreshed file in JSON, NDJSON, CSV, and Parquet formats, plus an Atom feed of recent additions. Cheaper, faster, and Git-versioned.

The API is one of four programmatic surfaces over the same catalog:

Plus two browsing-flavoured embed surfaces:

License & attribution

The catalog data (what the API returns) is licensed CC BY 4.0 — free for any use including commercial, attribution required. The minimal attribution is a link to claudskills.com somewhere near where the data is displayed.

The per-skill SKILL.md content is the property of the original author and carries whatever license the author chose. Each Skill object's license field reflects what the upstream repo declares. If a skill's license is null we couldn't determine it — treat as restrictive until you check the upstream repository.

We do not require notification of API use, registration, or revenue share. If you build something interesting on top of the API, we'd love to hear about it: [email protected].

Versioning

The API is mounted at /api/v1/ with a stable contract — fields will only be added, never removed or renamed within v1. Breaking changes will mount at /api/v2/ in parallel. We will announce v2 at least 6 months before sunsetting v1, with a clear migration guide and dual-running period.

FAQ

Do I need an API key?

No. Read-only and CORS-open by design. Anyone can call it from the browser, curl, a server, or an LLM tool-call without authentication. Please cache responses — the upstream catalog only refreshes daily and the worker is edge-cached for an hour.

Is there a rate limit?

No enforced per-key limit. The 1-hour edge cache makes the upstream catalog effectively immune to high-volume callers. If you need to enumerate the full catalog, prefer the bulk dataset at catalog-public.

Can I use this in a commercial product?

Yes — catalog data is CC BY 4.0. Attribute ClaudSkills with a link to claudskills.com somewhere near where the data appears. Per-skill SKILL.md license is separate; check each skill's license field before redistributing the SKILL.md content itself.

When does the catalog refresh?

Daily at 01:00 local time. Typically settled by ~05:00 local. New skills land on the API the same day they're discovered. The /api/v1/stats endpoint surfaces the current schedule and last refresh timestamp.

Can I get an SDK?

The API surface is small enough that hand-written fetch calls are usually clearer than an SDK. If you maintain a Claude Code skill that wraps this API as a tool-call, ping us — we'll link it from the related-surfaces section.

What about webhooks / pushes?

Not in v1. The daily refresh cadence makes polling cheap (the bulk dataset's Atom feed is the most cost-effective push proxy — subscribe to it for new-skill notifications). If polling for new skills becomes a common need, we'll consider WebSub on a future major version.