API Docs Writer

Write clear, developer-facing API documentation. Use when asked to document an API endpoint, write API reference docs, create a developer guide, or turn a raw spec/Postman collection into documentation. Produces endpoint documentation with descriptions, parameters, request/response examples, and error codes.

Published by @Mohit Aggarwal·from mohitagw15856/pm-claude-skills·0 agent reads / 30d·0 saves·

API Docs Writer Skill

This skill transforms raw API specs, endpoint descriptions, or Postman collections into clean, developer-facing documentation following OpenAPI-adjacent conventions. Output is ready for a developer portal, README, or Notion/Confluence page.

Required Inputs

Ask the user for these if not provided:

  • API or endpoint details (raw spec, Postman export, or verbal description)
  • Auth method (API key / Bearer token / OAuth 2.0 / None)
  • Base URL
  • API version (e.g. v1, v2.3, or "unversioned" — affects deprecation notes and versioning headers)
  • Rate limits (requests per second/minute per token or IP, if known — or "unknown")
  • Audience (internal developers / external partners / public)
  • Output format (Markdown for developer portals and READMEs / Plain prose for Confluence or Notion — note: OpenAPI YAML is not produced by this skill)

Output Format

For each endpoint, produce the following:


[METHOD] /path/to/endpoint

Summary: [One line — what this endpoint does]

Description: [2–4 sentences. When to use this endpoint. What it returns. Any important behaviour to know (pagination, rate limits, async processing, etc.)]

Authentication: [Required / Optional — method]


Request

Headers:

HeaderRequiredDescription
AuthorizationYesBearer <token>
Content-TypeYesapplication/json

Path Parameters:

ParameterTypeRequiredDescription
idstringYesUnique identifier for the resource

Query Parameters:

ParameterTypeRequiredDefaultDescription
limitintegerNo20Max results per page (1–100)
cursorstringNoPagination cursor from previous response

Request Body:

{
  "field_name": "value",
  "another_field": 42
}
FieldTypeRequiredDescription
field_namestringYes[Plain description of what this field does]
another_fieldintegerNo[Description. Include valid range or enum values if applicable]

Response

Success Response: 200 OK

{
  "id": "abc123",
  "status": "active",
  "created_at": "2025-04-01T10:00:00Z"
}
FieldTypeDescription
idstringUnique identifier for the created/retrieved resource
statusstringCurrent status. Enum: active, inactive, pending
created_atISO 8601 stringTimestamp of creation in UTC

Error Codes

Status CodeError CodeDescriptionHow to Resolve
400INVALID_REQUESTRequest body is malformed or missing required fieldsCheck request body against schema above
401UNAUTHORIZEDMissing or invalid authentication tokenVerify your API key or refresh your token
404NOT_FOUNDThe requested resource does not existCheck the ID in the path parameter
429RATE_LIMITEDToo many requestsBack off and retry after Retry-After header value
500INTERNAL_ERRORUnexpected server errorRetry with exponential backoff; contact support if persists

Code Examples

Produce examples in at least 2 languages relevant to the audience (default: cURL + Python):

cURL:

curl -X POST https://api.example.com/v1/endpoint \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"field_name": "value"}'

Python:

import requests

response = requests.post(
    "https://api.example.com/v1/endpoint",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    json={"field_name": "value"}
)
data = response.json()

Quality Checks

  • Every parameter is documented (type, required/optional, description)
  • Response fields are fully documented with types
  • All relevant error codes are listed with resolution guidance
  • Error codes cover at minimum: 400 (bad request), 401/403 (auth), 404 (not found), 429 (rate limited), 500 (server error) — or explicitly note which don't apply to this endpoint
  • Code examples use the actual base URL and a realistic placeholder token — no examples reference undefined variables or "YOUR_ENDPOINT" outside the snippet
  • Auth method is clearly stated at the top
  • Enum values are listed where applicable
  • Pagination documented if the endpoint is a list endpoint

Anti-Patterns

  • Do not document only the happy path — every endpoint must have error codes for at least 400, 401/403, 404, 429, and 500
  • Do not use placeholder values like "YOUR_ENDPOINT" or "INSERT_TOKEN" in code examples — use realistic-looking placeholders anchored to the actual base URL
  • Do not skip enum values for fields with a fixed set of accepted values — undocumented enums cause integration bugs
  • Do not omit pagination documentation on list endpoints — developers who miss this will build integrations that silently miss data
  • Do not describe what a field "is" without describing what it "does" — "the ID" is not documentation; "the unique identifier used to retrieve or update this resource" is

Usage Examples

  • "Document this API endpoint: [paste spec or description]"
  • "Turn this Postman collection into developer docs"
  • "Write API reference docs for [endpoint]"
  • "Write a developer guide for our [product] API"

Bundled with this artifact

1 file

Reference files that ship alongside this artifact. Agents pull these in only when the task needs them.

More on the bench

SKILL0

Observability Designer

Design production-ready observability strategies combining metrics, logs, and traces. Includes SLI/SLO design, golden-signals monitoring, alert optimization. Use when adding observability to a new service, refactoring alerting that is too noisy, or designing an SLO program before scaling production load.

software-engineering+2
1
SKILL0

Ros And Ros2 Rules

ROS and ROS2 rules for packages, nodes, launch files, messages, services, actions, simulation, and testing

software-engineering+1
0
SKILL0

Embedded Mcu Stm32 And Hal Rules

Embedded C/C++ rules for MCU, STM32, HAL, interrupts, DMA, memory constraints, and hardware-focused testing

software-engineering+1
0