Skip to main content

API Reference

REST API documentation for programmatic access to ZhenSkill

Base URL

All API requests should be made to:

https://www.zhenskill.com/api

Authentication

Most endpoints are publicly accessible. For authenticated endpoints (publishing skills, managing your account), you'll need an API key.

Getting an API Key

  1. Log in to your ZhenSkill account
  2. Go to Dashboard → Settings → API Keys
  3. Generate a new API key

Using Your API Key

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Example Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
https://www.zhenskill.com/api/skills

GET /api/skills

Retrieve a list of all skills.

Request

GET /api/skills

Query Parameters

ParameterTypeDescriptionDefault
categorystringFilter by category slug-
searchstringSearch query-
featuredbooleanShow only featured skillsfalse
sortstringSort by: downloads, rating, datedownloads
limitnumberNumber of results (max 100)20
offsetnumberPagination offset0

Example Request

curl "https://www.zhenskill.com/api/skills?category=video-media&limit=10"

Response

{
"skills": [
{
"id": "uuid",
"name": "video-generator",
"display_name": "Video Generator",
"description": "Generate videos with AI",
"version": "2.1.0",
"author": "ZhenRobotics",
"category_id": "uuid",
"downloads_count": 1523,
"rating_average": 4.8,
"rating_count": 47,
"featured": true,
"tags": ["video", "media", "ai"],
"platform": ["macos", "linux", "windows"],
"requires_api_key": true,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-20T15:45:00Z"
}
],
"total": 50,
"limit": 10,
"offset": 0
}

GET /api/skills/[name]

Get detailed information about a specific skill.

Request

GET /api/skills/[name]

Parameters

ParameterTypeDescription
namestringSkill name (URL path parameter)

Example Request

curl "https://www.zhenskill.com/api/skills/video-generator"

Response

{
"id": "uuid",
"name": "video-generator",
"display_name": "Video Generator",
"description": "Generate videos with AI",
"long_description": "# Video Generator\n\nDetailed markdown...",
"version": "2.1.0",
"author": "ZhenRobotics",
"author_email": "hello@zhenrobotics.com",
"license": "MIT",
"category_id": "uuid",
"categories": {
"name": "Video & Media",
"slug": "video-media"
},
"tags": ["video", "media", "ai"],
"icon_url": "https://cdn.zhenskill.com/icons/video-gen.png",
"repository_url": "https://github.com/ZhenRobotics/video-generator",
"homepage_url": "https://zhenrobotics.com/video-generator",
"download_url": "https://cdn.zhenskill.com/skills/video-generator-2.1.0.tar.gz",
"install_command": "clawhub install video-generator",
"downloads_count": 1523,
"rating_average": 4.8,
"rating_count": 47,
"status": "active",
"featured": true,
"platform": ["macos", "linux", "windows"],
"requires_api_key": true,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-20T15:45:00Z",
"published_at": "2024-01-15T10:30:00Z"
}

Error Response (404)

{
"error": "Skill not found",
"code": "SKILL_NOT_FOUND"
}

GET /api/categories

Get all skill categories.

Request

GET /api/categories

Example Request

curl "https://www.zhenskill.com/api/categories"

Response

{
"categories": [
{
"id": "uuid",
"name": "Video & Media",
"slug": "video-media",
"description": "Video editing and media processing skills",
"icon": "🎬",
"skill_count": 12
},
{
"id": "uuid",
"name": "Development",
"slug": "development",
"description": "Development tools and utilities",
"icon": "💻",
"skill_count": 15
}
]
}

Rate Limits

To ensure fair usage and service stability, the ZhenSkill API implements rate limiting.

Limits

Endpoint TypeUnauthenticatedAuthenticated
Read operations (GET)100 requests/hour1000 requests/hour
Write operations (POST/PUT)N/A100 requests/hour

Rate Limit Headers

Every API response includes rate limit information:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1614556800

Exceeding Rate Limits

If you exceed the rate limit, you'll receive a 429 Too Many Requests response:

{
"error": "Rate limit exceeded",
"code": "RATE_LIMIT_EXCEEDED",
"retry_after": 3600
}

Error Handling

The API uses standard HTTP status codes and returns errors in a consistent format.

HTTP Status Codes

CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Insufficient permissions
404Not Found - Resource doesn't exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error
503Service Unavailable

Error Response Format

All errors follow this format:

{
"error": "Human-readable error message",
"code": "ERROR_CODE",
"details": {
"field": "Additional context (optional)"
}
}

Common Error Codes

CodeDescription
SKILL_NOT_FOUNDRequested skill doesn't exist
INVALID_PARAMETERSRequest parameters are invalid
UNAUTHORIZEDAuthentication required or failed
RATE_LIMIT_EXCEEDEDToo many requests
VALIDATION_ERRORInput validation failed

SDK and Libraries

Official SDKs are available for popular languages:

  • JavaScript/TypeScript: npm install @zhenskill/sdk
  • Python: pip install zhenskill
  • Go: go get github.com/ZhenRobotics/zhenskill-go

JavaScript Example

import { ZhenSkill } from '@zhenskill/sdk'
const client = new ZhenSkill({
apiKey: 'YOUR_API_KEY'
})
// Get all skills
const skills = await client.skills.list()
// Get a specific skill
const skill = await client.skills.get('video-generator')

Webhooks (Coming Soon)

Webhook support is planned for future releases. You'll be able to subscribe to events like:

  • New skill published
  • Skill updated
  • New review posted
  • Download milestone reached

Need Help?

If you have questions about the API: