OpenAPI Specification
openapi: 3.0.3
info:
title: djangocms-rest Breadcrumbs API
description: Read-only REST/JSON API for Django CMS that enables decoupled frontend applications to consume CMS-managed content. Built on Django REST Framework with OpenAPI 3 schema generation via drf-spectacular. Supports multi-language, multi-site, draft/preview access, and is compatible with Redis/Memcached caching.
version: 1.0.0
contact:
name: Django CMS Association
email: info@django-cms.org
url: https://www.django-cms.org/en/
license:
name: BSD 3-Clause
url: https://github.com/django-cms/djangocms-rest/blob/main/LICENSE
x-logo:
url: https://www.django-cms.org/static/img/django-cms-logo.svg
servers:
- url: https://example.com/api
description: Default server (customize per deployment)
tags:
- name: Breadcrumbs
description: Page breadcrumb trails
paths:
/{language}/breadcrumbs/:
get:
operationId: breadcrumbs_retrieve
summary: Breadcrumbs (root)
description: Returns the breadcrumb trail from the root for the given language.
tags:
- Breadcrumbs
parameters:
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/preview'
responses:
'200':
description: Breadcrumb navigation nodes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NavigationNode'
/{language}/breadcrumbs/{path}/:
get:
operationId: breadcrumbs_path_retrieve
summary: Breadcrumbs by path
description: Returns the breadcrumb trail to the specified page path.
tags:
- Breadcrumbs
parameters:
- $ref: '#/components/parameters/language'
- name: path
in: path
required: true
description: URL path of the target page
schema:
type: string
- $ref: '#/components/parameters/preview'
responses:
'200':
description: Breadcrumb navigation nodes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NavigationNode'
/{language}/breadcrumbs/{start_level}/:
get:
operationId: breadcrumbs_level_retrieve
summary: Breadcrumbs from level
description: Returns the breadcrumb trail starting from the given level.
tags:
- Breadcrumbs
parameters:
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/start_level'
- $ref: '#/components/parameters/preview'
responses:
'200':
description: Breadcrumb navigation nodes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NavigationNode'
/{language}/breadcrumbs/{start_level}/{path}/:
get:
operationId: breadcrumbs_level_path_retrieve
summary: Breadcrumbs from level by path
description: Returns the breadcrumb trail from the given level for the specified page path.
tags:
- Breadcrumbs
parameters:
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/start_level'
- name: path
in: path
required: true
description: URL path of the target page
schema:
type: string
- $ref: '#/components/parameters/preview'
responses:
'200':
description: Breadcrumb navigation nodes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NavigationNode'
components:
parameters:
preview:
name: preview
in: query
description: Set to 1 or true to include draft/unpublished content (requires appropriate permissions)
schema:
type: string
enum:
- '0'
- '1'
- 'true'
- 'false'
start_level:
name: start_level
in: path
required: true
description: Starting breadcrumb level
schema:
type: integer
default: 0
language:
name: language
in: path
required: true
description: Language code (e.g. "en", "de", "fr")
schema:
type: string
example: en
schemas:
NavigationNode:
type: object
description: A navigation menu node, optionally with nested children
properties:
namespace:
type: string
nullable: true
description: Menu namespace (for apphook menus)
title:
type: string
description: Display title for the menu item
url:
type: string
format: uri
nullable: true
description: Absolute frontend URL for the menu item
api_endpoint:
type: string
format: uri
nullable: true
description: API URL to fetch full page detail for this menu item
visible:
type: boolean
description: Whether this node is visible in the menu
selected:
type: boolean
description: Whether this node represents the current page
attr:
type: object
nullable: true
description: Additional attributes from the menu template tag (e.g. is_home, auth_required)
additionalProperties: true
level:
type: integer
nullable: true
description: Nesting level of this menu node (0 = root)
children:
type: array
items:
$ref: '#/components/schemas/NavigationNode'
description: Child navigation nodes
required:
- title
- visible
- selected
externalDocs:
description: djangocms-rest Documentation
url: https://djangocms-rest.readthedocs.io/