Skip to content
REST API Designer cover
API DesignFree · MIT

REST API Designer

Consistent, predictable REST — noun resources, right status codes, one error shape, cursor pagination, versioned. Boring beats clever.

v1.0.0 · ~683 tokens · ⬇ 0 · Updated July 6, 2026

What it does

Designs a REST API for consistency: noun/plural resources with method semantics, specific status codes, one stable error shape everywhere, cursor pagination, allowlisted filtering, a single versioning strategy, idempotency keys for money POSTs, auth per endpoint. Designs error and pagination shapes once up front; flags breaking changes when reviewing.

Example uses

Design a new API surface

You're starting a new service and want the endpoint contract right before any code is written.

Design the REST API for a small invoicing service: customers, invoices, invoice line items, and payments. I need the resource model, every endpoint with method and status codes, one standard error shape, and cursor pagination for the invoice list — clients will poll it constantly.

Review an endpoint before launch

An endpoint is about to ship and you want its conventions checked against the rest of the API.

Review this endpoint before we ship it: POST /api/createSubscription returns 200 with { success: false, msg } when validation fails. Flag everything that breaks REST conventions and give me the corrected contract — path, method semantics, status codes, and error shape.

Add idempotency to payment POST

A retrying client is causing duplicate side effects on a money endpoint.

Our POST /payments endpoint occasionally double-charges when the mobile app retries on timeout. Redesign the contract with an Idempotency-Key header and specify the exact status codes for the first call, a replay of the same key, and a replay with a different body.

Install

# 1. Create the skill folder in your Claude setup
mkdir -p ~/.claude/skills/rest-api-designer

# 2. Download SKILL.md into it (or move the file you just downloaded)
#    → ~/.claude/skills/rest-api-designer/SKILL.md

# 3. Claude Code auto-discovers it on next launch.

Inside the skill

SKILL.md
---
name: rest-api-designer
description: Design a clean, consistent REST API — resources, methods, status codes, errors, pagination, versioning. Use when designing a new endpoint or API surface, reviewing an API design, or asked "design this API", "what should this endpoint look like", "review my REST API". Consistency over cleverness.
---

# REST API Designer

An API is a contract you'll live with for years. Design it consistent and predictable so
clients can guess the next endpoint correctly. Boring and uniform beats clever and unique.

## Resources & methods

- **Nouns, not verbs**, plural: `/orders`, `/orders/{id}`, `/orders/{id}/items`. The action
  is the HTTP method, not the path (`POST /orders`, not `/createOrder`).
- **Method semantics**: GET (read, safe, idempotent), POST (create/non-idempotent action),
  PUT (full replace, idempotent), PATCH (partial update), DELETE (idempotent).
- Nesting one level deep max; beyond that, use query params or top-level resources with filters.

## Status codes (use the specific one)

- 200 OK · 201 Created (+ `Location`) · 204 No Content (delete/empty) · 202 Accepted (async).
- 400 bad input · 401 unauthenticated · 403 authenticated-but-forbidden · 404 not found ·
  409 conflict · 422 validation · 429 rate-limited (+ `Retry-After`).
- 5xx = server's fault, never for user error. Don't return 200 with an error body.

## Errors (consistent shape, always)

```
{ "error": { "code": "order_not_found", "message": "human-readable", "details": [...] } }
```
A stable machine `code` clients can branch on; a message for humans; field-level `details`
for validation. Same shape for every error in the whole API.

## Cross-cutting (decide once, apply everywhere)

- **Pagination**: cursor-based for large/changing sets (`?limit=&cursor=`), return the next
  cursor. Offset only for small stable sets. Never return unbounded lists.
- **Filtering/sorting**: query params, documented, allowlisted (`?status=paid&sort=-created`).
- **Versioning**: pick one (URL `/v1` or header) and hold it. Version on breaking changes only.
- **Idempotency** for POST that creates money/side-effects: accept an `Idempotency-Key`.
- **Auth** stated per endpoint; **rate limits** communicated via headers.

## Rules

- Consistency beats local cleverness — a predictable API is a usable API.
- Never break a published contract without a version bump. Additive changes are safe; removals/renames aren't.
- Design the error and pagination shapes ONCE, up front — retrofitting them is painful.

## Output

The resource model, endpoints (method + path + purpose), the standard error shape, pagination
+ versioning decision, and auth per endpoint. Flag any breaking change if reviewing an existing API.

Changelog

  • v1.0.02026-07-03Initial clean-room write.

Frequently asked questions

Is REST API Designer free?

Yes. REST API Designer is free to download and MIT-licensed.

Where do I install REST API Designer?

Place the SKILL.md file in ~/.claude/skills/rest-api-designer/ and Claude Code auto-discovers it on next launch.

How many tokens does REST API Designer use?

About 683 tokens — it is designed to be token-lean.

Anthony M. — Founder & Lead Reviewer
Anthony M.Verified Builder

We're developers and SaaS builders who use these tools daily in production. Every review comes from hands-on experience building real products — DealPropFirm, ThePlanetIndicator, PropFirmsCodes, and many more. We don't just review tools — we build and ship with them every day.

Written and tested by developers who build with these tools daily.