openapi: 3.0.3 info: title: djangocms-rest Breadcrumbs Placeholders 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: Placeholders description: Placeholder content with nested plugin data paths: /{language}/placeholders/{content_type_id}/{object_id}/{slot}/: get: operationId: placeholder_detail_retrieve summary: Placeholder detail description: Retrieve the content of a placeholder by content type, object ID, and slot name. The response includes the nested plugin data as structured JSON. Add ?html=1 to also receive server-rendered HTML output. tags: - Placeholders parameters: - $ref: '#/components/parameters/language' - name: content_type_id in: path required: true description: Django content type ID for the placeholder's owner model schema: type: integer - name: object_id in: path required: true description: Primary key of the placeholder's owner object schema: type: integer - name: slot in: path required: true description: Slot name of the placeholder schema: type: string - $ref: '#/components/parameters/preview' - $ref: '#/components/parameters/html' responses: '200': description: Placeholder content content: application/json: schema: $ref: '#/components/schemas/Placeholder' '404': description: Placeholder not found 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' html: name: html in: query description: Set to 1 to include server-rendered HTML for placeholder content schema: type: string enum: - '0' - '1' language: name: language in: path required: true description: Language code (e.g. "en", "de", "fr") schema: type: string example: en schemas: Placeholder: type: object description: A placeholder containing structured plugin content properties: slot: type: string description: Template slot name for this placeholder label: type: string description: Human-readable label for the placeholder language: type: string description: Language code of the content content: type: array items: type: object description: Nested list of serialized plugin data objects. Each object has a "plugin_type" field identifying its type, plus plugin-specific properties. details: type: string format: uri description: API URL to retrieve this placeholder directly html: type: string default: '' description: Server-rendered HTML output (only present when ?html=1 is requested) required: - slot - label - language - details externalDocs: description: djangocms-rest Documentation url: https://djangocms-rest.readthedocs.io/