Skip to main content
Run any Skill in Manus
with one click
REST API

API Documentation

Access SkillsMP Skills data programmatically through our REST API. Supports keyword search plus category, occupation, and detected Skill content-language filters.

Authentication
Endpoints

GET /api/v1/skills/search

Search skills using keywords

ParameterTypeRequiredDescription
qstringSearch query
pagenumber-Page number (default: 1)
limitnumber-Items per page (default: 20, max: 100)
sortBystring-Sort order: stars | recent (default: stars)
categorystring-Filter by category slug (e.g. data-ai, devops).
occupationstring-Filter by SOC occupation slug (e.g. software-developers).
languagestring-Filter by detected Skill content language. Use an ISO code such as en, zh, or ja; mul selects mixed-language content and und selects undetermined content.

Rate Limits

  • *Anonymous (no API key): 50 requests/day, 10 requests/min — keyword search only
  • *Authenticated (with API key): 500 requests/day, 30 requests/min — keyword search
  • *Wildcard searches (e.g. *) are not supported

Every API response includes the following headers to help you track quota usage:

HeaderDescription
X-RateLimit-Daily-LimitYour daily request limit
X-RateLimit-Daily-RemainingRemaining requests for today
Code Examples

Keyword Search

curl -X GET "https://skillsmp.com/api/v1/skills/search?q=SEO" \
  -H "Authorization: Bearer sk_live_your_api_key"

Search with occupation filter

curl -X GET "https://skillsmp.com/api/v1/skills/search?q=automation&occupation=software-developers&language=zh&sortBy=stars" \
  -H "Authorization: Bearer sk_live_your_api_key"
Error Handling

The API uses standard HTTP status codes and returns error details in JSON format.

Error CodeHTTPDescription
INVALID_API_KEY401Invalid API key
MISSING_QUERY400Missing required query parameter
INVALID_OCCUPATION400Unknown occupation slug
INVALID_LANGUAGE400Unknown content language code
DAILY_QUOTA_EXCEEDED429Daily API quota exceeded
INTERNAL_ERROR500Internal server error

Error Response Example:

json
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid"
  }
}