api-design

Designs REST, GraphQL, and gRPC APIs with versioning, pagination, and error handling conventions.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/vnovakovits/claude-skills --skill api-design-vnovakovits
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: api-design
Source: https://github.com/vnovakovits/claude-skills/tree/main/plugins/engineering-practices/skills/api-design
Command: npx skills add https://github.com/vnovakovits/claude-skills --skill api-design-vnovakovits

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Designing APIs that remain clear, consistent, and evolvable over time is hard — teams often ship endpoints with wrong status codes, inconsistent naming, missing idempotency, or breaking changes that hurt consumers. This Skill provides a structured playbook of API design principles so Claude applies proven conventions whenever you design or review an API. ## Core Features & Use Cases - Protocol Selection Guidance: Decision criteria for choosing between REST, GraphQL, and gRPC based on client types, performance needs, and data access patterns. - REST Design Rules: Resource-oriented URL naming, correct HTTP method and status code usage, cursor vs. offset pagination, RFC 7807 Problem Details error responses, and idempotency keys for safe retries. - Evolution & Compatibility: Additive vs. breaking change classification, URI/header versioning strategies, and deprecation workflows with Sunset headers. - Use Case: Ask Claude to design a new payments endpoint, and it will produce a resource-shaped URL, correct POST semantics with an Idempotency-Key header, a 201 response with Location header, and RFC 7807 error shapes. ## Quick Start Ask Claude to design a new REST endpoint for creating and listing orders, including pagination and error responses.

Frequently Asked Questions about api-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a REST API endpoint correctly?▼

Use plural nouns for resource URLs like /v1/orders, map operations to HTTP methods (GET, POST, PUT, PATCH, DELETE), and return meaningful status codes such as 201 for creation with a Location header. Errors should follow RFC 7807 Problem Details format.

REST vs GraphQL vs gRPC: which should I choose?▼

Choose REST for external-facing browser or mobile APIs with varied clients, gRPC for internal service-to-service communication that is performance-sensitive, and GraphQL for complex UI data needs aggregating many sources. Large systems often combine all three.

How do I version an API without breaking clients?▼

Prefer additive changes — add fields, never remove or repurpose them — so no version bump is needed. For genuinely breaking changes, use URI versioning like /v2/orders, support old versions through a deprecation window, and send Deprecation and Sunset headers.

What is the best pagination strategy for large APIs?▼

Cursor pagination is best for large or volatile collections because it stays stable under insertions and performs efficiently. Offset/limit pagination works for small, stable collections where jumping to arbitrary pages matters. Always include a next_cursor in responses.

Why do duplicate records appear when clients retry POST requests?▼

POST is not idempotent, so network retries can execute the operation twice. Support an Idempotency-Key header and store the key-to-response mapping server-side, returning the original response when the same key repeats instead of reprocessing.

When should I use action endpoints instead of pure REST?▼

Use action endpoints like POST /v1/orders/{id}/cancel when an operation does not map cleanly to CRUD and the action style communicates intent more clearly than a PATCH with a status field. Keep them rare and document the deviation.