---
title: Routes
description: Storefront URLs, optional account and chat routes, and service endpoints.
url: "https://shop-docs.labs.vercel.dev/docs/reference/routes"
docs_index: /llms.txt
lastUpdated: 2026-10-13
type: reference
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

Storefront pages use the paths below without a language prefix. Customer accounts and Shop Agent are optional and disabled by default.

## Pages

| Route                                 | Description                                               |
| ------------------------------------- | --------------------------------------------------------- |
| `/`                                   | Home page                                                 |
| `/products/[handle]`                  | Product details; option query parameters select a variant |
| `/collections`                        | Collection index                                          |
| `/collections/[handle]`               | Collection with filtering, sorting, and pagination        |
| `/collections/all`                    | All products                                              |
| `/search`                             | Product search results                                    |
| `/cart`                               | Full cart page                                            |
| `/blogs/[blogHandle]`                 | Shopify blog                                              |
| `/blogs/[blogHandle]/[articleHandle]` | Shopify article                                           |
| `/pages/[handle]`                     | Shopify page                                              |
| `/policies/[handle]`                  | Store policy                                              |

## Service endpoints

| Route                        | Description                                                        |
| ---------------------------- | ------------------------------------------------------------------ |
| `GET /api/cart`              | Read the current cart                                              |
| `POST /api/cart`             | Create a cart or change its contents                               |
| `GET /api/predictive-search` | Search suggestions                                                 |
| `POST /api/ucp/mcp`          | UCP MCP proxy                                                      |
| `POST /api/webhooks/shopify` | Receive signed Shopify webhooks for catalog and metaobject updates |

See [Cart](/docs/anatomy/cart) for shopper behavior and [Environment Variables](/docs/reference/env-vars) for webhook configuration.

## Shopify-compatible paths

The storefront answers these standard Shopify paths before page routing, so links built for a Shopify store keep working. Pages added at these paths do not render.

| Route                                                                  | Description                                    |
| ---------------------------------------------------------------------- | ---------------------------------------------- |
| `GET /checkout`                                                        | Redirect to the current cart's checkout        |
| `GET /cart/[variant-id]:[quantity]`                                    | Shopify cart permalink, sent to your store     |
| `GET /buy/[item]:[quantity]`                                           | Shopify buy permalink, sent to your store      |
| `/api/mcp`                                                             | Shopify's Storefront MCP endpoint              |
| `/cart.js`, `/cart/add`, `/cart/update`, `/cart/change`, `/cart/clear` | Shopify Ajax Cart API, forwarded to your store |

## Shop Agent

These endpoints are available only when `agent.isEnabled` is `true`. Follow [Shop Agent setup](/docs/anatomy/agent) before enabling them.

| Route                         | Description                                                          |
| ----------------------------- | -------------------------------------------------------------------- |
| `/eve/v1/*`                   | Conversation creation, messages, history, and controls               |
| `POST /api/agent/session`     | Prepare the browser cart for chat; accepts same-origin requests only |
| `GET /agent/ucp-profile.json` | Public profile for the assistant's Shopify catalog integration       |

Conversation endpoints are supplied by [Eve](https://eve.dev/docs). Enabling customer accounts does not make conversations private; see the [chat privacy requirements](/docs/anatomy/agent#privacy-and-usage-limits).

## Customer accounts

These routes require `auth.isEnabled` to be `true` and the [customer authentication credentials](/docs/reference/env-vars#customer-authentication). Account pages require sign-in. See [Authentication](/docs/anatomy/authentication) for setup and callback URLs.

| Route                     | Description                                        |
| ------------------------- | -------------------------------------------------- |
| `/account`                | Redirect to `/account/profile`                     |
| `/account/profile`        | Customer profile                                   |
| `/account/addresses`      | Saved addresses                                    |
| `/account/orders`         | Order history                                      |
| `/account/orders/[id]`    | Order details                                      |
| `GET /account/login`      | Start customer sign-in                             |
| `GET /account/authorize`  | Sign-in callback                                   |
| `/account/sign-in-failed` | Shown when sign-in does not finish; offers a retry |
| `GET /account/refresh`    | Refresh the customer session                       |
| `POST /account/logout`    | Sign out; requires a same-origin request           |

## Discovery and Markdown

| Route                        | Description                                                                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `/robots.txt`                | Crawler rules                                                                                                                  |
| `/sitemap.xml`               | Sitemap index                                                                                                                  |
| `/sitemap/static.xml`        | Home page and store policy URLs                                                                                                |
| `/sitemap/[type]-[page].xml` | Paged entries, where `[type]` is `products`, `collections`, `pages`, `blogs`, or `articles`, such as `/sitemap/products-1.xml` |
| `/llms.txt`                  | Storefront guide for AI agents                                                                                                 |
| `/md`                        | Home page in Markdown                                                                                                          |
| `/md/products/[handle]`      | Product in Markdown                                                                                                            |
| `/md/collections/[handle]`   | Collection in Markdown                                                                                                         |
| `/md/search`                 | Search query in Markdown, pointing agents to UCP                                                                               |
| `/.well-known/ucp`           | Shopify's business profile for commerce integrations                                                                           |

The home, product, collection-detail, and search URLs also return Markdown when requested with `Accept: text/markdown` or with `.md` appended, such as `/products/[handle].md`. The home page's Markdown URL is `/index.md`. See [Proxy](/docs/anatomy/proxy) when adding custom routing or integrations.

## Variant URLs

Product options use one query parameter per option. The key is the option name in Shopify, and the value is the selected option value.

For example, `/products/your-product?Color=Blue&Size=XS` selects the blue, extra-small variant. Names and values are matched case-insensitively, so `?color=blue&size=xs` selects the same options. Without option parameters, the page uses the product's default variant.

Liquid-style links such as `/products/your-product?variant=123456789` redirect to the matching option-parameter URL. Selecting an option on the same product keeps unrelated query parameters, such as campaign tags.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)