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.