Entwickler-Dokumentation
REST-API, Authentifizierung und Echtzeit der SCHRAMME Platform.
Die API ist für die eigenen Systeme rund um die SCHRAMME Platform gedacht (Automatisierungen, Auswertungen, Integrationen) – keine öffentliche Entwicklerplattform. Zugänge vergibt der Inhaber im Admin-Bereich.
Authentifizierung
Jede Anfrage authentifiziert sich mit einem API-Key im Authorization-Header. Keys werden unter Admin → API-Keys erstellt, nur einmal angezeigt und können jederzeit neu ausgestellt oder widerrufen werden. Ein Key besitzt Scopes; seine Rechte überschreiten nie die Rechte der Person, die ihn erstellt hat.
curl -H "Authorization: Bearer sk_<prefix>_<secret>" \
https://api.christoph-schramme.de/v1/print/orders?status=openScopes
| Scope | Berechtigungen |
|---|---|
print.read | print.access, print.order.read, print.filament.read |
print.write | print.access, print.order.read, print.order.manage, print.order.approve, print.filament.read, print.filament.manage |
coding.read | coding.access, coding.order.read |
coding.write | coding.access, coding.order.read, coding.order.manage, coding.order.approve |
support.read | support.ticket.read, support.kb.read_internal |
support.write | support.ticket.read, support.ticket.write, support.ticket.assign, support.kb.read_internal, support.kb.manage |
monitoring.read | monitoring.access, monitoring.read |
monitoring.write | monitoring.access, monitoring.read, monitoring.manage, monitoring.incidents.manage |
users.read | user.read |
Fehlerformat
Fehler haben immer dieselbe Form. Die requestId hilft bei der Fehlersuche im Monitoring.
{
"error": {
"code": "VALIDATION_FAILED",
"message": "Validation failed",
"requestId": "6f1c…",
"issues": [{ "path": "decision", "message": "errors.field.invalid" }]
}
}- 401 UNAUTHENTICATED · 403 FORBIDDEN · 404 NOT_FOUND · 409 INVALID_STATE / CONFLICT · 413 PAYLOAD_TOO_LARGE · 422 VALIDATION_FAILED · 429 RATE_LIMITED · 5xx
Rate-Limits
600 Anfragen pro Minute und Key, 120 schreibende Anfragen pro Minute; ohne Key 120 pro Minute und IP. Antworten enthalten RateLimit-Limit/RateLimit-Remaining, bei 429 zusätzlich Retry-After (Sekunden). Request-Bodys sind auf 1 MB begrenzt.
Echtzeit
Die Weboberflächen erhalten Live-Updates über einen WebSocket (/_rt) auf dem jeweiligen Produkt-Host. Er authentifiziert sich ausschließlich über die Sitzung des Hosts, akzeptiert nur Verbindungen derselben Origin und liefert nur Kanäle, für die die Person berechtigt ist. Er ist kein Teil der öffentlichen API – externe Systeme nutzen die REST-API.