--- title: Improvements and changes coming to the Storefront API - Shopify developer changelog description: Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities. source_url: html: https://shopify.dev/changelog/improvements-and-changes-coming-to-the-storefront-api?itcat=partner_blog&itterm=storefront_api md: https://shopify.dev/changelog/improvements-and-changes-coming-to-the-storefront-api.md?itcat=partner_blog&itterm=storefront_api --- [Back to Developer changelog](https://shopify.dev/changelog) October 1, 2021 Tags: * Action Required * API * 2021-10 # Improvements and changes coming to the Storefront API At this year's Unite conference, we announced that we wanted to make some sweeping changes and improvements to the Storefront API. With the `2021-10` release, we are taking the first steps towards that goal. ### Improved lookup fields You can now fetch a `Product`, `Collection`, `Page`, or `Blog` by its handle *or* ID: ```graphql query FetchProduct { product(id: "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEK") { ... } # OR product(handle: "my-cool-shirt") { ... } } ``` With the introduction of these new fields, the following fields are now deprecated and will be removed in a future release: * `QueryRoot.blogByHandle` * `QueryRoot.pageByHandle` * `QueryRoot.collectionByHandle` * `QueryRoot.productByHandle` For more details, please see . ### Introducing `OnlineStorePublishable` In order to improve consistency among objects with common properties, we have added a new GraphQL interface type named `OnlineStorePublishable`. This interface is used to denote a resource type that can be published to the Online Store sales channel, such as `Product`, `Collection`, `Page`, and others. ```graphql { collection(handle: "staff-picks") { onlineStoreUrl } } ``` As a result, the following fields are now deprecated and will be removed in a future release: * `Page.url` * `Blog.url` * `Article.url` More information about `OnlineStorePublishable` can be found [here](https://shopify.dev/api/storefront/reference/common-objects/onlinestorepublishable?api%5Bversion%5D=2021-10). ### Upcoming changes to object IDs One of the most consistent pieces of feedback we've received revolves around a subtle but impactful difference between how object IDs are represented in our Admin and Storefront GraphQL APs. You may have noticed that on the Storefront API, the values for object IDs are Base64 encoded, and furthermore, the decoded value is identical to the Admin API's response. We understand that this slight difference has proven to be problematic for developers who need to inter-operate between the two APIs. Starting on January 3, 2022 we will begin serving non-encoded object IDs from the `unstable` version of the Storefront GraphQL API, with the goal of having the `2022-04` release be the first stable version that does not serve Base64 encoded object IDs. Refer to [this guide](https://shopify.dev/custom-storefronts/migration/object-ids) for more details on the change and how to migrate your apps.