API reference

Unified data access (/data)

GET /data/{slug} 🔑

Returns exactly the same data as data("slug", …) in the template – regardless of whether slug is a collection or a REST source. All query parameters are passed through as parameters.

For collections, the following parameters are available:

Parameter Description
sort Field to sort by; -feld = descending. Numbers are compared numerically, everything else as text. Also available: id, _created, _updated
limit Maximum number
offset Skips the first n entries (for pagination)
drafts=1 Includes unpublished entries
any other Equality filter: ?kategorie=News returns only entries with kategorie == "News"
feld__gt, feld__gte, feld__lt, feld__lte Comparison: numbers numerically, otherwise as text – so date fields (JJJJ-MM-TT) chronologically, e.g. ?datum__gte=2026-10-05. Entries without a value in the field are excluded
feld__ne Not equal (entries without the field count as not equal)

Processing order: filter → sort → offset → limit.

Entries are returned flat – the fields from data plus id, _created, _updated:

curl -H "Authorization: Bearer $TOKEN" \
  "https://example.com/api/v1/data/blog?kategorie=News&sort=-datum&limit=2"
[
  { "id": 9, "titel": "Neu", "slug": "neu", "datum": "2026-10-04", "kategorie": "News", "bild": 7, "text": "…", "_created": 1791100000, "_updated": 1791100000 },
  { "id": 5, "titel": "Hallo Welt", "slug": "hallo-welt", "datum": "2026-10-01", "kategorie": "News", "bild": null, "text": "…", "_created": 1791000000, "_updated": 1791000000 }
]

For REST sources, the parameters fill the source’s {platzhalter}; the result is the (cached) content at list_path:

curl -H "Authorization: Bearer $TOKEN" "https://example.com/api/v1/data/produkte?cat=schuhe"

Errors: 404 unknown slug, 502 REST source failed.