Agent skill

API Designer

by Jeffallan in Jeffallan/claude-skills

Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

MITAuto-check passedBackend & APIs

Install API Designer

skills CLI
$ npx skills add Jeffallan/claude-skills --skill api-designer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Jeffallan/claude-skills api-designer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/api-designer .claude/skills/api-designer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
api-designer
GitHub stars
12k
Used in
2 other repos
Token cost
~2k tokens
SKILL.md length
390 words
Files
6 (incl. references)
Skills in repo
58
Repo updated
First seen
Licence
MIT

At a glance

Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

  • Works in 6 steps: Analyze domain — Understand business… → Model resources — Identify resources,… → Design endpoints — Define URI patterns,… → …
  • Designing a new REST or GraphQL API before any code is written
  • SKILL.md covers Core Workflow, Reference Guide, Constraints and Templates, plus 2 more sections
  • Calls npx

What it does

The agent works through six steps: analyze the domain, model resources and sketch an entity diagram before writing any spec, design endpoints with URI patterns, methods and schemas, specify the contract as an OpenAPI 3.1 file linted with Redocly, check it by running a Prism mock server, and plan versioning, deprecation and backward compatibility.

Five reference files cover REST patterns, versioning, pagination (cursor, offset and keyset), error handling with RFC 7807 and status codes, and OpenAPI. The constraints require consistent naming, pagination on every collection, documented authentication and authorization, request and response examples, and clear deprecation policies. They forbid verbs in resource URIs, inconsistent response shapes, undocumented error codes, ignoring status code meaning, breaking changes without a migration path, and leaving out rate limiting. A starter resource endpoint and an RFC 7807 error response are included as templates.

When your agent uses it

  • Designing a new REST or GraphQL API before any code is written
  • Writing an OpenAPI 3.1 specification for an existing service
  • Choosing a versioning and deprecation strategy for a public API
  • Standardizing pagination and error responses across endpoints

Example prompts

  • “Design a REST API for a library lending system and write the OpenAPI spec.”
  • “Add cursor pagination and RFC 7807 error responses to our orders endpoints.”
  • “Plan how we deprecate version one of the payments API without breaking clients.”

Requirements

  • Node.js with npx for the Redocly lint and Prism mock commands

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Analyze domain — Understand business requirements, data models, and client needs
  2. Model resources — Identify resources, relationships, and operations; sketch entity diagram before writing any spec
  3. Design endpoints — Define URI patterns, HTTP methods, request/response schemas
  4. Specify contract — Create OpenAPI 3.1 spec; validate before proceeding: npx @redocly/cli lint openapi.yaml
  5. Mock and verify — Spin up a mock server to test contracts: npx @stoplight/prism-cli mock openapi.yaml
  6. Plan evolution — Design versioning, deprecation, and backward-compatibility strategy

What it can do on your machine

Read from SKILL.md and the folder at commit 1be15d8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • synergetic.solutions
    • jeffallan.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

API Designer loads about 2k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 390 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Jeffallan/claude-skills at commit 1be15d8, republished under its MIT licence (© Jeffallan). 390 words, ~1,998 tokens.

Download SKILL.mdSave it as .claude/skills/api-designer/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
api-designer
description
Use when designing REST or GraphQL APIs, creating OpenAPI specifications, or planning API architecture. Invoke for resource modeling, versioning strategies, pagination patterns, error handling standards.
license
MIT
metadata.author
https://github.com/Jeffallan
metadata.company
https://synergetic.solutions
metadata.version
1.1.0
metadata.domain
api-architecture
metadata.triggers
API design, REST API, OpenAPI, API specification, API architecture, resource modeling, API versioning, GraphQL schema, API documentation
metadata.role
architect
metadata.scope
design
metadata.output-format
specification
metadata.related-skills
graphql-architect, fastapi-expert, nestjs-expert, spring-boot-engineer, security-reviewer

API Designer

Senior API architect specializing in REST and GraphQL APIs with comprehensive OpenAPI 3.1 specifications.

Core Workflow

  1. Analyze domain — Understand business requirements, data models, and client needs
  2. Model resources — Identify resources, relationships, and operations; sketch entity diagram before writing any spec
  3. Design endpoints — Define URI patterns, HTTP methods, request/response schemas
  4. Specify contract — Create OpenAPI 3.1 spec; validate before proceeding: npx @redocly/cli lint openapi.yaml
  5. Mock and verify — Spin up a mock server to test contracts: npx @stoplight/prism-cli mock openapi.yaml
  6. Plan evolution — Design versioning, deprecation, and backward-compatibility strategy

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
REST Patternsreferences/rest-patterns.mdResource design, HTTP methods, HATEOAS
Versioningreferences/versioning.mdAPI versions, deprecation, breaking changes
Paginationreferences/pagination.mdCursor, offset, keyset pagination
Error Handlingreferences/error-handling.mdError responses, RFC 7807, status codes
OpenAPIreferences/openapi.mdOpenAPI 3.1, documentation, code generation

Constraints

MUST DO
  • Follow REST principles (resource-oriented, proper HTTP methods)
  • Use consistent naming conventions (snake_case or camelCase — pick one, apply everywhere)
  • Include comprehensive OpenAPI 3.1 specification
  • Design proper error responses with actionable messages (RFC 7807)
  • Implement pagination for all collection endpoints
  • Version APIs with clear deprecation policies
  • Document authentication and authorization
  • Provide request/response examples
MUST NOT DO
  • Use verbs in resource URIs (use /users/{id}, not /getUser/{id})
  • Return inconsistent response structures
  • Skip error code documentation
  • Ignore HTTP status code semantics
  • Design APIs without a versioning strategy
  • Expose implementation details in the API surface
  • Create breaking changes without a migration path
  • Omit rate limiting considerations
Show full SKILL.md (145 more words)Show less

Templates

OpenAPI 3.1 Resource Endpoint (copy-paste starter)
yaml
openapi: "3.1.0"
info:
  title: Example API
  version: "1.1.0"
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      tags: [Users]
      parameters:
        - name: cursor
          in: query
          schema: { type: string }
          description: Opaque cursor for pagination
        - name: limit
          in: query
          schema: { type: integer, default: 20, maximum: 100 }
      responses:
        "200":
          description: Paginated list of users
          content:
            application/json:
              schema:
                type: object
                required: [data, pagination]
                properties:
                  data:
                    type: array
                    items: { $ref: "#/components/schemas/User" }
                  pagination:
                    $ref: "#/components/schemas/CursorPage"
        "400": { $ref: "#/components/responses/BadRequest" }
        "401": { $ref: "#/components/responses/Unauthorized" }
        "429": { $ref: "#/components/responses/TooManyRequests" }
  /users/{id}:
    get:
      summary: Get a user
      operationId: getUser
      tags: [Users]
      parameters:
        - name: id
          in: path
          required: true
          schema: { type: string, format: uuid }
      responses:
        "200":
          description: User found
          content:
            application/json:
              schema: { $ref: "#/components/schemas/User" }
        "404": { $ref: "#/components/responses/NotFound" }

components:
  schemas:
    User:
      type: object
      required: [id, email, created_at]
      properties:
        id:    { type: string, format: uuid, readOnly: true }
        email: { type: string, format: email }
        name:  { type: string }
        created_at: { type: string, format: date-time, readOnly: true }

    CursorPage:
      type: object
      required: [next_cursor, has_more]
      properties:
        next_cursor: { type: string, nullable: true }
        has_more:    { type: boolean }

    Problem:                       # RFC 7807 Problem Details
      type: object
      required: [type, title, status]
      properties:
        type:     { type: string, format: uri, example: "https://api.example.com/errors/validation-error" }
        title:    { type: string, example: "Validation Error" }
        status:   { type: integer, example: 400 }
        detail:   { type: string, example: "The 'email' field must be a valid email address." }
        instance: { type: string, format: uri, example: "/users/req-abc123" }

  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/problem+json:
          schema: { $ref: "#/components/schemas/Problem" }
    Unauthorized:
      description: Missing or invalid authentication
      content:
        application/problem+json:
          schema: { $ref: "#/components/schemas/Problem" }
    NotFound:
      description: Resource not found
      content:
        application/problem+json:
          schema: { $ref: "#/components/schemas/Problem" }
    TooManyRequests:
      description: Rate limit exceeded
      headers:
        Retry-After: { schema: { type: integer } }
      content:
        application/problem+json:
          schema: { $ref: "#/components/schemas/Problem" }

  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

security:
  - BearerAuth: []
RFC 7807 Error Response (copy-paste)
json
{
  "type": "https://api.example.com/errors/validation-error",
  "title": "Validation Error",
  "status": 422,
  "detail": "The 'email' field must be a valid email address.",
  "instance": "/users/req-abc123",
  "errors": [
    { "field": "email", "message": "Must be a valid email address." }
  ]
}
  • Always use Content-Type: application/problem+json for error responses.
  • type must be a stable, documented URI — never a generic string.
  • detail must be human-readable and actionable.
  • Extend with errors[] for field-level validation failures.

Output Checklist

When delivering an API design, provide:

  1. Resource model and relationships (diagram or table)
  2. Endpoint specifications with URIs and HTTP methods
  3. OpenAPI 3.1 specification (YAML)
  4. Authentication and authorization flows
  5. Error response catalog (all 4xx/5xx with type URIs)
  6. Pagination and filtering patterns
  7. Versioning and deprecation strategy
  8. Validation result: npx @redocly/cli lint openapi.yaml passes with no errors

Knowledge Reference

REST architecture, OpenAPI 3.1, GraphQL, HTTP semantics, JSON:API, HATEOAS, OAuth 2.0, JWT, RFC 7807 Problem Details, API versioning patterns, pagination strategies, rate limiting, webhook design, SDK generation

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation

© Jeffallan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/api-designer of Jeffallan/claude-skills.

  • SKILL.md
  • references/error-handling.md
  • references/openapi.md
  • references/pagination.md
  • references/rest-patterns.md
  • references/versioning.md

Open the folder on GitHubat commit 1be15d8

Used in 2 other repositories

We found 6 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in Jeffallan/claude-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

API Designer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

API Designer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
API Designer this skillJeffallan/claude-skills12k2 repos~2kAutomated safety check: PassMIT
API Designyonatangross/orchestkit288—~2.9kAutomated safety check: PassMIT
API Contract Designrsmdt/the-startup536—~1.1kAutomated safety check: PassMIT
API Designeraiskillstore/marketplace4301 repos~3.6kAutomated safety check: PassNone
API Architectcuriositech/some_claude_skills2431 repos~1.4kAutomated safety check: PassMIT
API Designaiskillstore/marketplace4301 repos~1.8kAutomated safety check: PassApache-2.0

Similar skills

  • API Design

    yonatangross/orchestkit

    API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs.

    288 GitHub stars~2.9k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • API Contract Design

    rsmdt/the-startup

    REST and GraphQL API design patterns, OpenAPI/Swagger specifications, versioning strategies, and authentication patterns.

    536 GitHub stars~1.1k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • API Designer

    aiskillstore/marketplace

    Design and document RESTful and GraphQL APIs with OpenAPI/Swagger specifications, authentication patterns, versioning strategies, and best practices.

    430 GitHub starsUsed in 1 repo~3.6k tokens
    Backend & APIsAuto-check passed
  • API Architect

    curiositech/some_claude_skills

    Expert API designer for REST, GraphQL, gRPC architectures. An agent skill from curiositech/some_claude_skills.

    243 GitHub starsUsed in 1 repo~1.4k tokens
    Backend & APIsAuto-check passed
  • API Design

    aiskillstore/marketplace

    Design RESTful and GraphQL APIs following best practices. An agent skill from aiskillstore/marketplace.

    430 GitHub starsUsed in 1 repo~1.8k tokens
    Backend & APIsAuto-check passed
  • API Designer

    majiayu000/claude-skill-registry

    REST/GraphQL API architect specializing in OpenAPI 3.1, HATEOAS, pagination, and versioning strategies

    666 GitHub starsUsed in 1 repo~3.5k tokens
    Backend & APIsAuto-check passed

More from Jeffallan/claude-skills

All 58 skills in this repo
  • CLI Developer

    Jeffallan/claude-skills

    Walks through designing, building and polishing a command-line tool: user workflow and command hierarchy, implementation in commander, click, typer or cobra, completions and cross-platform testing.

    12k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Fine-Tuning Expert

    Jeffallan/claude-skills

    Guides LLM fine-tuning with LoRA and QLoRA through Hugging Face PEFT, from dataset validation and training checks to adapter merging, quantization and deployment.

    12k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • GraphQL Architect

    Jeffallan/claude-skills

    Designs GraphQL schemas and Apollo Federation graphs, with DataLoader resolvers, subscriptions, query complexity limits and caching.

    12k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Kubernetes Specialist

    Jeffallan/claude-skills

    Creates and checks Kubernetes manifests, Helm charts, RBAC and network policies, and helps debug pod problems, with kubectl checks and rollback steps.

    12k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Laravel Specialist

    Jeffallan/claude-skills

    Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.

    12k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • ML Pipeline Expert

    Jeffallan/claude-skills

    Designs ML pipeline infrastructure: experiment tracking with MLflow or Weights & Biases, Kubeflow and Airflow orchestration, Feast feature stores and model validation gates.

    12k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed

Works with

Categories

Questions about API Designer

What does API Designer do?

Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling. 1 file linted with Redocly, check it by running a Prism mock server, and plan versioning, deprecation and backward compatibility.

When should I use API Designer?

API Designer fits situations like: designing a new REST or GraphQL API before any code is written; writing an OpenAPI 3.1 specification for an existing service; choosing a versioning and deprecation strategy for a public API; standardizing pagination and error responses across endpoints.

How do I install API Designer in Claude Code?

Run `npx skills add Jeffallan/claude-skills --skill api-designer -a claude-code`. Or copy the skill folder (skills/api-designer in Jeffallan/claude-skills) into .claude/skills/api-designer in your project. Claude Code loads it when a task matches its description.

How do I install API Designer in Codex?

Run `npx skills add Jeffallan/claude-skills --skill api-designer -a codex`. Or copy the skill folder (skills/api-designer in Jeffallan/claude-skills) into .agents/skills/api-designer in your project. Codex loads it when a task matches its description.

Can I use API Designer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Jeffallan/claude-skills --skill api-designer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/api-designer, .gemini/skills/api-designer, .github/skills/api-designer and .opencode/skills/api-designer in your project.

What does API Designer need to run?

Going by SKILL.md and its folder, API Designer needs the command-line tools its instructions call (npx). Our summary lists: Node.js with npx for the Redocly lint and Prism mock commands.

Does API Designer access the network?

SKILL.md names 3 domains. As links in the text: github.com, synergetic.solutions and jeffallan.github.io. This is read from the text; nothing was executed.

Is API Designer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does API Designer use?

API Designer is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does API Designer use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.

What are the alternatives to API Designer?

Skills that share tags, products or a category with API Designer: API Design (yonatangross/orchestkit, 288 stars), API Contract Design (rsmdt/the-startup, 536 stars), API Designer (aiskillstore/marketplace, 430 stars) and API Architect (curiositech/some_claude_skills, 243 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains API Designer?

Jeffallan (a GitHub user) maintains it in Jeffallan/claude-skills, which has 11,754 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 3, 2026.

Source: Jeffallan/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.