API-Referenz
Die Peleides.io-API ist nach dem REST-Standard aufgebaut. Die Benennung der API-Endpunkte folgt einem logischen Schema anhand der Objekte die abgefragt werden sollen. Sowohl die Übergabe als auch die Rückgabe von Daten erfolgt enkodiert als JSON-String.
https://api.peleides.ioAlle API-Anfragen müssen über HTTPS gestellt werden. Anfragen über einfaches HTTP werden fehlschlagen. API-Anfragen ohne Authentifizierung werden ebenfalls fehlschlagen.
HTTP-Statuscodes
Wird ein HTTP-Statuscode 200 zurückgegeben, war der API-Aufruf erfolgreich. Andere Statuscodes (z.B. 400, 401, 404, etc.) zeigen an, dass der API-Aufruf nicht erfolgreich war. In diesem Fall wird in der JSON-Rückgabe ein Hinweis mitgeliefert, warum der Aufruf fehlgeschlagen sein könnte.
Methoden
Die meisten Endpunkte von Einzelobjekten kann man mit 4 Methoden aufrufen. Welche Methoden ein Endpunkt unterstützt, findet sich in der jeweiligen Endpunkt-Beschreibung weiter unten in dieser Referenz.
GET - Die Daten eines Objekts abrufen
PATCH - Die Daten eines vorhandenen Objekts aktualisieren
POST - Ein neues Objekt erstellen
DELETE - Ein vorhandenes Objekt löschen
Parameter
In der Beschreibung der jeweiligenen Endpunkte sind die Parameter aufgelistet, die beim Erstellen (POST-Methode) oder Aktualisieren (PATCH-Methode) eines Objekts an die API übergeben werden müssen oder können.
Aktualisierungslogik der API
Die API aktualisiert (PATCH-Methode) ausschließlich die Felder, die im Request explizit übergeben werden. Felder, die nicht Bestandteil des Requests sind, bleiben unverändert.
Besonderheit bei leeren Werten:Wird ein Feld zwar übergeben, enthält jedoch einen leeren Wert, so wird der bestehende Wert aktualisiert und dabei gelöscht.
Rückgabe
In der Beschreibung der jeweiligen Endpunkten sind die Daten aufgelistet, die von der API zurückgegeben werden.
Authentifizierung
Die Peleides.io-API verwendet API-Schlüssel zur Authentifizierung von Anfragen.
Mit dem API-Schlüssel können die Daten aller Webseiten & Shop abgerufen werden, auf die der API-Schlüssel berechtigt ist. Der API-Schlüssel sollte niemals an Dritte weiter gegeben werden. Ebenso sollte darauf geachtet werden, dass in Code der öffentlich zugänglich gemacht wird (z.B. GitHub), kein API-Schlüssel vorhanden ist.
Der API-Schlüssel muss im Request-Header mit dem Parameter X-Api-Key angegeben werden. Im Beispiel ist der API-Schlüssel schematisch durch den Platzhalter [API-KEY] dargestellt.
In den Code-Beispielen dieser API-Referenz wird ein beispielhafter API-Schlüssel verwendet, der nicht funktionsfähig ist. Um einen gültigen API-Schlüssel zu erhalten, kontaktiere uns hier: Kontakt.
-H "X-Api-Key: [API-KEY]"
-H "Content-Type: application/json"$endpoint = 'https://api.peleides.io/v1/posts';
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response,true);Mehrsprachigkeit
Webseiten können in mehreren Sprachen konfiguriert sein. Um Objekte in bestimmten Sprachen zu erhalten, kann im Request-Header der Parameter Accept-Language verwendet werden. Wird dieser Parameter nicht im Header mitgegeben, werden die Objekte in der Standardsprache der Webseite zurückgegeben.
Der Parameter ist ein Locale-Identifier im Format <ISO-639-1>_<ISO-3166-1>. Der Teil vor dem Unterstrich ist der Sprachcode nach ISO 639-1 (kleingeschrieben), der Teil nach dem Unterstrich ist der Ländercode nach ISO 3166-1 alpha-2 (großgeschrieben). Beispiele: de_DE, de_CH, en_US.
-H "Accept-Language: en_US"de_DE | Deutsch (Deutschland)
de_AT | Deutsch (Österreich)
de_CH | Deutsch (Schweiz)
en_US | Englisch (USA)
fr_FR | Französisch (Frankreich)$endpoint = 'https://api.peleides.io/v1/posts';
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json',
'Accept-Language: en_US'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response,true);Magazinbeiträge
Verwaltet die Inhalte von Magazinbeiträgen.
Rückgabe
Die interne ID des Magazinbeitrags.
Der interne Typ des Objekts. Bei Magazinbeiträgen immer "Post".
Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.
Datum und Uhrzeit wann der Magazinbeitrag erstellt wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Datum und Uhrzeit wann der Magazinbeitrag zuletzt editiert wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Der interne Titel des Magazinbeitrags.
Die öffentliche Url des Magazinbeitrags.
Der SEO-Titel des Magazinbeitrags. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.
Die Metabeschreibung des Magazinbeitrags, die in Suchmaschinen als Kurzbeschreibung erscheint.
Die öffentliche Url zum Beitragsbild des Magazinbeitrags.
GET /v1/posts
GET /v1/post/:id$endpoint = 'https://api.peleides.io/v1/posts';
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response,true);{
"id": pag_07e5yiHUMT5ZiIf5ox26AgPyO2gYan,
"object_type": "Post",
"language": "de_DE",
"created": "2025-03-09 12:43:32",
"modified": "2025-09-12 17:23:01",
"title": "Wie gelingt SEO?",
"url": "https://peleides.io/magazin/seo-strategie/",
"seo_title": "Wie gelingt SEO?",
"seo_description": "Optimiere deine Sichtbarkeit.",
"seo_image_url": "https://peleides.io/src/seo.jpg"
}Magazinkategorien
Verwaltet die Inhalte von Magazinkategorien.
Rückgabe
Die interne ID der Magazinkategorie.
Der interne Typ des Objekts. Bei Magazinkategorien immer "Post_Category".
Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.
Datum und Uhrzeit wann die Magazinkategorie erstellt wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Datum und Uhrzeit wann die Magazinkategorie zuletzt editiert wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Der interne Titel der Magazinkategorie.
Die öffentliche Url der Magazinkategorie.
Der SEO-Titel der Magazinkategorie. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.
Die Metabeschreibung der Magazinkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.
Die öffentliche Url zum Beitragsbild der Magazinkategorie.
GET /v1/post-categories
GET /v1/post-category/:id$endpoint = 'https://api.peleides.io/v1/post-categories';
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response,true);{
"id": cat_Koaoghm39auAunf92kFha38cja8n,
"object_type": "Post_Category",
"language": "de_DE",
"created": "2025-04-03 21:12:56",
"modified": "2025-05-30 09:54:09",
"title": "SEO",
"url": "https://peleides.io/magazin-kategorie/seo/",
"seo_title": "SEO",
"seo_description": "Beiträge rund um das Thema SEO.",
"seo_image_url": "https://peleides.io/src/seo.jpg"
}Produktkategorien
Verwaltet die Inhalte von Produktkategorien.
Parameter
Der interne Titel der Produktkategorie.
Maximale Länge: 200 Zeichen.
Der Permalink ist der letzte Teil in der Url des Objekts:
https://peleides.io/produkt-kategorie/deckenleuchten/
Der Permalink muss ein normalisierter, URL-kompatibler String sein. Er darf ausschließlich aus kleingeschriebenen alphanumerischen Zeichen und Bindestrichen bestehen. Leerzeichen werden durch Bindestriche ersetzt. Punkte, Apostrophe sowie alle weiteren Sonderzeichen oder nicht unterstützten Zeichen werden entfernt. Der Permalink darf keine Leerzeichen enthalten.
Wird kein Permalink an die API übergeben, wird dieser automatisch aus dem internen Titel der Produktkategorie generiert.
Maximale Länge: 200 Zeichen.
Der SEO-Titel der Produktkategorie. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.
Maximale Länge: 200 Zeichen.
Die Metabeschreibung der Produktkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.
Maximale Länge: 200 Zeichen.
Das Bild muss vollständig als Base64-kodierter Data-URI-String (inklusive MIME-Typ und Base64-Präfix) übergeben werden.
Schema:
data:[MIME-Typ];base64,[Base64-Daten]
Beispiel:
data:image/jpeg;base64,4AAQSkZJRgABAQEAeAB4AAD...
Maximale Größe: 8 Megabyte. Erlaubte Dateiformate: JPEG, PNG, GIF, WEBP.
Rückgabe
Die interne ID der Produktkategorie.
Der interne Typ des Objekts. Bei Produktkategorien immer "Product_Category".
Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.
Datum und Uhrzeit wann die Produktkategorie erstellt wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Datum und Uhrzeit wann die Produktkategorie zuletzt editiert wurde. Wird im Format "YYYY-MM-DD HH:MM:SS" zurückgegeben. Zum Beispiel: "2023-09-23 12:30:00".
Der interne Titel der Produktkategorie.
Die öffentliche Url der Produktkategorie.
Der SEO-Titel der Produktkategorie. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.
Die Metabeschreibung der Produktkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.
Die öffentliche Url zum SEO-Bild der Produktkategorie.
GET /v1/product-categories
GET /v1/product-category/:id
POST /v1/product-category
PATCH /v1/product-category/:id// Alle Produktkategorien abrufen
$endpoint = 'https://api.peleides.io/v1/product-categories';
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response,true);// Produktkategorie aktualisieren
$id = 'cat_hua9iAMjgj82HFUzam3';
$endpoint = 'https://api.peleides.io/v1/product-category/'.$id;
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$data = array(
'seo_title' => 'Premium Deckenleuchten entdecken'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$result = json_decode($response,true);{
"id": cat_hua9iAMjgj82HFUzam3,
"object_type": "Product_Category",
"language": "de_DE",
"created": "2025-01-08 05:59:23",
"modified": "2025-09-02 23:44:28",
"title": "Deckenleuchten",
"url": "https://peleides.io/produkt-kategorie/deckenleuchten/",
"seo_title": "Premium Deckenleuchten entdecken",
"seo_description": "Produkte aus dem Bereich Deckenleuchten.",
"seo_image_url": "https://peleides.io/src/deckenleuchten.jpg"
}Produktkategorien Webseiten-Inhalt
Verwaltet den zusötzlichen HTML-Inhalt, der auf den Frontend-Seiten der jeweiligen Produktkategorien erscheint.
Parameter
Hier muss ein Array aus Webseiten-Module übergeben werden. Jedes Modul hat zwei Parameter:
- type - der Parameter gibt den Typ des Moduls an.
- fields - hier wird ein Array aus Datenfeldern für das Modul übergeben.
type
Aktuell wird nur der Modul-Typ text unterschützt.
fields
Aktuell wird nur das Datenfeld text unterstützt. Hier wird der HTML-Content für das Text-Modul übergeben. Es sind nur eine kleine Palette an HTML-Tags erlaubt, die für die Textformatierung verwendet werden: h1, h2, h3, h4, h5, h6, p, ul, ol, li, a, em, strong, br.
Rückgabe
Die interne ID der Produktkategorie.
PATCH /v1/upsert-product-category-bottom-content/:id{
"id": cat_hua9iAMjgj82HFUzam3
}// Produktkategorie Webseiten-Inhalt aktualisieren
$id = 'cat_hua9iAMjgj82HFUzam3';
$endpoint = 'https://api.peleides.io/v1/upsert-product-category-bottom-content/'.$id;
$headers = array(
'X-Api-Key: apk_akeiAI39KAmdAUmfua19mvuAueOAiwm',
'Content-Type: application/json'
);
$data = array(
'modules' => array(
array(
'type' => 'text',
'fields' => array(
'text' => '<h2>Häufige Fragen</h2><ul><li><strong>Kann ich retournieren?</strong><br>Ja, innerhalb von 30 Tagen.</li><li><strong>Gibt es Mengenrabatte?</strong><br>Ja, für B2B-Kunden auf Anfrage.</li></ul>'
)
)
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$result = json_decode($response,true);