Six JSON endpoints give you every published skill in the directory. No key, no signup, no quota
dashboard. Requests are rate limited per IP address, and every response is CORS enabled so browser
code can call it directly.
Every endpoint is a real .php file under that origin. There is no versioned path prefix and no
rewriting, so the URL you call is the file that answers.
Returns a ZIP containing SKILL.md and any files the skill ships with. Requires a signed in session, so it is a browser endpoint rather than a server to server one.
Rate limit: 10 downloads per minute per IP address.
Needs a signed in browser session, so it cannot be run from this page.
Valid slug values
These are the live values right now, taken from the same index the endpoints read. Legacy
spellings resolve to the canonical slug automatically, so an old integration keeps working.
const res = await fetch(
"https://agentskillsource.com/api/search.php?q=" + encodeURIComponent(term) + "&limit=8"
);
const { data } = await res.json();
// each item has: id, slug, name, url, shortDescription, tags
Page through every skill
let offset = 0;
const limit = 100;
for (;;) {
const res = await fetch(
"https://agentskillsource.com/api/skills.php?limit=" + limit + "&offset=" + offset
);
const { data, meta } = await res.json();
handle(data);
if (!meta.hasMore) break;
offset += limit;
}
At 100 per page and 60 requests per minute, the full directory takes well under a minute.
Cache the result rather than re-fetching it on every page load.
Embed a badge
Link your repository to its listing so readers can find the install instructions. Copy one of
these into your README and replace the slug with your own.
<a href="https://agentskillsource.com/skill.php?slug=moltbb-agent-diary-publish">View on Agent Skill Source</a>
The shields.io image is served by shields.io, not by us. If you would rather not depend on a
third party, use the plain HTML link above.
Questions
Do I need an API key?
No. Every read endpoint is public and needs no key. Requests are rate limited per IP
address instead, which is why caching matters more than authentication here.
Can I use this commercially?
Yes. Attribute Agent Skill Source and link back to the skill page. Each skill also
carries its own upstream licence, returned in the single skill response, and that
licence governs the skill content itself.
Is there a webhook or a change feed?
Not yet. Poll the list endpoint with sort=newest and compare the
id values against what you already have. Once a day is plenty, because the
directory is curated rather than continuously written.
Why do the endpoints end in .php?
Because that is the file that answers the request. The site has no URL rewriting,
so every address you see is the real path on disk. That removes an entire class of
routing bugs, and it means an endpoint URL can never quietly change meaning.
Are the old /api/v1/ paths still supported?
They redirect. /api/v1/skills returns a 301 to
/api/skills.php. Most HTTP clients follow that automatically, but update
your integration to the direct URL so you save a round trip.
Building something with this?
Tell us what you are building and what is missing from the API. That is how the next endpoint gets chosen.