profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingMedia Library

Headless

Quick startSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

GET /routes

List a website's routes, paginated, with effective block IDs.

List a website's routes, paginated and optionally filtered by state and pattern. Routes with empty block_ids are backfilled from the matching dynamic-default route, so the returned block_ids are the effective blocks to render.

Auth: API key (x-api-key header or api_key query param).

Query parameters

ParamTypeRequiredNotes
websiteIduuidyesTarget website.
api_keystringnoAlternative to the x-api-key header.
statestringnoFilter by route state (exact match).
patternstringnoSubstring match on the route pattern (LIKE, wildcards escaped).
limitintegernoPage size, default 50, clamped to 1–100.
offsetintegernoRows to skip, default 0.

Results are ordered by updated_at DESC.

Response

{
  "routes": [
    {
      "website_id": "...",
      "path": "/docs/getting-started",
      "pattern": "/docs/getting-started",
      "label": "Getting Started",
      "tags": [],
      "block_ids": ["..."],
      "template_block_ids": ["..."],
      "override_mode": "merge",
      "state": "Live",
      "param_bindings": {},
      "created_at": "2026-06-23T18:34:16Z",
      "updated_at": "2026-06-23T20:36:55Z"
    }
  ],
  "total": 42,
  "hasMore": true
}

total is the full filtered count; hasMore is offset + limit < total. label, param_bindings, template_block_ids, and override_mode are omitted or null when unset.

Example

curl '{CMS_API_URL}/routes?websiteId=<uuid>&limit=20' \
  -H 'x-api-key: <key>'

Errors

  • 400 β€” missing or invalid websiteId
  • 401 β€” invalid API key (or missing when the server requires one)
Continue Reading
Previousβ€ΉConnect your websiteNextGET /routeβ€Ί