Logo

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.

API-Url
https://api.peleides.io

Alle 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.

Request-Header
-H "X-Api-Key: [API-KEY]"
-H "Content-Type: application/json"
Code-Beispiel
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$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.

Request-Header
-H "Accept-Language: en_US"
Unterstützte Sprachen
de_DE | Deutsch (Deutschland)
de_AT | Deutsch (Österreich)
de_CH | Deutsch (Schweiz)
en_US | Englisch (USA)
fr_FR | Französisch (Frankreich)
Code-Beispiel
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$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

id
string

Die interne ID des Magazinbeitrags.

object_type
string

Der interne Typ des Objekts. Bei Magazinbeiträgen immer "Post".

language
string

Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.

created
string

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".

modified
string

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".

title
string

Der interne Titel des Magazinbeitrags.

url
string

Die öffentliche Url des Magazinbeitrags.

seo_title
string

Der SEO-Titel des Magazinbeitrags. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.

seo_description
string

Die Metabeschreibung des Magazinbeitrags, die in Suchmaschinen als Kurzbeschreibung erscheint.

seo_image_url
string

Die öffentliche Url zum Beitragsbild des Magazinbeitrags.

Endpunkte
GET /v1/posts
GET /v1/post/:id
Code-Beispiel
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$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);
Objekt
{
	"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

id
string

Die interne ID der Magazinkategorie.

object_type
string

Der interne Typ des Objekts. Bei Magazinkategorien immer "Post_Category".

language
string

Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.

created
string

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".

modified
string

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".

title
string

Der interne Titel der Magazinkategorie.

url
string

Die öffentliche Url der Magazinkategorie.

seo_title
string

Der SEO-Titel der Magazinkategorie. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.

seo_description
string

Die Metabeschreibung der Magazinkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.

seo_image_url
string

Die öffentliche Url zum Beitragsbild der Magazinkategorie.

Endpunkte
GET /v1/post-categories
GET /v1/post-category/:id
Code-Beispiel
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$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);
Objekt
{
	"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

title
string

Der interne Titel der Produktkategorie.

Maximale Länge: 200 Zeichen.

permalink
string

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.

seo_title
string

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.

seo_description
string

Die Metabeschreibung der Produktkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.

Maximale Länge: 200 Zeichen.

seo_image
string

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

id
string

Die interne ID der Produktkategorie.

object_type
string

Der interne Typ des Objekts. Bei Produktkategorien immer "Product_Category".

language
string

Gibt die aktuelle Sprache an, für die das Objekt angefordert wurde.

created
string

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".

modified
string

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".

title
string

Der interne Titel der Produktkategorie.

url
string

Die öffentliche Url der Produktkategorie.

seo_title
string

Der SEO-Titel der Produktkategorie. Der SEO-Titel erscheint als Titel der Webseite im Browser-Tab sowie als Überschrift in Suchmachinen.

seo_description
string

Die Metabeschreibung der Produktkategorie, die in Suchmaschinen als Kurzbeschreibung erscheint.

seo_image_url
string

Die öffentliche Url zum SEO-Bild der Produktkategorie.

Endpunkte
GET /v1/product-categories
GET /v1/product-category/:id
POST /v1/product-category
PATCH /v1/product-category/:id
Code-Beispiel 1
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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);
Code-Beispiel 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 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);
Beispiel-Rückgabe
{
	"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

modules
array
Erforderlich

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

id
string

Die interne ID der Produktkategorie.

Endpunkte
PATCH /v1/upsert-product-category-bottom-content/:id
Beispiel-Rückgabe
{
	"id": cat_hua9iAMjgj82HFUzam3
}
Code-Beispiel
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 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);