Reference

The authoritative, per-endpoint reference is the live OpenAPI schema generated from the running code by drf-spectacular. It always matches your installed version — exact paths, parameters, response fields and examples — which a hand-written page cannot guarantee. Set it up once (see Generate the OpenAPI schema and a typed client) and browse:

  • Swagger UI/api/docs/

  • ReDoc/api/redoc/

  • Raw schema/api/schema/ (or /api/schema-json/)

This section documents what the schema cannot express on its own:

  • Conventions — the cross-cutting behavioural rules (language prefix, preview, html, X-Site-ID, pagination, permissions and errors).

  • Settings — the settings that change how the API behaves.

The rest of this page is a map of the available endpoints. Treat the paths as stable but defer to the live schema for the precise parameters and response of your version.

Endpoint catalogue

Content

Endpoint

Returns

GET /api/languages/

All configured languages for the site, each with a public flag (non-public languages are listed too). Not language-prefixed.

GET /api/{language}/pages/

The home page, with placeholder content embedded.

GET /api/{language}/pages/{path}/

A page by path, with placeholder content embedded.

GET /api/{language}/pages-list/

Paginated list of page metadata (no embedded content).

GET /api/{language}/pages-tree/

The full page tree as metadata (no embedded content).

GET /api/{language}/page_search/?q=

Pages matching a search term (paginated).

GET /api/{language}/placeholders/{content_type_id}/{object_id}/{slot}/

The serialized plugin content of one placeholder. ?html=1 adds rendered HTML.

GET /api/plugins/

Type definitions for every registered plugin. Not language-prefixed.

Why some endpoints embed content and others return links — and how plugin content is shaped — is explained in The content model and Plugin serialization.

Operations

Endpoint

Returns

GET /api/healthcheck/

{"status": "ok"} for uptime monitoring. Not language-prefixed.