Generate comprehensive, professional API documentation following industry best practices
API Documentation Guidelines
When generating API documentation, create clear, comprehensive, and developer-friendly documentation.
Documentation Structure
Every API documentation should include:
Overview - What the API does, who it's for
Authentication - How to authenticate (API keys, OAuth, JWT)
Base URL - The root endpoint URL
Endpoints - Detailed endpoint documentation
Request/Response Examples - Real, working examples
Error Codes - Complete error reference
Rate Limiting - Usage limits and quotas
Versioning - API version strategy
Changelog - Version history
Endpoint Documentation Format
For each endpoint, document:
### GET /api/v1/users/{id}
Retrieves a single user by their unique identifier.
**Authentication Required**: Yes (Bearer token)
**Path Parameters**:
-`id` (integer, required): The unique user identifier
**Query Parameters**:
-`include` (string, optional): Comma-separated list of related resources to include
- Options: `orders`, `preferences`, `address` - Example:
:
(required)
(optional, default)
(200 OK):
## Best Practices
### 1. Use Clear, Descriptive Language
- Write for developers who are new to your API
- Avoid jargon unless it's industry-standard
- Explain the "why" not just the "what"
### 2. Provide Working Examples
- Use realistic data in examples
- Include complete request/response cycles
- Show common use cases and patterns
### 3. Document Edge Cases
- What happens with missing optional fields?
- How are null values handled?
- What are the validation rules?
### 4. Error Documentation
- List all possible error codes
- Explain what causes each error
- Show how to resolve common errors
```markdown
## Error Codes
| Code | Message | Description | Resolution |
|------|---------|-------------|------------|
| 400 | Bad Request | Invalid request syntax or parameters | Check request body against schema |
| 401 | Unauthorized | Missing or invalid authentication | Include valid Bearer token in Authorization header |
| 403 | Forbidden | Authenticated but lacking permissions | Contact admin to verify account permissions |
| 404 | Not Found | Resource doesn't exist | Verify the resource ID is correct |
| 422 | Unprocessable Entity | Validation failed | Review validation errors in response body |
| 429 | Too Many Requests | Rate limit exceeded | Wait before retrying; check X-RateLimit-Reset header |
| 500 | Internal Server Error | Server-side error occurred | Retry request; contact support if persists |
5. Authentication Examples
Show multiple authentication methods if supported:
## OpenAPI/Swagger Integration
When appropriate, include OpenAPI specification:
```yaml
openapi: 3.0.0
info:
title: User Management API
version: 1.0.0
description: RESTful API for managing user accounts
paths:
/api/v1/users/{id}:
get:
summary: Get user by ID
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: User found
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
description: User not found
## Changelog### v2.0.0 (2024-03-01)**Breaking Changes**:
-`GET /users` now requires authentication
- Removed deprecated `username` field; use `email` instead
**New Features**:
- Added `PATCH /users/{id}` for partial updates
- New query parameter `sort` for ordering results
**Bug Fixes**:
- Fixed pagination issue with `limit` > 100
### v1.5.0 (2024-02-01)**New Features**:
- Added bulk user creation endpoint `POST /users/bulk`
Rate Limiting Documentation
Be explicit about rate limits:
## Rate Limits
| Tier | Requests/Hour | Requests/Day |
|------|--------------|--------------|
| Free | 100 | 1,000 |
| Pro | 1,000 | 10,000 |
| Enterprise | Unlimited | Unlimited |
**Rate Limit Headers**:
-`X-RateLimit-Limit`: Maximum requests allowed
-`X-RateLimit-Remaining`: Requests remaining in current window
-`X-RateLimit-Reset`: Unix timestamp when limit resets
When rate limited, you'll receive a `429 Too Many Requests` response:
```json
{
"error": "Rate limit exceeded",
"retry_after": 3600
}
## When This Skill Activates
This skill automatically activates when:
- Generating REST API documentation
- Creating README files for API projects
- Writing OpenAPI/Swagger specifications
- Documenting GraphQL APIs
- Creating developer onboarding guides
- Questions about API documentation best practices