Public Posts (blog) catalog
Unauthenticated. Company is resolved from the request subdomain. Returns ONLY live posts (active + resolved-published, country-eligible, language-eligible, not discarded).
Posts are presented on the storefront as the blog — the
canonical storefront URLs use /home/blog and
/home/blog/:slug, even though the API resource is posts.
Query Parameters
Response locale. ISO code (e.g. fr, de). When omitted,
responds in the company's default locale. On the public
surface, falls back to en for any translated field missing
in the requested locale.
"fr"
Free-text search. Backed by Searchkick / Elasticsearch over
translation-aware title and description fields.
Rotulus cursor returned in meta.pagination.next_cursor (or
prev_cursor). Omit on the first page.
Page size. Default 25. Max 100. Requests above 100 return 422.
1 <= x <= 100ISO-2 country code. Restricts the catalog to resources available
in that country — combining the with_country_iso scope's
OR-empty semantics: unrestricted resources (no access_countries
rows) match every country.
"GB"
ISO locale. Restricts the catalog to resources translated in that locale.
"fr"
Restrict the catalog to posts filed under one Category.
Restrict the catalog to posts appearing in one Collection.
Single sort key. Prefix with - for descending. Default
sort is newest blog posts first (post_date DESC NULLS LAST).
post_date, -post_date, title, -title, created_at, -created_at Response
A page of live posts.
Shared success envelope for list / show / create / update
responses: the resource payload is returned alongside a top-level
integer status and meta. Composed onto each resource response
via allOf.