Skip to main content
A slug is a resource’s public identifier: the summer-sale in /api/v202604/collections/summer-sale. Public lookups and storefront URLs use it. Company endpoints use the numeric id instead.

How a slug is set

  • Generated from the title. If you don’t send a slug, Fluid generates one from title when you create the resource.
  • Unique within the store. Two resources of the same type in one store can’t share a slug.
  • Media slugs are always generated. You can’t set or change a medium’s slug through the v2026-04 API.

What happens when you rename

Changing title doesn’t change the slug for most resources. Pages are the exception: To stop a page’s slug from following its title, pin it.

Pin a slug

Send slug together with custom_slug: true. The slug then stays fixed until you change it yourself:
custom_slug: true without a slug returns 422. Company responses include custom_slug, so you can tell whether a slug is pinned. Public responses leave it out.

Change a slug

Send a new slug on an update. Public lookups by the old slug then return 404, so update any links, sitemaps, or saved URLs that used it.

Canonical URLs

Every resource returns a canonical_url: the address of its storefront page. Fluid builds it from the store’s address and the resource’s slug. You can’t set it directly — change the slug instead. For example, a post with the slug spring-training-plan on acme.fluid.app has the canonical URL https://acme.fluid.app/home/blog/spring-training-plan.

Next steps