Settings API
Logo
GET /api/v1/tenant-settings/logo
Tenant-Logo als Signed URL abrufen.
Cache: Cache-Control: private, max-age=300
Response (200): Redirect zur Signed URL
Response (404): Kein Logo gesetzt
POST /api/v1/tenant-settings/logo
Logo hochladen.
Rate Limit: 10 Requests / Minute
Request: multipart/form-data mit file-Feld
Constraints:
- Formate: JPEG, PNG, SVG
- Max. 2 MB
Response (200):
{ "data": { "logo_url": "..." } }
DELETE /api/v1/tenant-settings/logo
Logo löschen.
Rate Limit: 10 Requests / Minute
Display API
GET /api/v1/display/{token}
Öffentliche Display-API für Öffnungszeiten (z.B. TRMNL E-Ink Display).
Authentifizierung: Keine (öffentlich via Display-Token)
Rate Limit: 60 Requests / Minute / Token
Response (200):
{
"company_name": "Meine Rösterei",
"logo_url": "...",
"address": "Musterstr. 1, 12345 Musterstadt",
"phone": "+49 123 456789",
"email": "info@example.com",
"website": "https://example.com",
"display_message": "Heute frisch geröstet!",
"today": "Montag",
"today_override": null,
"hours": [
{ "day": "Montag", "time": "09:00 – 18:00" },
{ "day": "Dienstag", "time": "09:00 – 18:00" }
],
"open_count": 5
}
Zeitzonen-Handling: Immer Europe/Berlin für Datumsberechnung.