detektu
Shopify API changes
Deprecation

SDK version 13.0.0 yanked

sdk:npm/@shopify/shopify-api@13.0.0
Product
Shopify Admin GraphQL API
Source
GitHub Releases
Change kind
Sdk Version Yanked
Detected
Last updated

Deterministic evidence

Before / after

Extracted from Shopify's published contract. Open the source ↗

−2+22 changes

1 / 2
"link": "https://github.com/Shopify/shopify-app-js/releases/tag/%40shopify/shopify-api%4013.0.0",
"link": "https://github.com/Shopify/shopify-app-js/releases/tag/%40shopify/shopify-api%4013.0.0",
"notes": "@shopify/shopify-api@13.0.0\n### Major Changes\n\n- 78c8968: **BREAKING CHANGE**: Removed `customShopDomains` configuration parameter. Use `domainTransformations` instead, which provides both validation and transformation capabilities.\n\n The `SHOP_CUSTOM_DOMAIN` environment variable is no longer supported.\n\n **Migration Guide**:\n\n If you were using `customShopDomains` for validation only:\n\n ```typescript\n // Before\n shopifyApi({\n customShopDomains: ['custom\\.domain\\.com'],\n });\n\n // After\n shopifyApi({\n domainTransformations: [\n {\n match: /^([a-zA-Z0-9][a-zA-Z0-9-_]*)\\.custom\\.domain\\.com$/,\n transform: '$1.custom.domain.com',\n },\n ],\n });\n ```\n\n- 0bb7837: Removed support for older API versions: 2022-10, 2023-01, 2023-04, 2023-07, 2023-10, 2024-01, 2024-04, 2024-07.\n\n The corresponding `ApiVersion` enum values and REST resource directories have been removed.\n Apps using these versions must update to `2024-10` or later.\n\n- 1eb863d: Add support for verifying webhooks delivered with the new `shopify-*` headers (replacing the previous `x-shopify-*` headers), and refactor webhook validation types to a discriminated union on `webhookType`.\n\n **Breaking change in `@shopify/shopify-api`:** `WebhookFields` is now a discriminated union (`WebhooksWebhookFields | EventsWebhookFields`) keyed on the required `webhookType` field. `webhookId` only exists on `WebhooksWebhookFields`; `eventId` is required on `EventsWebhookFields`. Consumers must narrow on `webhookType` to access type-specific fields. Both `WebhooksWebhookFields` and `EventsWebhookFields` are exported for use in type narrowing.\n\n Before:\n\n ```typescript\n const check = await shopify.webhooks.validate({rawBody, rawRequest: request});\n if (check.valid) {\n console.log(check.webhookId);\n }\n ```\n\n After:\n\n ```typescript\n const check = await shopify.webhooks.validate({rawBody, rawRequest: request});\n if (check.valid) {\n if (check.webhookType === 'webhooks') {\n console.log(check.webhookId); // only on webhooks\n console.log(check.subTopic); // only on webhooks\n } else {\n console.log(check.eventId); // only on events\n console.log(check.handle); // only on events\n console.log(check.action); // only on events\n console.log(check.resourceId); // only on events\n }\n }\n ```\n\n **`@shopify/shopify-app-react-router` and `@shopify/shopify-app-remix`:** The webhook context now includes new fields based on the new webhook headers, such as `webhookType`, `handle`, `action`, `resourceId`, `triggeredAt`, and `eventId`. For events webhooks, `webhookId` is set to the value of the `eventId` header for backwards compatibility — prefer using `eventId` directly for events webhooks, as `webhookId` will be removed from events webhooks in the next major version.\n\n ```typescript\n export const action = async ({request}: ActionFunctionArgs) => {\n const {webhookType, handle, action, resourceId, triggeredAt, eventId} =\n await authenticate.webhook(request);\n return new Response();\n };\n ```\n\n### Patch Changes\n\n- 0d4a3f7: Updated `express` from v4 to v5 and `@types/express` from v4 to v5.\n\n **Breaking changes for consumers of `@shopify/shopify-app-express`:**\n\n - `express` has been moved from `dependencies` to `peerDependencies`. You must install `express@^5.0.0` directly in your project.\n - Express 5 requires Node.js >= 18 (this package already requires >= 20).\n - If you use wildcard route patterns, update them for Express 5 syntax. `app.use()` already matches all subpaths, so the `/*` suffix is unnecessary:\n - `app.use('/api/*', ...)` → `app.use('/api', ...)`\n - `app.use('/*', ...)` → `app.use('/', ...)`\n - For `app.get`/`app.post` routes, wildcards must be named: `app.get('/api/*path', ...)`\n - `req.body` now defaults to `undefined` (was `{}` in v4) when no body-parser middleware is applied. Ensure you use `express.json()`, `express.text()`, or similar middleware before accessing `req.body`.\n - `req.query` is now read-only and uses the `querystring` parser by default instead of `qs`. Nested object query parameters are no longer parsed by default.\n - See the [Express 5 migration guide](https://expressjs.com/en/guide/migrating-5.html) for the full list of changes.\n\n Added a null guard in `graphqlProxy` to handle `req.body` being `undefined`.\n\n- 4c1789b: Updated `@graphql-codegen/typescript`, ` @parcel/watcher`, ` isbot` dependencies\n\n- d5ae946: Publish TypeScript source files to npm so \"Go to Definition\" in IDEs navigates to real source code instead of compiled `.d.ts` declaration files. Source maps already pointed to the correct paths — the source files just weren't included in the published packages.\n\n- Updated dependencies [df81075]\n\n- Updated dependencies [d5ae946]\n - @shopify/graphql-client@1.4.2\n - @shopify/admin-api-client@1.1.2\n - @shopify/storefront-api-client@1.0.10",
"notes": "@shopify/shopify-api@13.0.0\n### Major Changes\n\n- 78c8968: **BREAKING CHANGE**: Removed `customShopDomains` configuration parameter. Use `domainTransformations` instead, which provides both validation and transformation capabilities.\n\n The `SHOP_CUSTOM_DOMAIN` environment variable is no longer supported.\n\n **Migration Guide**:\n\n If you were using `customShopDomains` for validation only:\n\n ```typescript\n // Before\n shopifyApi({\n customShopDomains: ['custom\\.domain\\.com'],\n });\n\n // After\n shopifyApi({\n domainTransformations: [\n {\n match: /^([a-zA-Z0-9][a-zA-Z0-9-_]*)\\.custom\\.domain\\.com$/,\n transform: '$1.custom.domain.com',\n },\n ],\n });\n ```\n\n- 0bb7837: Removed support for older API versions: 2022-10, 2023-01, 2023-04, 2023-07, 2023-10, 2024-01, 2024-04, 2024-07.\n\n The corresponding `ApiVersion` enum values and REST resource directories have been removed.\n Apps using these versions must update to `2024-10` or later.\n\n- 1eb863d: Add support for verifying webhooks delivered with the new `shopify-*` headers (replacing the previous `x-shopify-*` headers), and refactor webhook validation types to a discriminated union on `webhookType`.\n\n **Breaking change in `@shopify/shopify-api`:** `WebhookFields` is now a discriminated union (`WebhooksWebhookFields | EventsWebhookFields`) keyed on the required `webhookType` field. `webhookId` only exists on `WebhooksWebhookFields`; `eventId` is required on `EventsWebhookFields`. Consumers must narrow on `webhookType` to access type-specific fields. Both `WebhooksWebhookFields` and `EventsWebhookFields` are exported for use in type narrowing.\n\n Before:\n\n ```typescript\n const check = await shopify.webhooks.validate({rawBody, rawRequest: request});\n if (check.valid) {\n console.log(check.webhookId);\n }\n ```\n\n After:\n\n ```typescript\n const check = await shopify.webhooks.validate({rawBody, rawRequest: request});\n if (check.valid) {\n if (check.webhookType === 'webhooks') {\n console.log(check.webhookId); // only on webhooks\n console.log(check.subTopic); // only on webhooks\n } else {\n console.log(check.eventId); // only on events\n console.log(check.handle); // only on events\n console.log(check.action); // only on events\n console.log(check.resourceId); // only on events\n }\n }\n ```\n\n **`@shopify/shopify-app-react-router` and `@shopify/shopify-app-remix`:** The webhook context now includes new fields based on the new webhook headers, such as `webhookType`, `handle`, `action`, `resourceId`, `triggeredAt`, and `eventId`. For events webhooks, `webhookId` is set to the value of the `eventId` header for backwards compatibility — prefer using `eventId` directly for events webhooks, as `webhookId` will be removed from events webhooks in the next major version.\n\n ```typescript\n export const action = async ({request}: ActionFunctionArgs) => {\n const {webhookType, handle, action, resourceId, triggeredAt, eventId} =\n await authenticate.webhook(request);\n return new Response();\n };\n ```\n\n### Patch Changes\n\n- 0d4a3f7: Updated `express` from v4 to v5 and `@types/express` from v4 to v5.\n\n **Breaking changes for consumers of `@shopify/shopify-app-express`:**\n\n - `express` has been moved from `dependencies` to `peerDependencies`. You must install `express@^5.0.0` directly in your project.\n - Express 5 requires Node.js >= 18 (this package already requires >= 20).\n - If you use wildcard route patterns, update them for Express 5 syntax. `app.use()` already matches all subpaths, so the `/*` suffix is unnecessary:\n - `app.use('/api/*', ...)` → `app.use('/api', ...)`\n - `app.use('/*', ...)` → `app.use('/', ...)`\n - For `app.get`/`app.post` routes, wildcards must be named: `app.get('/api/*path', ...)`\n - `req.body` now defaults to `undefined` (was `{}` in v4) when no body-parser middleware is applied. Ensure you use `express.json()`, `express.text()`, or similar middleware before accessing `req.body`.\n - `req.query` is now read-only and uses the `querystring` parser by default instead of `qs`. Nested object query parameters are no longer parsed by default.\n - See the [Express 5 migration guide](https://expressjs.com/en/guide/migrating-5.html) for the full list of changes.\n\n Added a null guard in `graphqlProxy` to handle `req.body` being `undefined`.\n\n- 4c1789b: Updated `@graphql-codegen/typescript`, ` @parcel/watcher`, ` isbot` dependencies\n\n- d5ae946: Publish TypeScript source files to npm so \"Go to Definition\" in IDEs navigates to real source code instead of compiled `.d.ts` declaration files. Source maps already pointed to the correct paths — the source files just weren't included in the published packages.\n\n- Updated dependencies [df81075]\n\n- Updated dependencies [d5ae946]\n - @shopify/graphql-client@1.4.2\n - @shopify/admin-api-client@1.1.2\n - @shopify/storefront-api-client@1.0.10",
"published_at": "2026-03-11T19:04:02Z",
"published_at": "2026-03-11T19:04:02Z",
"registry_message": "",
"registry_message": "The registry no longer lists this version.",
"version": "13.0.0",
"version": "13.0.0",
"yanked": false
"yanked": true
}
}

Deadline

Deprecation timeline

sdk:npm/@shopify/shopify-api@13.0.0 was announced as deprecated on Oct 9, 2026, with no removal date yet.

See all Shopify deprecation deadlines →

Interpreted documentation change

What the vendor announced

The evidence cites the 13.0.0 release notes for @shopify/shopify-api, detailing breaking changes and migration guidance, but the current_text states only that “The registry no longer lists this version.” This indicates a change in availability/listing rather than substantive API changes, and the evidence supports documentation of prior changes rather than a new change to implement.

The registry no longer lists this version.

Vendor source ↗

Monitored for you

Does this change affect your integration?

Choose the operations and fields your services use. Detektu matches Shopify findings to that declared usage so your team can review the relevant evidence. No agent or repository access required.

Multi-source correlation

Other Shopify findings correlated with this change across sources.

  1. Info
    Build with confidence: Shopify AI Toolkit's security checkdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/build-more-secure-apps-with-shopify-s-ai-toolkit-security-check
    Shopify Admin GraphQL API
  2. Info
    Add shopping and Shop Pay checkout to any agent with Shop MCPdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/add-shopping-and-shop-pay-checkout-to-any-agent-with-shop-mcp
    Shopify Admin GraphQL API
  3. Info
    Checkout footer visibility now applies to merchant-configurable contentdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/checkout-footer-visibility-now-applies-to-merchant-configurable-content
    Shopify Admin GraphQL API
  4. Info
    Manage packed product dimensions with the GraphQL Admin APIdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/manage-packed-product-dimensions-with-the-graphql-admin-api
    Shopify Admin GraphQL API
  5. Info
    Hydrogen 2026-10 is now availabledoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/hydrogen-2026-10-is-now-available
    Shopify Admin GraphQL API
  6. Info
    Shopify Flow: Flow Trigger Lifecycle Callback extensions now support relative url pathsdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/shopify-flow-flow-trigger-lifecycle-callback-extensions-now-support-relative-url-paths
    Shopify Admin GraphQL API
  7. Info
    Cart updates that result in no changes to the cart no longer trigger carts/update webhooksdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/unchanged-carts-no-longer-trigger-carts-update-webhooks
    Shopify Admin GraphQL API
  8. Info
    Identify the published version running in a POS extensiondoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/identify-the-published-version-running-in-a-pos-extension
    Shopify Admin GraphQL API
  9. Info
    Detect when a POS extension screen finishes navigatingdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/detect-when-a-pos-extension-screen-finishes-navigating
    Shopify Admin GraphQL API
  10. Info
    Global Catalog REST API stops serving traffic on November 2, 2026doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/global-catalog-rest-api-stops-serving-traffic-on-november-2-2026
    Shopify Admin GraphQL API
  11. Info
    Catalog API now returns compare-at prices as `list_price`doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/catalog-api-now-returns-compare-at-prices-as-list_price
    Shopify Admin GraphQL API
  12. Info
    New `owner_type` field for metafield declarations in Checkout and Customer Account UI extensions, required in 2027-01doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/metafield-owner-types-required-for-checkout-and-customer-account-ui-extensions
    Shopify Admin GraphQL API
  13. Info
    POS UI extensions now return percentage values for percentage discountsdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/pos-ui-extensions-now-return-percentage-values-for-percentage-discounts
    Shopify Admin GraphQL API
  14. Info
    Per-customer request limit for the Customer Account APIdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/per-customer-request-limit-for-the-customer-account-api
    Shopify Admin GraphQL API
  15. Info
    Downgrade app access scopes from write to readdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/downgrade-app-access-scopes-from-write-to-read
    Shopify Admin GraphQL API
  16. Info
    Cart mutations reject unconfirmed writes in POS UI extensions 2026-10doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/cart-mutations-reject-unconfirmed-writes-in-pos-ui-extensions-2026-10
    Shopify Admin GraphQL API
  17. Info
    Sign in with Shop opens to storefront appsdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/sign-in-with-shop-storefront-apps
    Shopify Admin GraphQL API
  18. Info
    Meet the 2026 Shopify Build Award winnersdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/shopify-build-award-2026
    Shopify Admin GraphQL API
  19. Info
    Polaris: unified and for the webdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/polaris-unified-and-for-the-web
    Shopify Admin GraphQL API
  20. Info
    Polaris Goes Stable: The Future of Shopify App Developmentdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/polaris-goes-stable-the-future-of-shopify-app-development-is-here
    Shopify Admin GraphQL API
  21. Info
    The next generation of Shopify fulfillment is comingdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/next-gen-fulfillment
    Shopify Admin GraphQL API
  22. Info
    New tax fields for return shipping fees in the GraphQL Admin APIdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/new-return-shipping-fee-tax-fields
    Shopify Admin GraphQL API
  23. Info
    Meet Shopify Dev Assistant: Build Shopify Apps Fasterdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/meet-shopify-dev-assistant-build-shopify-apps-faster-than-ever
    Shopify Admin GraphQL API
  24. Info
    Introducing the new Collection Sources APIdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/introducing-the-new-collections-api
    Shopify Admin GraphQL API
  25. Info
    Introducing admin intents: Keep merchants in your appdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/introducing-admin-intents-keep-merchants-in-your-app-while-managing-shopify-resources
    Shopify Admin GraphQL API
  26. Info
    Build More, Manage Less: Teams, Stores, and Roles Simplifieddoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/improved-building-for-partners
    Shopify Admin GraphQL API
  27. Info
    App Events: See all your app activity in one placedoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/app-events
    Shopify Admin GraphQL API
  28. Info
    Raising the bar: 2025 Shopify Build Awards winnersdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/2025-shopify-build-awards
    Shopify Admin GraphQL API
  29. Info
    What's new in Polaris 2.0.0-rc.1doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/what-s-new-in-polaris-2-0-0-rc-1
    Shopify Admin GraphQL API
  30. Info
    New Shop Campaigns metrics and dimensions in ShopifyQL API version 2026-10doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/new-shop-campaigns-metrics-and-dimensions-on-api-version-2026-10
    Shopify Admin GraphQL API
  31. Info
    Return policy profiles are now available in the GraphQL Admin APIdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/return-policy-profiles-are-now-available-in-the-graphql-admin-api
    Shopify Admin GraphQL API
  32. Info
    New APIs for buyer-requested order editsdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/new-apis-for-buyer-requested-order-edits
    Shopify Admin GraphQL API