Design REST APIs that are intuitive, consistent, and follow industry best practices for resource-oriented architecture.
When to Use
Designing new RESTful APIs
Creating endpoint structures
Defining request/response formats
Implementing API versioning
Documenting API specifications
Refactoring existing APIs
Quick Start
Minimal working example:
✅ Good Resource Names (Nouns, Plural)
GET /api/users
GET /api/users/123
GET /api/users/123/orders
POST /api/products
DELETE /api/products/456
❌ Bad Resource Names (Verbs, Inconsistent)
GET /api/getUsers
POST /api/createProduct
GET /api/user/123 (inconsistent singular/plural)
Reference Guides
Detailed implementations in the references/ directory:
Guide
Contents
Resource Naming
Resource Naming, HTTP Methods & Operations
Request Examples
Request Examples
Query Parameters
Query Parameters
Response Formats
Response Formats
HTTP Status Codes
HTTP Status Codes, API Versioning, Authentication & Security, Rate Limiting Headers
OpenAPI Documentation
OpenAPI Documentation
Complete Example: Express.js
const express = require("express");
Best Practices
✅ DO
Use nouns for resources, not verbs
Use plural names for collections
Be consistent with naming conventions
Return appropriate HTTP status codes
Include pagination for collections
Provide filtering and sorting options
Version your API
Document thoroughly with OpenAPI
Use HTTPS
Implement rate limiting
Provide clear error messages
Use ISO 8601 for dates
❌ DON'T
Use verbs in endpoint names
Return 200 for errors
Expose internal IDs unnecessarily
Over-nest resources (max 2 levels)
Use inconsistent naming
Forget authentication
Return sensitive data
Break backward compatibility without versioning
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: aj-geddes-useful-ai-prompts-rest-api-design3description: REST API Design4---56# REST API Design78## Table of Contents910- [Overview](#overview)11- [When to Use](#when-to-use)12- [Quick Start](#quick-start)13- [Reference Guides](#reference-guides)14- [Best Practices](#best-practices)1516## Overview1718Design REST APIs that are intuitive, consistent, and follow industry best practices for resource-oriented architecture.1920## When to Use2122- Designing new RESTful APIs23- Creating endpoint structures24- Defining request/response formats25- Implementing API versioning26- Documenting API specifications27- Refactoring existing APIs2829## Quick Start3031Minimal working example:3233```34✅ Good Resource Names (Nouns, Plural)35GET /api/users36GET /api/users/12337GET /api/users/123/orders38POST /api/products39DELETE /api/products/4564041❌ Bad Resource Names (Verbs, Inconsistent)42GET /api/getUsers43POST /api/createProduct44GET /api/user/123 (inconsistent singular/plural)45```4647## Reference Guides4849Detailed implementations in the `references/` directory:5051| Guide | Contents |52|---|---|53| [Resource Naming](references/resource-naming.md) | Resource Naming, HTTP Methods & Operations |54| [Request Examples](references/request-examples.md) | Request Examples |55| [Query Parameters](references/query-parameters.md) | Query Parameters |56| [Response Formats](references/response-formats.md) | Response Formats |57| [HTTP Status Codes](references/http-status-codes.md) | HTTP Status Codes, API Versioning, Authentication & Security, Rate Limiting Headers |58| [OpenAPI Documentation](references/openapi-documentation.md) | OpenAPI Documentation |59| [Complete Example: Express.js](references/complete-example-expressjs.md) | const express = require("express"); |6061## Best Practices6263### ✅ DO6465- Use nouns for resources, not verbs66- Use plural names for collections67- Be consistent with naming conventions68- Return appropriate HTTP status codes69- Include pagination for collections70- Provide filtering and sorting options71- Version your API72- Document thoroughly with OpenAPI73- Use HTTPS74- Implement rate limiting75- Provide clear error messages76- Use ISO 8601 for dates7778### ❌ DON'T7980- Use verbs in endpoint names81- Return 200 for errors82- Expose internal IDs unnecessarily83- Over-nest resources (max 2 levels)84- Use inconsistent naming85- Forget authentication86- Return sensitive data87- Break backward compatibility without versioning8889---90> Converted and distributed by [TomeVault](https://tomevault.io/claim/aj-geddes) — claim your Tome and manage your conversions.91<!-- tomevault:4.0:skill_md:2026-04-11 -->
Run npx skillmds@latest add tomevault-io/aj-geddes-useful-ai-prompts-rest-api-design in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
REST API Design It is listed under Integrations & APIs on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.