Install
$ agentstack add skill-spacefrontiers-ai-overmind-api-documenter ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
API Documenter
Generate clear, comprehensive API documentation that developers will love to use.
Instructions
When creating API documentation:
- Analyze the API: Understand endpoints, methods, and data structures
- Document Systematically: Follow a consistent structure for each endpoint
- Include Examples: Provide request and response examples
- Explain Clearly: Use clear language, avoid jargon
- Cover Edge Cases: Document error responses and special cases
- Keep Updated: Ensure documentation matches current implementation
Documentation Structure
API Overview
- Base URL
- Authentication method
- Rate limiting
- Common headers
- API versioning
Endpoint Documentation
For each endpoint, include:
Endpoint Header
METHOD /path/to/endpoint
Description
Brief explanation of what the endpoint does.
Authentication
Required authentication level or method.
Request Parameters
Path Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | id | integer | Yes | User ID |
Query Parameters | Name | Type | Required | Description | Default | |------|------|----------|-------------|---------| | limit | integer | No | Results per page | 10 | | offset | integer | No | Results offset | 0 |
Request Body (for POST/PUT/PATCH)
{
"field": "type - description",
"required_field": "string - required description"
}
Response
Success Response (200 OK)
{
"status": "success",
"data": {
"id": 1,
"name": "John Doe"
}
}
Error Responses
400 Bad Request- Invalid input401 Unauthorized- Authentication required404 Not Found- Resource not found500 Internal Server Error- Server error
Example Request
curl -X GET "https://api.example.com/v1/users/123" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
// JavaScript
fetch('https://api.example.com/v1/users/123', {
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
# Python
import requests
response = requests.get(
'https://api.example.com/v1/users/123',
headers={'Authorization': 'Bearer YOUR_TOKEN'}
)
Example Response
{
"status": "success",
"data": {
"id": 123,
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-01T00:00:00Z"
}
}
Example Documentation
Complete Endpoint Example
## Get User by ID
GET /v1/users/{id}
Retrieves a single user by their unique identifier.
### Authentication
Requires Bearer token authentication.
### Path Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| id | integer | Yes | Unique user identifier |
### Response
**200 OK**
\`\`\`json
{
"id": 123,
"name": "John Doe",
"email": "john@example.com",
"role": "admin",
"created_at": "2024-01-01T00:00:00Z"
}
\`\`\`
**404 Not Found**
\`\`\`json
{
"error": "User not found",
"code": "USER_NOT_FOUND"
}
\`\`\`
### Example Request
\`\`\`bash
curl -X GET "https://api.example.com/v1/users/123" \\
-H "Authorization: Bearer YOUR_TOKEN"
\`\`\`
Guidelines
Be Comprehensive
- Document all endpoints
- Include all parameters
- List all possible responses
- Provide multiple examples
Be Clear
- Use simple, direct language
- Define technical terms
- Include context and purpose
- Explain business logic when relevant
Be Consistent
- Use same format for all endpoints
- Consistent naming conventions
- Standard response structures
- Uniform example style
Be Practical
- Real-world examples
- Common use cases
- Error handling patterns
- Best practices
OpenAPI/Swagger Generation
When generating OpenAPI 3.0 specification:
openapi: 3.0.0
info:
title: API Name
version: 1.0.0
description: API description
servers:
- url: https://api.example.com/v1
paths:
/users/{id}:
get:
summary: Get user by ID
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/User'
components:
schemas:
User:
type: object
properties:
id:
type: integer
name:
type: string
Common Sections to Include
Getting Started
- Quick start guide
- Authentication setup
- First API call
- Common patterns
Reference
- All endpoints
- Data models
- Error codes
- Rate limits
Guides
- Authentication guide
- Pagination guide
- Filtering guide
- Webhooks guide
Resources
- SDKs and libraries
- Postman collection
- Code examples
- Support information
Tips for Great API Docs
- Test Your Examples: Ensure all code examples actually work
- Version Changes: Document what changed between versions
- Search Friendly: Use clear headings and keywords
- Interactive: Consider tools like Swagger UI or Postman
- Keep Updated: Document changes immediately
- Get Feedback: Ask developers what's unclear
- Show Errors: Don't just show happy path
- Performance Notes: Document timeouts, limits, best practices
Research-Backed Best Practices
The Evolution from REST to GraphQL
Recent research (Addanki, 2025; Zanevych, 2024) reveals important trends in API design:
REST remains dominant for public APIs but faces challenges:
- Over-fetching/under-fetching: Clients receive too much or too little data
- Multiple round trips: Complex queries require multiple endpoint calls
- Rigid structure: Predetermined endpoints limit flexibility
GraphQL addresses REST limitations:
- Schema-driven approach: Clients specify exactly what data they need
- Single request: Complex data requirements satisfied in one call
- Improved developer experience: Self-documenting through introspection
- Growing adoption: Becoming market leader for dynamic, data-heavy applications
Practical implications:
- REST for simple, cacheable, public-facing APIs
- GraphQL for complex, dynamic applications with varied client needs
- Consider hybrid approaches for existing systems
API Documentation and Developer Experience
Research on bioinformatics APIs (Ireland & Martin, 2021) demonstrates GraphQL benefits:
- Self-documenting nature: GraphQL schemas make APIs explorable without external docs
- Complex relationships: Graph structure naturally represents interconnected data
- Single query flexibility: Any hierarchy or nesting level accessible in one request
- Better than REST for complex domains: Reduces need for extensive documentation
Key Insight: Modern API documentation should embrace interactive exploration. GraphQL's introspection and tools like GraphQL Playground reduce documentation burden while improving developer experience.
Performance Considerations
Comparative studies (Seabra et al., 2019; Wittern et al., 2017) show:
- REST advantage: Better caching, mature tooling, predictable performance
- GraphQL advantage: Reduced network overhead for complex queries, flexible data fetching
- Trade-off: GraphQL queries can be more expensive server-side but reduce round trips
Documentation Recommendation: Always document query complexity, rate limits, and performance characteristics specific to your API design.
References
- Addanki, S. (2025). "Architectural Shifts in API Design: The Progression from SOAP to REST and GraphQL". International Journal on Science and Technology, 16(2).
- Zanevych, O. (2024). "Advancing Web Development: A Comparative Analysis of Modern Frameworks for REST and GraphQL Back-End Services". Grail of Science, 37, 216-228.
- Ireland, S.M., & Martin, A.C.R. (2021). "GraphQL for the delivery of bioinformatics web APIs and application to ZincBind". Bioinformatics Advances, 1(1).
- Seabra, M., Nazário, M.F., & Pinto, G. (2019). "REST or GraphQL? A performance comparative study". Proceedings of the XIII Brazilian Symposium on Software Components, Architectures, and Reuse.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: SpaceFrontiers
- Source: SpaceFrontiers/ai-overmind
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.