api-versioning
API versioning — compatibility rules and deprecation lifecycle.
Skill by Dev-Toolbelt
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/dev-toolbelt-api-versioning
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/api-versioning
What's inside
- Skill name
api-versioning- Description
- API versioning — compatibility rules and deprecation lifecycle.
- License
- MIT
- Instructions
- 90 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# API Versioning ## When to Load Load when designing a new API, planning a breaking change, or reviewing a PR that modifies public API contracts. ## Versioning Strategies | Strategy | Example | Pros | Cons | |----------|---------|------|------| | **URL path** | `/v1/users`, `/v2/users` | Simple; explicit; cacheable | URL pollution; hard to version individual resources | | **Query param** | `/users?version=2` | No URL change | Easy to ignore; pollutes query strings | | **Header** | `Accept-Version: 2` | Clean URL; HTTP-idiomatic | Less discoverable; harder to test in browser | | **Content negotiation** | `Accept: application/vnd.api+json; version=2` | Most REST-correct | Complex; vendor MIME types are opaque | **Recommended default**: URL path for public APIs (simplest, most debuggable). Header versioning for internal APIs where clients are controlled. ## Backwards-Compatible vs Breaking Changes ### Safe (backwards-compatible) - Add new optional field to request/response - Add new endpoint - Add new enum value at the end (caution: if clients enumerate all values) - Loosen validation (accept more input) ### Breaking - Remove or rename a field - Change field type (string → integer) - Change required/optional inverse (make optional field required) - Change HTTP method or status code - Tighten validation (reject previously-accepted input) - Change pagination behaviour **Rule**: if an existing client would break, it is a breaking change → new version required. ## Deprecation Lifecycle 1. **Announce**: publish deprecation notice in docs and via `Deprecation` and `Sunset` response headers 2. **Grace period**: minimum 6 months for external APIs; 3 months for internal 3. **Monitor**: track usage of deprecated endpoints (`/v1/*`) via logs 4. **Remove**: only after usage drops to zero or grace period ends Response headers: ``` Deprecation: Sat, 01 Jun 2025 00:00:00 GMT Sunset: Mon, 01 Dec 2025 00:00:00 GMT Link: <https://api.example.com/v2/users>; rel="successor-version" ``` ## Version Support Window | Client type | Minimum support | Reason | |-------------|-----------------|--------| | Web browser | 3 months | Can force update | | Mobile app | 12-18 months | App store review delay; user adoption | | Third-party integrations | 12 months | Enterprise change management cycles | | Internal services | 3 months | Can coordinate deploys | For mobile clients, track app version in `User-Agent` or a custom header to identify when old clients are gone. ## SDK vs API Versioning - SDK version != API version; a v3 SDK may still call v1 or v2 API endpoints - Pin SDK-to-API mapping in release notes - SDK should surface the `Deprecation` header as a warning log to developers ## API Gateway Routing Route by version at the gateway level: ``` /v1/* → service:v1 /v2/* → service:v2 ``` This enables blue/green deployment of API versions without code changes in consumers. ## OpenAPI Evolution - Maintain separate `openapi-v1.yaml` and `openapi-v2.yaml` - Use `x-deprecated: true` extension to mark deprecated operations - Generate a diff with `oasdiff` or `openapi-diff` in CI to detect breaking changes automatically ## Decision Checklist - [ ] Is the change backwards-compatible? (if yes, no new version needed) - [ ] If breaking: has a new version path been defined? - [ ] Are `Deprecation` and `Sunset` headers added to the old version? - [ ] Is the support window appropriate for the client type? - [ ] Is the new version documented in OpenAPI? - [ ] Is the gateway routing configured for both versions?
From Dev-Toolbelt/dev-team-agents, MIT.
More from Dev-Toolbelt/dev-team-agents
- 0.623score
design-patterns
Dev-Toolbelt
Design patterns — KISS, YAGNI, DRY, SOLID, GoF, DDD reference.
SkillAFreshness: A★ 7Claude Code +9 - 0.620score
graphql
Dev-Toolbelt
GraphQL — schema, resolvers, N+1/DataLoader, pagination.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
api-design
Dev-Toolbelt
REST/GraphQL design — naming, status codes, pagination, idempotency.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
architecture-docs
Dev-Toolbelt
Where architecture documents live, what each contains, and the conformance report format.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
async-jobs
Dev-Toolbelt
Async jobs — idempotency, retry strategy, DLQ, observability.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
i18n
Dev-Toolbelt
i18n/l10n — locale detection, translations, pluralization, RTL.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
component-patterns
Dev-Toolbelt
Component patterns — container/presentational for React/Vue/Angular.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
css-quality
Dev-Toolbelt
CSS quality — specificity, magic numbers, responsive.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
data-fetching-integrity
Dev-Toolbelt
Detect and prevent duplicate/redundant API calls in SPA/SSG frontends — tool-agnostic.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
event-driven
Dev-Toolbelt
Event-driven — sourcing, CQRS, saga, idempotency, schema registry.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
form-handling
Dev-Toolbelt
Form design — state, validation, error feedback.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
frontend-patterns
Dev-Toolbelt
Frontend patterns — debounce, double-submit prevention, error boundaries.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 18, 2026 (11 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Dev-Toolbelt/dev-team-agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Dev-Toolbelt
- 0.623score
design-patterns
Dev-Toolbelt
Design patterns — KISS, YAGNI, DRY, SOLID, GoF, DDD reference.
SkillAFreshness: A★ 7Claude Code +9 - 0.620score
graphql
Dev-Toolbelt
GraphQL — schema, resolvers, N+1/DataLoader, pagination.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
component-patterns
Dev-Toolbelt
Component patterns — container/presentational for React/Vue/Angular.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
async-jobs
Dev-Toolbelt
Async jobs — idempotency, retry strategy, DLQ, observability.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
api-design
Dev-Toolbelt
REST/GraphQL design — naming, status codes, pagination, idempotency.
SkillAFreshness: A★ 7Claude Code +9 - 0.618score
architecture-docs
Dev-Toolbelt
Where architecture documents live, what each contains, and the conformance report format.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
api-versioning skill. Agent Mart. https://agentmart.dev/skills/dev-toolbelt-api-versioning (last updated 2026-10-24)