API-Referenz — Übersicht

Das anyPIM bietet eine vollständige REST-API mit über 370 Endpunkten, die sämtliche Funktionen des Systems programmatisch zugänglich machen. Die API folgt konsistenten Konventionen und unterstützt JSON als Datenformat.

Basis-URL

Alle API-Endpunkte befinden sich unter dem Pfad:

https://pim.ihre-domain.de/api/v1

Für die lokale Entwicklung:

http://localhost:8000/api/v1

Authentifizierung

Die API verwendet Bearer-Token-Authentifizierung über Laravel Sanctum. Bei jedem Aufruf muss ein gültiges Token im Authorization-Header mitgesendet werden:

Authorization: Bearer {token}

Details zur Authentifizierung finden Sie unter Authentifizierung.

Request-Flow

Der Weg einer API-Anfrage durch das System:

Client → HTTP-Request → Auth (Sanctum Token) → Controller (Validierung) → Service (Geschäftslogik) → Response (JSON-Antwort)

Konventionen

Datenformat

Alle Anfragen und Antworten verwenden JSON. Setzen Sie die entsprechenden Header:

Content-Type: application/json
Accept: application/json

Paginierung

Listen-Endpunkte unterstützen Paginierung über Query-Parameter:

Parameter Typ Standard Beschreibung
page Integer 1 Aktuelle Seite
per_page Integer 25 Einträge pro Seite (max. 100)

Sortierung

Sortierung wird über den sort-Parameter gesteuert. Aufsteigende Sortierung ist Standard, ein Minus-Präfix sortiert absteigend:

GET /api/v1/products?sort=name          # Aufsteigend nach Name
GET /api/v1/products?sort=-created_at   # Absteigend nach Erstelldatum

Filterung

Filter werden als Query-Parameter übergeben:

GET /api/v1/products?filter[status]=active&filter[product_type]=simple

Includes (Eager Loading)

Verwandte Ressourcen können über den include-Parameter mitgeladen werden:

GET /api/v1/products?include=variants,media,prices

Sparse Fields

Mit dem fields-Parameter können Sie die zurückgegebenen Felder einschränken:

GET /api/v1/products?fields=id,sku,name,status

Suche

Freitextsuche über den search-Parameter:

GET /api/v1/products?search=Bohrmaschine

Sprachauswahl

Bei mehrsprachigen Ressourcen bestimmt der lang-Parameter die Sprache:

GET /api/v1/products?lang=de

Fehlerformat

Fehler werden im Format RFC 7807 (Problem Details for HTTP APIs) zurückgegeben:

{
  "type": "https://pim.example.com/docs/errors/validation-error",
  "title": "Validierungsfehler",
  "status": 422,
  "detail": "Die übermittelten Daten sind ungültig.",
  "errors": {
    "sku": ["Das Feld 'sku' ist ein Pflichtfeld."],
    "name_de": ["Das Feld 'name_de' darf maximal 255 Zeichen lang sein."]
  }
}

HTTP-Statuscodes

Code Bedeutung
200 Erfolgreiche Anfrage
201 Ressource erfolgreich erstellt
204 Erfolgreich, kein Inhalt (z. B. nach Löschen)
400 Ungültige Anfrage
401 Nicht authentifiziert
403 Keine Berechtigung
404 Ressource nicht gefunden
422 Validierungsfehler
429 Rate Limit erreicht
500 Interner Serverfehler

Rate Limiting

Die API ist durch Rate Limiting geschützt:

Kategorie Limit Beschreibung
Standard 60 Anfragen/Minute Allgemeine API-Endpunkte
Export 600 Anfragen/Minute Export-Endpunkte (höheres Limit)

Bei Überschreitung wird ein 429 Too Many Requests-Status mit folgenden Headern zurückgegeben:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
Retry-After: 45

Endpunkt-Gruppen

Die API gliedert sich in folgende Bereiche:

Authentifizierung Login, Logout, Token-Verwaltung und Benutzerinformationen.

API-Keys Langlebige API-Schlüssel für externe Integrationen, Skripte und Machine-to-Machine-Zugriff. API-Keys sind an Benutzer gebunden und erben deren Rollenberechtigungen.

Produkte CRUD-Operationen für Produkte, Attributwerte, Varianten, Medien, Preise und Relationen.

Attribute Verwaltung von Attributen, Attributtypen, Einheitengruppen, Einheiten, Wertelisten, Wertelisteneinträgen und Attributansichten.

Hierarchien Verwaltung von Hierarchien, Baumstrukturen, Knoten und knotenspezifischen Attributzuordnungen.

PQL PQL-Abfragen ausführen, validieren und analysieren.

Export Export-Endpunkte für JSON und Publixx-Format.

Import Import-Endpunkte für Upload, Validierung und Ausführung. 

Benutzerverwaltung CRUD-Operationen für Benutzer, Rollen und Berechtigungen.

Sprachen Verwaltung der verfügbaren Inhaltssprachen.

Medien Upload, Verwaltung und Zuordnung von Medien.

Preise Verwaltung von Preisarten, Währungen und Produktpreisen.

PIMSYNC API Bidirektionale Synchronisation zwischen anyPIM-Instanzen. Produkte, Attribute, Preise und Medien zwischen Zentrale und Tochtergesellschaften austauschen.