List published posts (headless delivery)
Public, token-gated headless delivery. Returns published posts for the site identified by the fcms_ delivery token. No API key; the token in the path both identifies and authorizes the site. Rate-limited per-IP and per-site; metered against the site's monthly view allowance.
Request
- Base URL: https://next.frase.io/api
- URL: https://next.frase.io/api/cms/{deliveryToken}/posts
- Auth: none required
Path parameters
Per-site fcms_-prefixed delivery token (from CMS settings). Replaces the raw siteId in the path; identifies AND authorizes the site.
Query parameters
Post type filter
Page size (max 100)
Pagination offset
ISO 8601 instant. Returns only posts with updated_at >= this (incremental sync). Combines with type/limit/offset. A malformed value returns 400 before any DB read.
Filter published posts by category slug, site-scoped (a slug from another site never matches). Exact match only in v1 (no descendant/hierarchy inclusion). Combines with type/limit/offset/sort/updated_since/tag. An unknown or never-matching slug returns an empty posts array with 200, not a 404. Has its own ETag and metering dedup key (no cross-filter 304).
Filter published posts by tag slug, site-scoped (a slug from another site never matches). Combines with type/limit/offset/sort/updated_since/category. An unknown or never-matching slug returns an empty posts array with 200, not a 404. Has its own ETag and metering dedup key (no cross-filter 304).
Headers
Conditional GET. When it matches the response ETag, the API returns 304 Not Modified (empty body, ETag still set) and does not meter the request.
Response
Published posts. Carries an ETag (sha1 of the page's id + updated_at); send it back as If-None-Match for a 304 when nothing changed.
Changes
No recorded changes to this operation across all 1 revision of this API.