api-design
REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting.
Skill by gesmith0606
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/gesmith0606-api-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/api-design
What's inside
- Skill name
api-design- Description
- REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting. Use when designing or reviewing API endpoints or choosing pagination/versioning/error-shape conventions.
- License
- MIT
- Metadata
- origin: ECC
- Instructions
- 519 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: 519 lines (spec recommends under 500)
Files (1)
- SKILL.md
SKILL.md (first lines)
# API Design Patterns
Conventions and best practices for designing consistent, developer-friendly REST APIs.
## When to Activate
- Designing new API endpoints
- Reviewing existing API contracts
- Adding pagination, filtering, or sorting
- Implementing error handling for APIs
- Planning API versioning strategy
- Building public or partner-facing APIs
## Resource Design
### URL Structure
```
# Resources are nouns, plural, lowercase, kebab-case
GET /api/v1/users
GET /api/v1/users/:id
POST /api/v1/users
PUT /api/v1/users/:id
PATCH /api/v1/users/:id
DELETE /api/v1/users/:id
# Sub-resources for relationships
GET /api/v1/users/:id/orders
POST /api/v1/users/:id/orders
# Actions that don't map to CRUD (use verbs sparingly)
POST /api/v1/orders/:id/cancel
POST /api/v1/auth/login
POST /api/v1/auth/refresh
```
### Naming Rules
```
# GOOD
/api/v1/team-members # kebab-case for multi-word resources
/api/v1/orders?status=active # query params for filtering
/api/v1/users/123/orders # nested resources for ownership
# BAD
/api/v1/getUsers # verb in URL
/api/v1/user # singular (use plural)
/api/v1/team_members # snake_case in URLs
/api/v1/users/123/getOrders # verb in nested resource
```
## HTTP Methods and Status Codes
### Method Semantics
| Method | Idempotent | Safe | Use For |
|--------|-----------|------|---------|
| GET | Yes | Yes | Retrieve resources |
| POST | No | No | Create resources, trigger actions |
| PUT | Yes | No | Full replacement of a resource |
| PATCH | No* | No | Partial update of a resource |
| DELETE | Yes | No | Remove a resource |
*PATCH can be made idempotent with proper implementation
### Status Code Reference
```
# Success
200 OK — GET, PUT, PATCH (with response body)
201 Created — POST (include Location header)
204 No Content — DELETE, PUT (no response body)
# Client Errors
400 Bad Request — Validation failure, malformed JSON
401 Unauthorized — Missing or invalid authentication
403 Forbidden — Authenticated but not authorized
404 Not Found — Resource doesn't exist
409 Conflict — Duplicate entry, state conflict
422 Unprocessable Entity — Semantically invalid (valid JSON, bad data)
429 Too Many Requests — Rate limit exceeded
# Server Errors
500 Internal Server Error — Unexpected failure (never expose details)
502 Bad Gateway — Upstream service failed
503 Service Unavailable — Temporary overload, include Retry-After
```
### Common Mistakes
```
# BAD: 200 for everything
{ "status": 200, "success": false, "error": "Not found" }
# GOOD: Use HTTP status codes semantically
HTTP/1.1 404 Not Found
{ "error": { "code": "not_found", "message": "User not found" } }
# BAD: 500 for validation errors
# GOOD: 400 or 422 with field-level details
# BAD: 200 for created resources
# GOOD: 201 with Location header
HTTP/1.1 201 Created
Location: /api/v1/users/abc-123
```
## Response Format
### Success Response
```json
{
"data": {
"id": "abc-123",
"email": "alice@example.com",
"name": "Alice",
"created_at": "2025-01-15T10:30:00Z"
}From gesmith0606/claude-config-public, MIT.
More from gesmith0606/claude-config-public
- 0.570score
comfyui-local-image
gesmith0606
Generate images locally through a running ComfyUI instance (Stable Diffusion / SDXL / Flux, IP-Adapter, PuLID/InsightFace face-consistency) on the user's own…
SkillAFreshness: AClaude Code +9 - 0.565score
animate
gesmith0606
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to…
SkillAFreshness: AClaude Code +9 - 0.565score
data-throughput-accelerator
gesmith0606
Diagnose and accelerate large data movement — ingestion, backfill, export, ETL, warehouse loading, manifest catch-up, and table synchronization — by isolating…
SkillAFreshness: AClaude Code +9 - 0.561score
browser-harness
gesmith0606
Use for INTERACTIVE/STATEFUL browser work: filling forms, auth/login flows, JS-rendered scraping, screenshots, and multi-step site/app automation or testing.
SkillAFreshness: AClaude Code +9 - 0.560score
bitwarden
gesmith0606
Operate the Bitwarden CLI (`bw`) as this config's secrets backend — unlocking per shell, adding machine secrets, resolving them at runtime, and diagnosing…
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
gesmith0606
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9 - 0.529score
data-quality
gesmith0606
Data validation and quality contracts for pipelines — uniqueness/PK, not-null, range/domain, referential integrity, freshness/SLA, row-count tie-out…
SkillBFreshness: BClaude Code +9 - 0.529score
dashboard
gesmith0606
Build data dashboards and visualizations — the right chart for the question, the right library, honest accessible encodings, clean layout.
SkillBFreshness: BClaude Code +9 - 0.529score
cheap-data-orchestration
gesmith0606
Cost-optimal scheduling for solo / small-team data pipelines: a GitHub Actions cron job that runs dbt-core or scripts, publishes results, and stays correct on…
SkillBFreshness: BClaude Code +9 - 0.529score
dataframes
gesmith0606
Correct and performant in-process dataframe work in pandas, polars, and duckdb.
SkillBFreshness: BClaude Code +9 - 0.529score
diagram
gesmith0606
Create technical diagrams-as-code (Mermaid by default) — architecture, flowcharts, sequence/state/ER/class/data-flow diagrams, mind maps, Gantt, C4 —…
SkillBFreshness: BClaude Code +9 - 0.529score
dbt
gesmith0606
Author and review dbt / analytics-engineering projects — staging/intermediate/marts layering, ref()/source() lineage, incremental models with correct…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gesmith0606
- 0.570score
comfyui-local-image
gesmith0606
Generate images locally through a running ComfyUI instance (Stable Diffusion / SDXL / Flux, IP-Adapter, PuLID/InsightFace face-consistency) on the user's own…
SkillAFreshness: AClaude Code +9 - 0.565score
data-throughput-accelerator
gesmith0606
Diagnose and accelerate large data movement — ingestion, backfill, export, ETL, warehouse loading, manifest catch-up, and table synchronization — by isolating…
SkillAFreshness: AClaude Code +9 - 0.565score
animate
gesmith0606
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to…
SkillAFreshness: AClaude Code +9 - 0.561score
browser-harness
gesmith0606
Use for INTERACTIVE/STATEFUL browser work: filling forms, auth/login flows, JS-rendered scraping, screenshots, and multi-step site/app automation or testing.
SkillAFreshness: AClaude Code +9 - 0.560score
bitwarden
gesmith0606
Operate the Bitwarden CLI (`bw`) as this config's secrets backend — unlocking per shell, adding machine secrets, resolving them at runtime, and diagnosing…
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
gesmith0606
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9
Cite this page
api-design skill. Agent Mart. https://agentmart.dev/skills/gesmith0606-api-design (last updated 2026-10-24)