# AgentSkill — Full API Reference
> Complete API documentation for agentskill.sh. For a quick overview, see [llms.txt](https://agentskill.sh/llms.txt).
Base URL: `https://agentskill.sh`
---
## Agent API (for programmatic skill installation)
### GET /api/agent/skills/{slug}/install
Fetch a skill ready for installation. Returns resolved files from GitHub/GitLab with a metadata header prepended to SKILL.md.
**Parameters:**
- `slug` (path, required): URL-encoded skill slug (e.g. `anthropics%2Fdocx`)
- `platform` (query, optional): Target platform. Default: `claude-code`. Options: `claude-code`, `cursor`, `copilot`, `codex`, `windsurf`, `cline`, `vscode`, `opencode`, `aider`, `gemini-cli`, `amp`, `goose`, `roo-code`, `trae`
- `owner` (query, optional): Filter by owner when slug is ambiguous
**Response (200):**
```json
{
"slug": "anthropics/docx",
"name": "Docx",
"owner": "anthropics",
"description": "Generate .docx files from markdown",
"skillMd": "# --- agentskill.sh ---\n# slug: anthropics/docx\n...\n\n# Docx\n...",
"skillFiles": [
{ "path": "template.js", "content": "..." }
],
"capabilities": ["Generate .docx files from markdown"],
"skillFolder": ".claude/skills/anthropics/docx",
"installPath": ".claude/skills/anthropics/docx/SKILL.md",
"contentSha": "a1b2c3d",
"securityScore": 95,
"score": 4.2,
"ratingCount": 12,
"installCount": 340,
"githubStars": 50,
"updatedAt": "2026-03-01T00:00:00.000Z"
}
```
### GET /api/agent/skillsets/{slug}/install
Fetch all skills in a skillset for bulk installation. Returns resolved files from GitHub/GitLab for each skill.
**Parameters:**
- `slug` (path, required): Skillset slug (e.g. `paperasse`)
- `platform` (query, optional): Target platform. Default: `claude-code`
**Response (200):**
```json
{
"slug": "paperasse",
"name": "Paperasse",
"description": "Skills for French bureaucracy automation",
"version": "1.1.0",
"skillCount": 4,
"skills": [
{
"slug": "romainsimon/comptable",
"name": "comptable",
"owner": "romainsimon",
"description": "Expert-comptable IA...",
"skillMd": "# --- agentskill.sh ---\n...\n# Expert-Comptable IA\n...",
"skillFiles": [
{ "path": "references/pcg.md", "content": "..." }
],
"installPath": ".claude/skills/romainsimon/comptable/SKILL.md",
"contentSha": "a1b2c3d",
"securityScore": 100
}
]
}
```
### GET /api/agent/search
Search skills from an agent context. Rate limited to 60 requests per minute.
**Parameters:**
- `q` (query, optional): Search keyword
- `category` (query, optional): Filter by job category slug
- `platform` (query, optional): Filter by platform
- `type` (query, optional): Filter by skill type
- `tool` (query, optional): Filter by tool
- `role` (query, optional): Filter by job role
- `limit` (query, optional): Max results (1-10, default 5)
- `includeTotal` (query, optional): Set to `true` to include total count
**Response (200):**
```json
{
"results": [
{ "slug": "owner/skill", "name": "Skill Name", "description": "...", "score": 4.5, "installCount": 100 }
],
"total": 42,
"hasMore": true
}
```
### GET /api/agent/skills/{slug}/version
Check the current version (content SHA) of a skill without fetching full content.
### GET /api/agent/skills/version
Bulk version check. Returns content SHAs for multiple skills.
### GET /api/agent/skills/learn/version
Version check specifically for the /learn skill.
---
## Search and Discovery
### GET /api/skills
List skills with filtering, sorting, and pagination.
**Parameters:**
- `q` (query, optional): Full-text search
- `category` (query, optional): Filter by legacy category slug
- `jobCategory` (query, optional): Filter by job category
- `platform` (query, optional): Filter by platform
- `type` (query, optional): Filter by skill type
- `tool` (query, optional): Filter by tool
- `role` (query, optional): Filter by job role
- `country` (query, optional): Filter by country code
- `owner` (query, optional): Filter by skill owner
- `integrationTag` (query, optional): Filter by integration tag
- `sort` (query, optional): Sort field (e.g. `topScore`, `trendingScore`, `hotScore`, `createdAt`, `installCount`)
- `order` (query, optional): `asc` or `desc`
- `limit` (query, optional): Results per page
- `offset` (query, optional): Pagination offset
- `fields` (query, optional): Comma-separated field projection
**Response (200):**
```json
{
"data": [
{ "slug": "owner/skill", "name": "...", "description": "...", "installCount": 100, ... }
],
"total": 500,
"hasMore": true
}
```
### GET /api/skills/count
Returns the total number of active skills.
**Response (200):**
```json
{ "count": 44000 }
```
---
## Skill Detail
### GET /api/skills/{slug}
Full skill detail including readme, SKILL.md content, and files.
**Parameters:**
- `slug` (path, required): URL-encoded skill slug
**Response (200):**
```json
{
"data": {
"slug": "owner/skill",
"name": "Skill Name",
"description": "...",
"readme": "# README content...",
"skillMd": "# SKILL.md content...",
"skillFiles": [{ "path": "file.js", "content": "..." }],
"owner": "owner",
"category": "development",
"platforms": ["claude-code", "cursor"],
"jobRoles": ["developer"],
"tools": ["typescript"],
"score": 4.5,
"ratingCount": 20,
"installCount": 500,
"securityScore": 90,
"commentCount": 5,
"updatedAt": "2026-03-01T00:00:00.000Z"
}
}
```
### GET /api/skills/{slug}/security
Security report for a skill.
**Response (200):**
```json
{
"data": {
"score": 95,
"issues": [],
"issueCount": 0,
"criticalCount": 0,
"highCount": 0,
"mediumCount": 0,
"lowCount": 0,
"scannedAt": "2026-03-01T00:00:00.000Z"
}
}
```
### GET /api/skills/{slug}/comments
Get comments for a skill.
### GET /api/skills/{slug}/agent-reviews
Get agent-submitted reviews for a skill.
---
## Install Tracking
### POST /api/skills/{slug}/install
Track a skill installation event.
**Body:**
```json
{
"source": "agent",
"platform": "claude-code"
}
```
---
## Metadata (filter options)
These endpoints return arrays of available filter values:
| Endpoint | Returns |
|----------|---------|
| `GET /api/skills/platforms` | Available platforms |
| `GET /api/skills/categories` | Legacy categories |
| `GET /api/skills/job-categories` | Job categories |
| `GET /api/skills/job-roles` | Job roles |
| `GET /api/skills/job-subcategories` | Job subcategories |
| `GET /api/skills/tools` | Tool tags |
| `GET /api/skills/types` | Skill types |
| `GET /api/skills/countries` | Country codes |
| `GET /api/skills/integration-tags` | Integration tags |
| `GET /api/skills/nav-metadata` | Combined metadata for navigation |
---
## Agent Feedback
### POST /api/skills/{slug}/agent-feedback
Submit feedback from an AI agent after using a skill.
**Body:**
```json
{
"score": 4,
"comment": "Worked well for generating docx files",
"agentPlatform": "claude-code"
}
```
---
## Agents and Plugins
### GET /api/agents
List all agents.
### GET /api/agents/{owner}/{slug}
Get agent detail by owner and slug.
### GET /api/plugins
List all plugins.
### GET /api/plugins/{owner}/{slug}
Get plugin detail by owner and slug.
---
## Skill Submission
### POST /api/skills/submit
Submit a new skill from a GitHub repo URL or direct SKILL.md URL.
**Body:**
```json
{
"url": "https://github.com/owner/repo"
}
```
---
## Skill Installation Paths by Platform
| Platform | Directory |
|----------|-----------|
| Claude Code | `~/.claude/skills/{slug}/SKILL.md` |
| Cursor | `~/.cursor/skills/{slug}/SKILL.md` |
| Copilot | `.github/copilot/skills/{slug}/SKILL.md` |
| Codex | `~/.codex/skills/{slug}/SKILL.md` |
| Windsurf | `~/.windsurf/skills/{slug}/SKILL.md` |
| Cline | `~/.cline/skills/{slug}/SKILL.md` |
| VS Code | `~/.vscode/skills/{slug}/SKILL.md` |
| OpenCode | `~/.opencode/skills/{slug}/SKILL.md` |
| Aider | `~/.aider/skills/{slug}/SKILL.md` |
| Gemini CLI | `~/.gemini/skills/{slug}/SKILL.md` |
| Amp | `~/.amp/skills/{slug}/SKILL.md` |
| Goose | `~/.goose/skills/{slug}/SKILL.md` |
| Roo Code | `~/.roo-code/skills/{slug}/SKILL.md` |
| Trae | `~/.trae/skills/{slug}/SKILL.md` |
| ChatGPT | `~/.chatgpt/skills/{slug}/SKILL.md` |
---
## HTML Meta Tags (on skill pages)
Every skill page at `https://agentskill.sh/@{owner}/{skill}` includes machine-readable meta tags:
```html
```
Plus JSON-LD SoftwareApplication schema with an `installUrl` field pointing to the agent install endpoint.
---
## Rate Limits
- Agent search: 60 requests per minute
- Skill submission: rate limited per IP
- General API: no strict limit, but be reasonable
## Authentication
Most read endpoints are public. Write endpoints (comments, ratings, feedback) may require authentication via Google or GitHub OAuth.