--- title: Navigation API description: The API provided to extensions to navigate to extensions or host page. api_version: 2026-07 api_name: customer-account-ui-extensions source_url: html: >- https://shopify.dev/docs/api/customer-account-ui-extensions/2026-07-rc/target-apis/platform-apis/navigation-api md: >- https://shopify.dev/docs/api/customer-account-ui-extensions/2026-07-rc/target-apis/platform-apis/navigation-api.md --- # Navigation API The API provided to extensions to navigate to extensions or host page. ### Support Targets (24) ### Supported targets * customer-account.​footer.​render-after * customer-account.​order-index.​announcement.​render * customer-account.​order-index.​block.​render * customer-account.​order-status.​announcement.​render * customer-account.​order-status.​block.​render * customer-account.​order-status.​cart-line-item.​render-after * customer-account.​order-status.​cart-line-list.​render-after * customer-account.​order-status.​customer-information.​render-after * customer-account.​order-status.​fulfillment-details.​render-after * customer-account.​order-status.​payment-details.​render-after * customer-account.​order-status.​return-details.​render-after * customer-account.​order-status.​unfulfilled-items.​render-after * customer-account.​order.​action.​menu-item.​render * customer-account.​order.​action.​render * customer-account.​order.​page.​render * customer-account.​page.​render * customer-account.​profile.​addresses.​render-after * customer-account.​profile.​announcement.​render * customer-account.​profile.​block.​render * customer-account.​profile.​company-details.​render-after * customer-account.​profile.​company-location-addresses.​render-after * customer-account.​profile.​company-location-payment.​render-after * customer-account.​profile.​company-location-staff.​render-after * customer-account.​profile.​payment.​render-after ## Navigation Navigation API for all extensions. [Refer to supported protocols](https://shopify.dev/docs/api/customer-account-ui-extensions/unstable#custom-protocols) * **addEventListener** **(type: "currententrychange", cb: (event: NavigationCurrentEntryChangeEvent) => void) => void** **required** * **currentEntry** **NavigationHistoryEntry** **required** The currentEntry read-only property of the Navigation interface returns a NavigationHistoryEntry object representing the location the user is currently navigated to right now. * **navigate** **NavigateFunction** **required** The navigate() method navigates to a specific URL, updating any provided state in the history entries list. * **removeEventListener** **(type: "currententrychange", cb: (event: NavigationCurrentEntryChangeEvent) => void) => void** **required** * **updateCurrentEntry** **(options: NavigationUpdateCurrentEntryOptions) => void** **required** The updateCurrentEntry() method of the Navigation interface updates the state of the currentEntry; used in cases where the state change will be independent of a navigation or reload. ### NavigationCurrentEntryChangeEvent The NavigationCurrentEntryChangeEvent interface of the Navigation API is the event object for the currententrychange event, which fires when the Navigation.currentEntry has changed. * from Returns the NavigationHistoryEntry that was navigated from. ```ts NavigationHistoryEntry ``` * navigationType Returns the type of the navigation that resulted in the change. ```ts NavigationTypeString ``` ### NavigationHistoryEntry The NavigationHistoryEntry interface of the Navigation API represents a single navigation history entry. * getState Returns a clone of the available state associated with this history entry. ```ts () => unknown ``` * key Returns the key of the history entry. This is a unique, UA-generated value that represents the history entry's slot in the entries list rather than the entry itself. ```ts string ``` * url Returns the URL of this history entry. ```ts string | null ``` ### NavigationTypeString An enumerated value representing the type of navigation. ```ts 'push' | 'replace' | 'traverse' ``` ### NavigateFunction ### NavigationUpdateCurrentEntryOptions * state ```ts unknown ``` Examples ### Examples * #### Extension.jsx ##### Default ```jsx import '@shopify/ui-extensions/preact'; import {render} from 'preact'; export default async () => { render(, document.body); }; function Extension() { return ( { navigation.navigate('extension://orders'); }} > Navigate to orders path ); } ```