shopify/adding-api-versions
Use when adding a new API version to the shopify-api package, creating REST resource files for a new version, updating API version constants, or handling breaking changes like removed or modified resources between versions.
npx skills add https://github.com/Shopify/shopify-app-js --skill adding-api-versions
Step-by-step process for adding a new API version to packages/apps/shopify-api. Uses 2025-07 as a reference example.
Edit packages/apps/shopify-api/lib/types.ts:
export enum ApiVersion {
// ... existing versions ...
April25 = '2025-04',
July25 = '2025-07', // New version
October25 = '2025-10', // Release candidate (next version)
}
Naming convention: {Month}{YY} (e.g., April25, July25). Value format: YYYY-MM.
Also add the next quarterly version as a release candidate enum value (no REST resources needed yet).
mkdir packages/apps/shopify-api/rest/admin/{YYYY-MM}/
mkdir packages/apps/shopify-api/rest/admin/__tests__/{YYYY-MM}/
Copy from the most recent version:
cp -r packages/apps/shopify-api/rest/admin/{PREVIOUS_VERSION}/* \
packages/apps/shopify-api/rest/admin/{NEW_VERSION}/
cp -r packages/apps/shopify-api/rest/admin/__tests__/{PREVIOUS_VERSION}/* \
packages/apps/shopify-api/rest/admin/__tests__/{NEW_VERSION}/
In every resource file, update the apiVersion property:
// From
public static apiVersion = ApiVersion.April25;
// To
public static apiVersion = ApiVersion.July25;
Two changes in every test file:
testConfig({apiVersion: ApiVersion.July25, restResources})
`https://test-shop.myshopify.com/admin/api/2025-07/...`
Edit packages/apps/shopify-api/rest/admin/{NEW_VERSION}/index.ts:
RestResources interfacerestResources exportFor removed resources, delete their imports and exports:
// Remove from interface and export
export interface RestResources extends ShopifyRestResources {
// CustomerAddress: typeof CustomerAddress; // Removed in 2025-07
}
For removed resources (e.g., CustomerAddress in 2025-07):
rest/admin/{NEW_VERSION}/rest/admin/__tests__/{NEW_VERSION}/index.tsFor modified resources:
paths array if endpoints changed# Test the new version
pnpm test -- packages/apps/shopify-api/rest/admin/__tests__/{NEW_VERSION}
# Run all tests
pnpm test
ApiVersion (packages/apps/shopify-api/lib/types.ts)rest/admin/{NEW_VERSION}/rest/admin/__tests__/{NEW_VERSION}/apiVersion updatedindex.ts updated with correct imports/exportsTake shopify/adding-api-versions from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.