VE

Manage API versions, deprecation schedules, and backward compatibility using standard routing and header strategies.

Install

mkdir -p .claude/skills/versioning-apis && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7726" && unzip -o skill.zip -d .claude/skills/versioning-apis && rm skill.zip

Installs to .claude/skills/versioning-apis

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Implement API versioning with backward compatibility, deprecation notices,
74 charsno explicit “when” trigger
Advanced

Key capabilities

  • Implement URL path, header-based, or query parameter versioning
  • Create version-specific controller directories
  • Build compatibility layers for request/response transformation
  • Add deprecation and sunset headers to legacy versions
  • Detect breaking changes using OpenAPI spec comparison

How it works

The skill establishes a version router that directs requests to specific handlers and uses a compatibility layer to transform requests between versions.

Inputs & outputs

You give it
API codebase and versioning requirements
You get back
Versioned API routes, compatibility middleware, and migration documentation

When to use versioning-apis

  • Implement versioning strategies for new endpoints
  • Add deprecation notices to legacy APIs
  • Manage concurrent API version support
  • Develop migration paths for breaking changes

About this skill

Versioning APIs

Overview

Implement API versioning strategies -- URL path (/v1/, /v2/), header-based (Accept: application/vnd.api.v2+json), or query parameter (?version=2) -- with backward compatibility layers, deprecation notices, and automated migration paths. Manage concurrent version support, sunset timelines, and breaking change detection across the API surface.

Prerequisites

  • Existing API codebase with route definitions and controller implementations
  • Version control history for tracking breaking changes across releases
  • OpenAPI specs for each supported API version (or ability to generate them)
  • API gateway or reverse proxy capable of version-based routing (optional: Kong, AWS API Gateway)
  • Consumer notification channel for deprecation announcements (changelog, email, response headers)

Instructions

  1. Audit existing endpoints using Grep and Read to identify current versioning approach (if any) and catalog all public-facing endpoints with their request/response contracts.
  2. Select a versioning strategy based on API consumer patterns: URL path versioning for public APIs, header versioning for APIs needing clean URLs, or content negotiation for advanced use cases.
  3. Create a version router that directs requests to the appropriate version handler set based on the extracted version identifier from URL, header, or query parameter.
  4. Implement version-specific controller directories (/v1/controllers/, /v2/controllers/) with shared business logic extracted into version-independent service layers.
  5. Build a compatibility layer that transforms v1 requests into v2 format and v2 responses back to v1 format, enabling older versions to run on the latest business logic.
  6. Add deprecation headers to sunset versions: Deprecation: true, Sunset: <date>, and Link: <migration-guide-url>; rel="sunset" per the Sunset HTTP header RFC.
  7. Create a breaking change detector that compares OpenAPI specs between versions and flags removed fields, changed types, new required parameters, and altered response structures.
  8. Write version compatibility tests that send v1-formatted requests and verify correct responses, ensuring the compatibility layer preserves backward compatibility.

See ${CLAUDE_SKILL_DIR}/references/implementation.md for the full implementation guide.

Output

  • ${CLAUDE_SKILL_DIR}/src/routes/v1/ - Version 1 route definitions
  • ${CLAUDE_SKILL_DIR}/src/routes/v2/ - Version 2 route definitions
  • ${CLAUDE_SKILL_DIR}/src/middleware/version-router.js - Version extraction and routing middleware
  • ${CLAUDE_SKILL_DIR}/src/compatibility/ - Request/response transformation layers between versions
  • ${CLAUDE_SKILL_DIR}/src/utils/breaking-change-detector.js - OpenAPI diff tool for breaking changes
  • ${CLAUDE_SKILL_DIR}/docs/migration-guide-v1-to-v2.md - Consumer migration documentation

Error Handling

ErrorCauseSolution
400 Unsupported VersionClient requests a version that does not existReturn available versions list in error body; suggest closest valid version
410 GoneClient requests a sunset version past its end-of-life dateReturn migration guide URL and recommended current version in error body
Compatibility layer failurev1-to-v2 transform encounters a field with no mappingLog unmapped fields; return partial response with warning header; alert API team
Version header ignoredClient sets version header but reverse proxy strips custom headersDocument required proxy configuration; add URL path fallback for header-based versioning
Breaking change undetectedSemantic change (same field name, different meaning) not caught by schema diffAdd contract tests with business-logic assertions beyond schema structure

Refer to ${CLAUDE_SKILL_DIR}/references/errors.md for comprehensive error patterns.

Examples

URL path versioning: Migrate from /api/users to /api/v1/users and /api/v2/users where v2 changes name (string) to firstName/lastName (object), with v1 compatibility layer that joins the fields.

Header-based versioning: Route requests using Accept: application/vnd.myapi.v2+json with a default version fallback for clients omitting the header, and version discovery via OPTIONS responses.

Sunset lifecycle management: Announce v1 deprecation with 6-month sunset timeline, add Sunset headers immediately, log v1 usage metrics to track migration progress, and auto-disable after sunset date.

See ${CLAUDE_SKILL_DIR}/references/examples.md for additional examples.

Resources

  • RFC 8594 The Sunset HTTP Header Field
  • API Versioning strategies comparison (Stripe, GitHub, Twilio approaches)
  • OpenAPI diff tools: oasdiff, openapi-diff
  • Semantic Versioning 2.0.0: https://semver.org/

Prerequisites

Existing API codebaseVersion control historyOpenAPI specs

Limitations

  • Requires manual implementation of request/response transformation logic
  • Semantic changes in fields may not be caught by schema diffs

How it compares

It provides a structured approach to managing API lifecycles including automated breaking change detection and standard-compliant sunset headers.

Compared to similar skills

versioning-apis side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
versioning-apis (this skill)125dReviewAdvanced
openapi-spec-generation222moNo flagsIntermediate
microsoft-code-reference74moReviewBeginner
openai-knowledge54moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

openapi-spec-generation

wshobson

Generate and maintain OpenAPI 3.1 specifications from code, design-first specs, and validation patterns. Use when creating API documentation, generating SDKs, or ensuring API contract compliance.

22122

microsoft-code-reference

github

Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs.

747

openai-knowledge

openai

Use when working with the OpenAI API (Responses API) or OpenAI platform features (tools, streaming, Realtime API, auth, models, rate limits, MCP) and you need authoritative, up-to-date documentation (schemas, examples, limits, edge cases). Prefer the OpenAI Developer Documentation MCP server tools when available; otherwise guide the user to enable `openaiDeveloperDocs`.

539

agent-docs-api-openapi

ruvnet

Agent skill for docs-api-openapi - invoke with $agent-docs-api-openapi

432

openai-docs

openai

Use when the user asks how to build with OpenAI products or APIs and needs up-to-date official documentation with citations (for example: Codex, Responses API, Chat Completions, Apps SDK, Agents SDK, Realtime, model capabilities or limits); prioritize OpenAI docs MCP tools and restrict any fallback browsing to official OpenAI domains.

333

http-generate

spring-ai-alibaba

Generates HTTP request examples for Spring Boot Web interfaces according to task specification and saves them as .http files in module-generate.md directories

16

Search skills

Search the agent skills registry