detektu
Shopify API changes
Deprecation

SDK version 12.2.0 yanked

sdk:npm/@shopify/shopify-api@12.2.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%4012.2.0",
"link": "https://github.com/Shopify/shopify-app-js/releases/tag/%40shopify/shopify-api%4012.2.0",
"notes": "@shopify/shopify-api@12.2.0\n### Minor Changes\n\n- f1af47e: This change introduces full support for OAuth refresh tokens in the `@shopify/shopify-api` package, enabling apps to use expiring access tokens and rotate them securely.\n\n - **Session Model Updates**: The `Session` class now includes properties to store refresh token information:\n - `refreshToken`: The refresh token string.\n - `refreshTokenExpires`: The date when the refresh token expires.\n - Serialization logic has been updated to persist these fields.\n - **New Auth Methods**:\n - `shopify.auth.refreshToken`: A new method to exchange a refresh token for a new access token.\n - `shopify.auth.migrateToExpiringToken`: A helper method to migrate existing non-expiring offline tokens to expiring tokens.\n - **Token Exchange Updates**:\n - The `tokenExchange` method now accepts an `expiring` parameter to request expiring access tokens.\n\n ```ts\n // Migrating a non-expiring token\n const {session} = await shopify.auth.migrateToExpiringToken({\n shop: 'my-shop.myshopify.com',\n nonExpiringOfflineAccessToken: 'shpo_...',\n });\n\n // Refreshing an expired token\n const {session: newSession} = await shopify.auth.refreshToken({\n shop: session.shop,\n refreshToken: session.refreshToken,\n });\n\n console.log(newSession.accessToken); // New access token\n console.log(newSession.refreshToken); // New refresh token\n ```\n\n### Patch Changes\n\n- a6a13bf: Updated `lossless-json` dependencies",
"notes": "@shopify/shopify-api@12.2.0\n### Minor Changes\n\n- f1af47e: This change introduces full support for OAuth refresh tokens in the `@shopify/shopify-api` package, enabling apps to use expiring access tokens and rotate them securely.\n\n - **Session Model Updates**: The `Session` class now includes properties to store refresh token information:\n - `refreshToken`: The refresh token string.\n - `refreshTokenExpires`: The date when the refresh token expires.\n - Serialization logic has been updated to persist these fields.\n - **New Auth Methods**:\n - `shopify.auth.refreshToken`: A new method to exchange a refresh token for a new access token.\n - `shopify.auth.migrateToExpiringToken`: A helper method to migrate existing non-expiring offline tokens to expiring tokens.\n - **Token Exchange Updates**:\n - The `tokenExchange` method now accepts an `expiring` parameter to request expiring access tokens.\n\n ```ts\n // Migrating a non-expiring token\n const {session} = await shopify.auth.migrateToExpiringToken({\n shop: 'my-shop.myshopify.com',\n nonExpiringOfflineAccessToken: 'shpo_...',\n });\n\n // Refreshing an expired token\n const {session: newSession} = await shopify.auth.refreshToken({\n shop: session.shop,\n refreshToken: session.refreshToken,\n });\n\n console.log(newSession.accessToken); // New access token\n console.log(newSession.refreshToken); // New refresh token\n ```\n\n### Patch Changes\n\n- a6a13bf: Updated `lossless-json` dependencies",
"published_at": "2025-12-11T19:28:26Z",
"published_at": "2025-12-11T19:28:26Z",
"registry_message": "",
"registry_message": "The registry no longer lists this version.",
"version": "12.2.0",
"version": "12.2.0",
"yanked": false
"yanked": true
}
}

Deadline

Deprecation timeline

sdk:npm/@shopify/shopify-api@12.2.0 was announced as deprecated on Sep 1, 2026, with no removal date yet.

See all Shopify deprecation deadlines →

Interpreted documentation change

What the vendor announced

The evidence describes a previous minor release (12.2.0) adding full OAuth refresh token support, session fields, new methods, and token exchange updates, followed by current_text indicating the registry no longer lists this version. This implies a documentation/versioning change where the specified version has been removed from the registry; no explicit replacement endpoint or new deadline is provided.

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
    Password Protected Shop Dev flows on Shopify Theme CLI v3.83.x and older to be deprecateddoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/password-protected-shop-dev-flows-on-shopify-theme-cli-v3-83-x-and-older-to-be-deprecated
    Shopify Admin GraphQL API
  2. Info
    Shopify storefronts now support UCP 2026-08-25doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/08-25-is-now-supported
    Shopify Admin GraphQL API
  3. Info
    Expiring offline access tokens required for new public apps as of April 1, 2026doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/expiring-offline-access-tokens-required-for-public-apps-april-1-2026
    Shopify Admin GraphQL API
  4. Info
    Hydrogen developer preview update: September 2, 2026doc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/hydrogen-developer-preview-update-september-2-2026
    Shopify Admin GraphQL API
  5. Info
    The Polaris CDN is adopting semantic versioningdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/the-polaris-cdn-is-adopting-semantic-versioning
    Shopify Admin GraphQL API
  6. Info
    Polaris CDN 1.1 release candidatedoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/polaris-cdn-1-1-release-candidate
    Shopify Admin GraphQL API
  7. Info
    More resilient refreshes for expiring offline access tokensdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/more-resilient-refreshes-for-expiring-offline-access-tokens
    Shopify Admin GraphQL API
  8. Info
    Oxygen is now available on trial plan storesdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/oxygen-is-now-available-on-trial-plan-stores
    Shopify Admin GraphQL API
  9. Info
    Build Shopify apps in PHP and Python with new official packagesdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/build-shopify-apps-in-php-and-python-with-new-official-packages
    Shopify Admin GraphQL API
  10. Info
    GitHub commits now name the last theme editordoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/github-commits-now-name-the-last-theme-editor
    Shopify Admin GraphQL API
  11. Info
    Four additional topics are now available for Eventsdoc:019fb619-9b4a-74ac-a83e-3ffa98844fb4::feed/https://shopify.dev/changelog/four-additional-topics-are-now-available-for-events
    Shopify Admin GraphQL API