Links

The navigation tree keyed by uuid — the one endpoint that includes folders.

Links are how you build navigation. Unlike /stories, this endpoint includes folders — that is the whole reason it exists — and it returns a lightweight record per entry rather than full content.

shell
curl "https://api.exacta.im/v2/cdn/links?token=$EXACTA_TOKEN"

Query parameters

tokenrequiredstring

Delivery token. Selects the branch.

versionpublished | draft

Defaults to published. With a preview token on the preview branch, draft also lists unpublished entries.

starts_withstring

Restrict to a path prefix, so you can fetch one subtree of the navigation.

Response

The response is an object keyed by uuid, not an array — Storyblok’s shape, which lets a client look up a link without scanning. Entries are ordered by position, then by full slug.

json
{
  "links": {
    "6b2c9b8a-1f43-4a0e-8f2e-2b7a0d5c1e33": {
      "id": 4183,
      "uuid": "6b2c9b8a-1f43-4a0e-8f2e-2b7a0d5c1e33",
      "slug": "blog/hello-world",
      "path": null,
      "parent_id": 4180,
      "name": "Hello world",
      "is_folder": false,
      "published": true,
      "is_startpage": false,
      "position": 10,
      "real_path": "/blog/hello-world"
    }
  },
  "cv": 1754236800
}

Link object

uuidstring

Stable across every branch. The key of the response object.

idinteger

Branch-local. Differs for the same story on another branch.

slugstring

The full slug, including folders. Named slug rather than full_slug because that is what Storyblok calls it here.

parent_idinteger | null

Branch-local id of the containing folder. Rebuilt per branch when content is copied.

is_folderboolean

True for folders, which appear only on this endpoint.

publishedboolean

Whether the entry is published on this branch.

real_pathstring

The full slug with a leading slash — convenient for routing.