/<credit>/sites on your store domain, and by a member’s public sites request.
The site’s pages still come from the build you publish with the Fluid CLI. See Publish a Site. The fields on this page describe the site on the storefront.
List your sites on the storefront
GET /api/v202604/sites lists your live company sites. A site is live when it’s company-owned, public, switched on, not taken down, and published, or scheduled with its time passed. Call it on the store’s own host, with no token:
q, sort, lang, filter[country], filter[language], page[cursor] and page[limit]. See Find and create resources.
GET /api/v202604/sites/{slug} looks up one site:
seo.indexable set to false. A private, archived, switched-off, taken-down or member-owned site returns 404. See Visibility, drafts, and scheduling.
While Sites are off for your company, the list is empty and every lookup returns 404.
See Public Sites catalog and Public Site by slug for the parameters and the response.
Manage your sites
Manage company sites at/api/v202604/company/sites on https://api.fluid.app. Reads need a Bearer token with storefront.view. Creating, changing and deleting a site needs a signed-in admin’s token with storefront.update: a company API token on its own can’t change a site.
Writes wrap the body in a site key:
title, slug, description, image_url, active, status, publish_at, SEO, metafields and countries. status is draft, scheduled, published or archived. visibility stays a site’s own field: public lets anyone open the site, and private limits it to the people its shares admit.
A few things differ from pages:
- The slug is the site’s address. Leave
slugblank on create and Fluid proposes one from the title. Renaming a site never changes its slug. - Shares mean share-link statistics.
GET /api/v202604/company/sites/{id}/sharesreturns the visits that came through the site’s tracked share links, as it does for a page. Who may open a private site is set through the Member Sites APIs. - Scans run on every save. Each create and update queues a Lighthouse scan and a compliance scan. Read the results at
/api/v202604/company/sites/{id}/lighthouseand/api/v202604/company/sites/{id}/compliance.
filter[status]. It also takes filter[active], and filter[slug] for one exact slug. Member-owned sites never appear in it.
In the Fluid admin, a company site’s screen has a Storefront card for the same fields: Active, Publish at, the search engine title, description and indexing, and Archive or Restore.
See the Sites reference for every company request, its fields and its responses.
SEO and the page head
You don’t have to write SEO tags in your site. Search engines and link previews read the storefront page around your site, and Fluid writes its head for you: the title, the description, the preview image, the Open Graph tags, a Twitter card, and the canonical link. Each value comes from the first source that has one:- The page’s own entry in your site’s
config/meta.json:routeMeta, thenpages, for the page’s exact path. - The site’s SEO settings, which you write with
search_engine_optimizer_attributes. - The
defaultin your site’sconfig/meta.json. - The site’s own
title,descriptionandimage_url. - Your store’s defaults.
config/meta.json still gets the site’s description and image. The SEO settings win over the default in config/meta.json, so what an admin sets shows on every page your code doesn’t name. See SEO and indexing and SEO for storefront resources.
A site’s canonical_url is /home/sites/<slug> on your store domain, such as https://acme.fluid.app/home/sites/spring-launch, like every storefront resource. It takes the visitor to the site. In the page head, a page other than the site’s home adds its own path to that address for the canonical link, such as /home/sites/spring-launch/events. Your store’s sitemap-sites.xml lists the live company sites at those addresses.
Search engines may index a site only when it’s a live, public, switched-on company site, its SEO settings have indexable: true, and your storefront allows indexing. A new site starts with indexing off, so turn it on when the site is ready. Every other site, every member’s site, and every refusal or sign-in page tells search engines not to index it. config/meta.json can’t turn indexing on.
Link members to their sites
/account on your store domain, such as https://acme.fluid.app/account, takes a member to their sites. Use it in a menu, an email or a text. It needs no rep in the address.
- A visitor who isn’t signed in is asked to sign in, then comes back to
/account. - A member with one site goes straight to it.
- A member with several sites sees them all as tiles. The site they chose as home comes first.
- A member with no site yet sees a short message saying so.
/account works only on a store that has Sites turned on.
Switch a site off
active is a site’s on/off switch, separate from status and from visibility. Set "active": false to take a site off the storefront without unpublishing it:
- Its owner and your company’s admins can still open it.
- A guest is asked to sign in, and any other member sees not found.
- It leaves the public catalog, and its public lookup returns
404.
"active": true to bring it back.
When a site is taken down
A company admin can take any site down, a company site or a member’s: Take down on the site’s screen in the Fluid admin, or the take-down request of the company member-site API. Both take an optional reason, at most 1000 characters. The request sends it asreason.
A take-down is separate from the site’s status. While a site is down:
- Its address no longer opens it, and it’s in no public catalog or lookup.
- Its owner can’t publish it, schedule it, switch it on or make it public. Each of those changes is refused with
422. - Its owner can still edit it, such as its title, description, SEO and metafields, and can move it to draft or archive it, so they can fix what led to the take-down.
taken_down_reason on the v2026-10 company member-site API, and as suspension_reason, with suspended_at, on the v2026-04 company endpoints. A member who owns the site sees it as taken_down_reason when they read their site through the Member API. The public endpoints never show it.
Only a company admin can bring a site back, with Bring back in the Fluid admin or the reinstate request of the company member-site API. Nothing the owner writes lifts a take-down.
The v2026-10 member-site APIs keep their own field names: a site’s slug is its handle, its title is its name, and a site that’s down has the status taken_down.
Next steps
- Sites — what a Site is, its address and who can open it.
- Visibility, drafts, and scheduling — the lifecycle every storefront resource shares.
- SEO for storefront resources — the
seoobject and its fallbacks. - Metafields and Country availability — the same on a site as on a page.