New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Write clear, developer-facing API documentation

API Docs Writer Skill

by mohitagw15856 · MIT license · ★ 1,395 on GitHub · updated Sep 23

API Docs Writer Skill cover

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.

---
name: api-docs-writer
description: "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."
---

# 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)

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add mohitagw15856/pm-claude-skills --skill api-docs-writer -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/mohitagw15856/pm-claude-skills/tar.gz/f6ca79348c55 \ | tar -xz -C ~/.claude/skills --strip-components=2 pm-claude-skills-f6ca79348c55/skills/api-docs-writer
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/1cedb74a7cd20a5cb565/api-docs-writer.zip" -OutFile "$env:TEMP\api-docs-writer.zip"; Expand-Archive "$env:TEMP\api-docs-writer.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.4 KB
  • references/2 files · 14.2 KB
  • templates/1 file · 712 B
Read the files here
mohitagw15856/f6ca7934 files
SKILL.md
Show the full text175 lines

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:

Header Required Description
Authorization Yes Bearer <token>
Content-Type Yes application/json

Path Parameters:

Parameter Type Required Description
id string Yes Unique identifier for the resource

Query Parameters:

Parameter Type Required Default Description
limit integer No 20 Max results per page (1–100)
cursor string No — Pagination cursor from previous response

Request Body:

{
  "field_name": "value",
  "another_field": 42
}
Field Type Required Description
field_name string Yes [Plain description of what this field does]
another_field integer No [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"
}
Field Type Description
id string Unique identifier for the created/retrieved resource
status string Current status. Enum: active, inactive, pending
created_at ISO 8601 string Timestamp of creation in UTC

Error Codes
Status Code Error Code Description How to Resolve
400 INVALID_REQUEST Request body is malformed or missing required fields Check request body against schema above
401 UNAUTHORIZED Missing or invalid authentication token Verify your API key or refresh your token
404 NOT_FOUND The requested resource does not exist Check the ID in the path parameter
429 RATE_LIMITED Too many requests Back off and retry after Retry-After header value
500 INTERNAL_ERROR Unexpected server error Retry 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()

Deeper Materials

This skill ships with support files — use them when they are available:

  • references/example-first-docs.md — Example-First API Docs: the Rules That Make Docs Usable. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
  • templates/endpoint-entry.md — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.

Scoring Rubric (0–40)

Score any output of this skill before handing it over; 32+ is ship-quality.

Dimension 0 5 10
Parameter completeness Fields listed without types or required/optional flags Tables complete, but descriptions say what a field is, not what it does; enums and ranges missing Every field typed and constrained (enums, ranges, formats), described by behaviour and consequence
Error-path coverage Happy path only — no error table Standard 400/401/404/429/500 rows present but with no resolution guidance Full standard set plus endpoint-specific codes, each with what the developer should do, including unsafe-retry cases
Example runnability Pseudo-code, undefined variables, or "YOUR_ENDPOINT" placeholders Examples exist but aren't copy-paste-runnable or use only one language ≥2 languages, real base URL, obviously-fake placeholder credentials, runnable as pasted
Behavioural candour Async behaviour, pagination, idempotency, and legacy quirks omitted Quirks mentioned in prose but absent from examples and error rows Gotchas documented with the exact requests/responses they produce, including awkward legacy behaviour

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"
1---
2name: api-docs-writer
3description: "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."
4---
5 
6# API Docs Writer Skill
7 
8This 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.
9 
10## Required Inputs
11 
12Ask the user for these if not provided:
13- **API or endpoint details** (raw spec, Postman export, or verbal description)
14- **Auth method** (API key / Bearer token / OAuth 2.0 / None)
15- **Base URL**
16- **API version** (e.g. v1, v2.3, or "unversioned" — affects deprecation notes and versioning headers)
17- **Rate limits** (requests per second/minute per token or IP, if known — or "unknown")
18- **Audience** (internal developers / external partners / public)
19- **Output format** (Markdown for developer portals and READMEs / Plain prose for Confluence or Notion — note: OpenAPI YAML is not produced by this skill)
20 
21## Output Format
22 
23For each endpoint, produce the following:
24 
25---
26 
27## `[METHOD] /path/to/endpoint`
28 
29**Summary:** [One line — what this endpoint does]
30 
31**Description:** [2–4 sentences. When to use this endpoint. What it returns. Any important behaviour to know (pagination, rate limits, async processing, etc.)]
32 
33**Authentication:** [Required / Optional — method]
34 
35---
36 
37### Request
38 
39**Headers:**
40 
41| Header | Required | Description |
42|---|---|---|
43| `Authorization` | Yes | `Bearer <token>` |
44| `Content-Type` | Yes | `application/json` |
45 
46**Path Parameters:**
47 
48| Parameter | Type | Required | Description |
49|---|---|---|---|
50| `id` | string | Yes | Unique identifier for the resource |
51 
52**Query Parameters:**
53 
54| Parameter | Type | Required | Default | Description |
55|---|---|---|---|---|
56| `limit` | integer | No | 20 | Max results per page (1–100) |
57| `cursor` | string | No | — | Pagination cursor from previous response |
58 
59**Request Body:**
60 
61```json
62{
63 "field_name": "value",
64 "another_field": 42
65}
66```
67 
68| Field | Type | Required | Description |
69|---|---|---|---|
70| `field_name` | string | Yes | [Plain description of what this field does] |
71| `another_field` | integer | No | [Description. Include valid range or enum values if applicable] |
72 
73---
74 
75### Response
76 
77**Success Response: `200 OK`**
78 
79```json
80{
81 "id": "abc123",
82 "status": "active",
83 "created_at": "2025-04-01T10:00:00Z"
84}
85```
86 
87| Field | Type | Description |
88|---|---|---|
89| `id` | string | Unique identifier for the created/retrieved resource |
90| `status` | string | Current status. Enum: `active`, `inactive`, `pending` |
91| `created_at` | ISO 8601 string | Timestamp of creation in UTC |
92 
93---
94 
95### Error Codes
96 
97| Status Code | Error Code | Description | How to Resolve |
98|---|---|---|---|
99| `400` | `INVALID_REQUEST` | Request body is malformed or missing required fields | Check request body against schema above |
100| `401` | `UNAUTHORIZED` | Missing or invalid authentication token | Verify your API key or refresh your token |
101| `404` | `NOT_FOUND` | The requested resource does not exist | Check the ID in the path parameter |
102| `429` | `RATE_LIMITED` | Too many requests | Back off and retry after `Retry-After` header value |
103| `500` | `INTERNAL_ERROR` | Unexpected server error | Retry with exponential backoff; contact support if persists |
104 
105---
106 
107### Code Examples
108 
109Produce examples in at least 2 languages relevant to the audience (default: cURL + Python):
110 
111**cURL:**
112```bash
113curl -X POST https://api.example.com/v1/endpoint \
114 -H "Authorization: Bearer YOUR_TOKEN" \
115 -H "Content-Type: application/json" \
116 -d '{"field_name": "value"}'
117```
118 
119**Python:**
120```python
121import requests
122 
123response = requests.post(
124 "https://api.example.com/v1/endpoint",
125 headers={"Authorization": "Bearer YOUR_TOKEN"},
126 json={"field_name": "value"}
127)
128data = response.json()
129```
130 
131---
132 
133## Deeper Materials
134 
135This skill ships with support files — use them when they are available:
136 
137- **`references/example-first-docs.md`** — Example-First API Docs: the Rules That Make Docs Usable. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
138- **`templates/endpoint-entry.md`** — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.
139 
140## Scoring Rubric (0–40)
141 
142Score any output of this skill before handing it over; 32+ is ship-quality.
143 
144| Dimension | 0 | 5 | 10 |
145|---|---|---|---|
146| **Parameter completeness** | Fields listed without types or required/optional flags | Tables complete, but descriptions say what a field *is*, not what it *does*; enums and ranges missing | Every field typed and constrained (enums, ranges, formats), described by behaviour and consequence |
147| **Error-path coverage** | Happy path only — no error table | Standard 400/401/404/429/500 rows present but with no resolution guidance | Full standard set plus endpoint-specific codes, each with what the developer should *do*, including unsafe-retry cases |
148| **Example runnability** | Pseudo-code, undefined variables, or "YOUR_ENDPOINT" placeholders | Examples exist but aren't copy-paste-runnable or use only one language | ≥2 languages, real base URL, obviously-fake placeholder credentials, runnable as pasted |
149| **Behavioural candour** | Async behaviour, pagination, idempotency, and legacy quirks omitted | Quirks mentioned in prose but absent from examples and error rows | Gotchas documented with the exact requests/responses they produce, including awkward legacy behaviour |
150 
151## Quality Checks
152 
153- [ ] Every parameter is documented (type, required/optional, description)
154- [ ] Response fields are fully documented with types
155- [ ] All relevant error codes are listed with resolution guidance
156- [ ] 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
157- [ ] Code examples use the actual base URL and a realistic placeholder token — no examples reference undefined variables or "YOUR_ENDPOINT" outside the snippet
158- [ ] Auth method is clearly stated at the top
159- [ ] Enum values are listed where applicable
160- [ ] Pagination documented if the endpoint is a list endpoint
161 
162## Anti-Patterns
163 
164- [ ] Do not document only the happy path — every endpoint must have error codes for at least 400, 401/403, 404, 429, and 500
165- [ ] Do not use placeholder values like "YOUR_ENDPOINT" or "INSERT_TOKEN" in code examples — use realistic-looking placeholders anchored to the actual base URL
166- [ ] Do not skip enum values for fields with a fixed set of accepted values — undocumented enums cause integration bugs
167- [ ] Do not omit pagination documentation on list endpoints — developers who miss this will build integrations that silently miss data
168- [ ] 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
169 
170## Usage Examples
171- "Document this API endpoint: [paste spec or description]"
172- "Turn this Postman collection into developer docs"
173- "Write API reference docs for [endpoint]"
174- "Write a developer guide for our [product] API"
175 
View all files on GitHub →

Details

Updated
Sep 23, 2026
License
MIT
Stars on the repo
★ 1,395
Checked
Source
mohitagw15856/pm-claude-skills ↗
Creator
mohitagw15856 · 193 listings
View creator

Made with api-docs-writer

API Docs Writer Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)
API Docs Writer Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

API Docs Writer Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)
API Docs Writer Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

Similar skills

See all →
SkillGuides stable API and interface designaddyosmani/agent-skills · by addyosmaniGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.★ 98.7k GitHub starsMCPPulls up-to-date, version-specific library docsContext7upstash/context7 · by upstashPulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.★ 62.3k GitHub starsSkillFetch up-to-date documentation and code examples for anyContext7 Documentation Lookupupstash/context7 · by upstashFetch up-to-date documentation and code examples for any library, framework, SDK, CLI tool, or cloud service. Use whenever the user asks about a specific library — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot — because training data may not reflect recent API changes or version updates. Always use for: API syntax questions, configuration options, version migration issues, "how do I" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage. Use even when you think you know the answer. Do not rely on training data for API details, signatures, or configuration options — they are frequently out of date. Prefer this over web search for library documentation.★ 62.3k GitHub starsSkillHow to use the Adaptyv Bio Foundry API and Python SDKK-Dense-AI/scientific-agent-skills · by K-Dense-AIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.★ 46k GitHub starsSkillMaster C/.NET backend development patterns for buildingwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillGuides the usage of Gemini Interactions API on GeminiGemini Interactions API Skillgoogle/skills · by googleGuides the usage of Gemini Interactions API on Gemini Enterprise Agent Platform. Use when the user wants to use the stateful, server-managed Interactions API for multi-turn conversations, background execution, streaming, structured output, and function calling on the Agent Platform.★ 20.9k GitHub stars

More from mohitagw15856

SkillDesign a 360-degree feedback survey or write a structured360-Degree Feedback Template Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design a 360-degree feedback survey or write a structured 360 feedback report. Use when asked to build a 360 feedback process, write 360 feedback for a colleague, design a feedback survey, or produce a feedback report. Produces either a complete survey instrument with rating scales and open-ended questions, or a structured narrative feedback report with themes, strengths, and development areas.★ 1.4k GitHub starsSkillDesign statistically rigorous A/B tests for product featuresA/B Test Planner Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design statistically rigorous A/B tests for product features, UI changes, onboarding flows, and pricing experiments. Use when asked to set up an experiment, design an A/B test, calculate sample size, or interpret test results. Produces a complete test plan with hypothesis, variant definitions, sample size, duration estimate, guardrail metrics, and a results interpretation guide.★ 1.4k GitHub starsSkillGenerate a WCAG 2.2 accessibility audit checklistAccessibility Audit Skillmohitagw15856/pm-claude-skills · by mohitagw15856Generate a WCAG 2.2 accessibility audit checklist and remediation suggestions for any UI or design. Use when asked to audit for accessibility, check WCAG compliance, review a design for a11y issues, or create an accessibility remediation plan. Produces a prioritised checklist with pass/fail assessments and specific fixes.★ 1.4k GitHub starsSkillBuild a structured account plan for any key customerAccount Plan Skillmohitagw15856/pm-claude-skills · by mohitagw15856Build a structured account plan for any key customer or target account. Use when asked to create an account plan, key account strategy, strategic account review, or territory plan. Produces a complete account plan with relationship map, growth opportunities, risks, and 90-day action plan.★ 1.4k GitHub starsSkillOptimize an article for Answer Engine Optimization so AIAEO Optimizer Skillmohitagw15856/pm-claude-skills · by mohitagw15856Optimize an article for Answer Engine Optimization (AEO) so AI engines like ChatGPT, Perplexity, and Claude can extract, quote, and cite it. Use when asked to AEO-optimize, make content AI-readable, improve AI citation chances, or adapt an article for answer engines. Produces an AEO-optimised rewrite with question headings, 50–80 word answer capsules, a paragraph-length audit, and flagged trust signals.★ 1.4k GitHub starsSkillConduct a structured ethical review of an AI or ML featureAI Ethics Review Skillmohitagw15856/pm-claude-skills · by mohitagw15856Conduct a structured ethical review of an AI or ML feature, model, or product. Use when preparing to deploy an AI system, assessing algorithmic risk, auditing a model for bias, or producing a responsible AI impact assessment. Produces a structured ethics review covering fairness, transparency, privacy, safety, accountability, and societal impact with a risk tier score, pre-deployment checklist, and prioritised mitigations.★ 1.4k GitHub stars