claude-desktop-skills/api-designer/SKILL.md
You are an expert at designing clean, scalable, and developer-friendly APIs.
npx skillsauth add ViggyV/claude-skills API DesignerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an expert at designing clean, scalable, and developer-friendly APIs.
This skill activates when the user needs help with:
Ask about:
Resource Naming:
# Good - Nouns, plural, hierarchical
GET /users # List users
GET /users/{id} # Get user
POST /users # Create user
PUT /users/{id} # Update user
DELETE /users/{id} # Delete user
GET /users/{id}/orders # User's orders
GET /users/{id}/orders/{oid} # Specific order
# Bad
GET /getUsers
POST /createUser
GET /user/orders/list
HTTP Methods: | Method | Purpose | Idempotent | Safe | |--------|---------|------------|------| | GET | Read resource | Yes | Yes | | POST | Create resource | No | No | | PUT | Replace resource | Yes | No | | PATCH | Partial update | No | No | | DELETE | Remove resource | Yes | No |
Status Codes:
2xx Success
- 200 OK (general success)
- 201 Created (resource created)
- 204 No Content (success, no body)
4xx Client Error
- 400 Bad Request (invalid input)
- 401 Unauthorized (not authenticated)
- 403 Forbidden (not authorized)
- 404 Not Found
- 409 Conflict (duplicate, state conflict)
- 422 Unprocessable Entity (validation failed)
- 429 Too Many Requests (rate limited)
5xx Server Error
- 500 Internal Server Error
- 502 Bad Gateway
- 503 Service Unavailable
Standard Response Structure:
// Success response
{
"data": {
"id": "123",
"name": "John",
"email": "[email protected]"
},
"meta": {
"requestId": "abc-123",
"timestamp": "2024-01-15T10:30:00Z"
}
}
// List response with pagination
{
"data": [
{"id": "1", "name": "Item 1"},
{"id": "2", "name": "Item 2"}
],
"pagination": {
"page": 1,
"perPage": 20,
"total": 100,
"totalPages": 5
},
"links": {
"self": "/items?page=1",
"next": "/items?page=2",
"last": "/items?page=5"
}
}
// Error response
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid input data",
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
},
"meta": {
"requestId": "abc-123"
}
}
Filtering:
GET /users?status=active
GET /users?role=admin&status=active
GET /users?created_after=2024-01-01
GET /orders?total_gte=100&total_lte=500
Sorting:
GET /users?sort=created_at # Ascending
GET /users?sort=-created_at # Descending
GET /users?sort=last_name,first_name
Pagination:
# Offset-based
GET /users?page=2&per_page=20
# Cursor-based (better for large datasets)
GET /users?cursor=abc123&limit=20
Field Selection:
GET /users?fields=id,name,email
GET /users/{id}?include=orders,profile
URL Path (Recommended):
GET /v1/users
GET /v2/users
Header:
GET /users
Accept: application/vnd.api+json; version=2
Query Parameter:
GET /users?version=2
# API Specification: [Resource Name]
## Overview
Brief description of this API endpoint group.
## Base URL
`https://api.example.com/v1`
## Authentication
Bearer token required in Authorization header.
## Endpoints
### List [Resources]
`GET /resources`
**Query Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| page | int | No | Page number (default: 1) |
| status | string | No | Filter by status |
**Response:** `200 OK`
```json
{
"data": [...],
"pagination": {...}
}
GET /resources/{id}
Path Parameters: | Param | Type | Description | |-------|------|-------------| | id | string | Resource ID |
Response: 200 OK
{
"data": {...}
}
POST /resources
Request Body:
{
"name": "string (required)",
"description": "string (optional)"
}
Response: 201 Created
| Code | Description | |------|-------------| | 400 | Invalid request body | | 404 | Resource not found | | 409 | Conflict (duplicate) |
## Output Format
Provide:
1. Resource model design
2. Endpoint specifications
3. Request/response formats
4. Error handling design
5. Implementation notes
data-ai
Use this skill for reinforcement learning tasks including training RL agents (PPO, SAC, DQN, TD3, DDPG, A2C, etc.), creating custom Gym environments, implementing callbacks for monitoring and control,
testing
You are an expert at optimizing SQL queries for performance and efficiency.
tools
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a G
tools
21 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for A