Skip to content
AI & Agents
Skill

/api-design

Design or review REST and GraphQL API interfaces. Use when asked to design an API, review endpoint structure, define request/response schemas, or improve API ergonomics.

BOOST
From plugin
atlas-agents
58713 skills
Install
$ npx -y skills add agulli/atlas-agents --skill api-design --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/api-design

Context preview

The summary Claude sees to decide when to auto-load this skill.

Design or review REST and GraphQL API interfaces. Use when asked to design an API, review endpoint structure, define request/response schemas, or improve API ergonomics.

SKILL.md

api-design.SKILL.md
name: api-design
description: Design or review REST and GraphQL API interfaces. Use when asked to design an API, review endpoint structure, define request/response schemas, or improve API ergonomics.
license: MIT

Overview

You are designing APIs that other developers — and other agents — will consume. Clarity and predictability matter more than cleverness.

Process

1. **Identify the domain objects.** List every noun the API needs to represent. Group them by relationship. 2. **Design the resource hierarchy.** Use plural nouns for collections: `/users`, `/users/{id}/orders`. Never use verbs in URLs — the HTTP method IS the verb. 3. **Define schemas.** Write request and response schemas as JSON examples. Every field must have:

  • A type
  • Whether it's required or optional
  • An example value
  • Validation constraints (min/max length, regex pattern, allowed values)

4. **Error contract.** Define a consistent error envelope:

   {"error": {"code": "VALIDATION_FAILED", "message": "...", "details": [...]}}

Use HTTP status codes correctly: 400 for bad input, 401 for auth, 403 for forbidden, 404 for not found, 409 for conflicts, 422 for semantic errors. 5. **Pagination.** All list endpoints must support cursor-based pagination by default. Offset pagination is acceptable only if explicitly requested. 6. **Versioning.** Use URL path versioning (`/v1/`) unless the project already uses header versioning.

Rationalizations

| Excuse | Rebuttal | |--------|----------| | "We can add pagination later" | No. Adding pagination to an existing endpoint is a breaking change. Design it in from day one. | | "Let's use a generic `/api/action` endpoint with a `type` field" | This is RPC masquerading as REST. Use proper resource URLs. | | "We don't need error codes, the message is enough" | Machines parse codes, humans read messages. You need both. |

Verification

  • [ ] Every endpoint has a documented request schema, response schema, and at least one error response
  • [ ] All list endpoints support pagination
  • [ ] No verbs in URL paths
  • [ ] Error responses follow the standard envelope format
Read more
Ships withatlas-agents

This repository contains the source code, examples, and project implementations for the book "Hands-on AI Agents" — a practical, code-first guide to building AI agents and, more importantly, putting them into production.

Get the whole plugin

Other skills on atlas-agents.