# Api Design

> Design stable, versioned, self-documenting APIs. Easy to use correctly, hard to use incorrectly. Apply Hyrum's Law from day one.

- **Type:** Skill
- **Install:** `agentstack add skill-developersglobal-ai-agent-skills-api-design`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [DevelopersGlobal](https://agentstack.voostack.com/s/developersglobal)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [DevelopersGlobal](https://github.com/DevelopersGlobal)
- **Source:** https://github.com/DevelopersGlobal/ai-agent-skills/tree/main/skills/api-design
- **Website:** https://developersglobal.github.io/ai-agent-skills/

## Install

```sh
agentstack add skill-developersglobal-ai-agent-skills-api-design
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Overview

APIs are contracts. Once published, every behavior — documented or not — becomes something users depend on (Hyrum's Law). This skill enforces the discipline of designing APIs that are stable, self-documenting, and difficult to misuse.

## When to Use

- Creating any public API endpoint
- Designing function/library APIs
- Extending or versioning existing APIs

## Process

### Step 1: Design the Interface First

1. Write the usage examples before writing the implementation.
2. Ask: Is this easy to use correctly? Is it hard to use incorrectly?
3. Apply the principle of least surprise — the API should do what it looks like it does.
4. Design for the caller, not the implementer.

**Verify:** You can write 3 example usages without looking at the implementation.

### Step 2: Apply Hyrum's Law

5. Every observable behavior of your API will be depended upon by someone.
6. Document what IS and IS NOT guaranteed:
   - Stable: return type, error codes, semantic behavior
   - Unstable: response time, field ordering, internal implementation
7. Be conservative in what you expose — you can always add, never remove.

**Verify:** Every public field and behavior is either documented as stable or marked as internal.

### Step 3: Versioning Strategy

8. Version from day one: `/api/v1/`, `Content-Type: application/vnd.myapi.v1+json`
9. Breaking changes require a new version.
10. Maintain old versions for at least 6 months with deprecation notices.
11. Additive changes (new optional fields) are non-breaking.

**Verify:** API version is in the URL or headers. Deprecation policy is documented.

### Step 4: Self-Documentation

12. Every endpoint: purpose, inputs, outputs, error codes — documented.
13. Error messages tell the caller what went wrong AND how to fix it.
14. Schema validation on all inputs with meaningful error messages.
15. OpenAPI/Swagger spec generated (not hand-written).

**Verify:** A new developer can use the API from documentation alone, without reading source code.

## Common Rationalizations (and Rebuttals)

| Excuse | Rebuttal |
|--------|----------|
| "We'll document it later" | Undocumented APIs become black boxes. Document as you build. |
| "We can break it, it's internal" | Internal APIs become external. Design them well from the start. |
| "Versioning is premature" | Retrofitting versioning into an unversioned API is painful. Start versioned. |

## Verification

- [ ] Interface designed before implementation
- [ ] Stable vs. unstable behaviors documented
- [ ] Versioning strategy in place
- [ ] All endpoints documented (OpenAPI/Swagger)
- [ ] Error messages actionable
- [ ] Breaking vs. non-breaking changes policy defined

## References

- [security-hardening skill](../security-hardening/SKILL.md)
- Hyrum's Law: https://www.hyrumslaw.com/

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [DevelopersGlobal](https://github.com/DevelopersGlobal)
- **Source:** [DevelopersGlobal/ai-agent-skills](https://github.com/DevelopersGlobal/ai-agent-skills)
- **License:** MIT
- **Homepage:** https://developersglobal.github.io/ai-agent-skills/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-developersglobal-ai-agent-skills-api-design
- Seller: https://agentstack.voostack.com/s/developersglobal
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
