API Dokumentation
Integrieren Sie ContentScaler CMS-Inhalte in Ihre Website mit unserer Cognitor-kompatiblen REST API.
https://fzdkwesryxdrecbpwqhy.supabase.co/functions/v1/cms-public-apiSchnellstart
Alle Anfragen erfordern einen API-Schlüssel im X-API-Key-Header. Jeder Schlüssel ist auf eine bestimmte Domain beschränkt – Inhalte werden automatisch gefiltert.
curl -X GET "https://fzdkwesryxdrecbpwqhy.supabase.co/functions/v1/cms-public-api?action=pages" \
-H "X-API-Key: csapi_your_api_key_here"Kein Bearer-Token benötigt
Endpoints nutzen --no-verify-jwt
Domain-spezifische Schlüssel
Inhalte automatisch gefiltert
Schlüssel erhalten
ContentScaler > Kunden > CMS API Keys
Endpoints-Referenz
/cms-public-api?action=pagesList all published (Active) pages for your domain.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | number | 100 | Max pages to return (max: 100) |
| skip | number | 0 | Pagination offset |
| tags | string | — | Filter by tags (comma-separated) |
Response
[
{
"id": 905898700,
"title": "ISO 27001 Implementation Guide",
"slug": "iso-27001-implementation-guide",
"description": "Complete guide to implementing ISO 27001...",
"published": true,
"created_at": "2025-11-05T16:22:01.580648+00:00",
"updated_at": "2025-12-20T15:31:38.245453+00:00",
"tags": ["Blog", "Guides"],
"content_type": "article",
"element_count": 0,
"parent_id": null,
"not_in_menu": false
}
]Content-Element-Leitfaden
Jedes page_element enthält ein content_element mit einem type_identifier, der bestimmt, welches Datenfeld zu verwenden ist.
{
"section": "Description",
"content_element": {
"type_identifier": "Short Text",
"data": {
"content_text": "...",
"content_url": "...",
"content_json": {...}
}
}
}Textbasierte Elemente
| type_identifier | Description |
|---|---|
| Short Text | Titles, descriptions, single-line text |
| Long Text | Markdown/HTML articles, multi-line content |
| Rating | "high", "medium", "low", "6-12 months" |
| Label | "Mandatory", "Voluntary" |
| Top x List | Numbered list (line-break separated) |
| Feature List | Bulleted feature list |
Medien-Elemente
| type_identifier | Description |
|---|---|
| Image | Image file URL |
| Video | Video file URL |
| Podcast | Audio file URL |
| Link | External link URL |
Strukturierte Daten-Elemente
| type_identifier | Description |
|---|---|
| JSON Structure | Custom JSON objects |
| Table | Table data with rows and columns |
| Comparison | Product/feature comparison data |
Seitentypen-Referenz
Jeder Seitentyp hat eine spezifische Menge von Content-Elementen. Erweitern Sie einen Typ unten, um seine Elementstruktur zu sehen.
Code-Beispiele
function getElement(page, section) {
return page.page_elements.find(el => el.section === section);
}
function getText(page, section) {
const el = getElement(page, section);
return el?.content_element.data.content_text ?? null;
}
function getJson(page, section) {
const el = getElement(page, section);
return el?.content_element.data.content_json ?? null;
}
function getUrl(page, section) {
const el = getElement(page, section);
return el?.content_element.data.content_url ?? null;
}Fehler-Referenz
| Status | Fehler | Beschreibung |
|---|---|---|
401 | Unauthorized | Missing or invalid API key |
400 | Invalid API key | API key not found or inactive |
400 | CMS not enabled | CMS not enabled for domain |
400 | slug or id required | Missing page identifier |
400 | Search query required | Missing or too short search query |
404 | Page not found | Page doesn't exist or isn't Active |
500 | Database error | Internal server error |
500 | Search failed | Search operation encountered an error |
Caching & Rate Limits
Seitenlisten
5 minutes
max-age=300Seiten-Details
10 minutes
max-age=600Standards
1 hour
max-age=3600Suchergebnisse
1 minute
max-age=60Rate Limiting
Derzeit wird kein Rate Limiting durchgesetzt. Bitte seien Sie rücksichtsvoll: Bündeln Sie Anfragen, nutzen Sie clientseitiges Caching, vermeiden Sie Polling und nutzen Sie Webhooks für Echtzeit-Updates.
Der X-Total-Count-Header ist in Listenantworten und Suchergebnissen enthalten.