API Reference
OpenSkill REST API overview
Base URL
All API requests are made to:
https://openskill.dev/apiAuthentication
Most API endpoints require authentication. Pass your access token in theAuthorization header:
Authorization: Bearer <access_token>See the Authentication page for details on obtaining tokens via the device auth flow.
Rate Limiting
API requests are rate-limited to prevent abuse. Current limits:
| Endpoint | Limit | Window |
|---|---|---|
| Search | 60 requests | per minute |
| Publish | 10 requests | per minute |
| Download | 120 requests | per minute |
Rate limit headers (
X-RateLimit-Remaining, X-RateLimit-Reset) are included in all responses.Error Responses
Errors follow a consistent JSON format:
Error response
{
"error": {
"code": "NOT_FOUND",
"message": "Skill not found"
}
}| Status | Description |
|---|---|
| 400 | Bad request — invalid parameters |
| 401 | Unauthorized — missing or invalid token |
| 404 | Not found |
| 429 | Rate limited |
Endpoints Overview
| Method | Path | Description |
|---|---|---|
| POST | /api/auth/device/code | Request device code |
| POST | /api/auth/device/token | Exchange code for token |
| POST | /api/auth/refresh | Refresh access token |
| POST | /api/auth/revoke | Revoke refresh token |
| GET | /api/skills | Search skills |
| GET | /api/skills/discover | Discover skills from Git sources |
| GET | /api/skills/[slug] | Get skill details |
| POST | /api/skills/publish/init | Initialize publish (get upload URL) |
| POST | /api/skills/publish/complete | Complete publish after upload |
| GET | /api/skills/[slug]/download | Download skill content |
| GET | /api/skills/[slug]/versions | List skill versions |
| POST | /api/skills/audit | Run security audit |
| POST | /api/telemetry | Report telemetry events |