Admin
bearerAuthAuthorizationBearer <JWT>Benutzer
application/json- response
[index: integer]?curl -X GET 'https://example.com/api/v1/admin/users'[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }]bearerAuthAuthorizationBearer <JWT>application/json- body
email*stringemailloginName?|3 <= length <= 64password*stringpassword8 <= lengthdisplayName?|length <= 120firstName?|length <= 80lastName?|length <= 80role?string"user""user""admin"status?string"active""active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"system""light""dark""system"forcePasswordChange?booleantruetotpRequired?booleanfalsepasskeyEnabled?booleantrueBenutzer angelegt
application/json- response
id*stringuuidemail*stringemailloginName?string|nulldisplayName?string|nullfirstName?|length <= 80lastName?|length <= 80role*string"user""admin"status*string"active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"light""dark""system"totpEnabled?booleantotpRequired?booleanpasskeyEnabled?booleanhasPassword?booleanforcePasswordChange?booleanonboardingCompleted?booleanfalse: beim Login den Einrichtungsassistenten zeigen
lastLoginAt?|date-timecreatedAt*stringdate-timeupdatedAt?stringdate-timecurl -X POST 'https://example.com/api/v1/admin/users' \ -H 'Content-Type: application/json' \ -d '{ "email": "user@example.com", "password": "pa$$word"}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}bearerAuthAuthorizationBearer <JWT>id*stringuuidBenutzer
application/json- response
id*stringuuidemail*stringemailloginName?string|nulldisplayName?string|nullfirstName?|length <= 80lastName?|length <= 80role*string"user""admin"status*string"active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"light""dark""system"totpEnabled?booleantotpRequired?booleanpasskeyEnabled?booleanhasPassword?booleanforcePasswordChange?booleanonboardingCompleted?booleanfalse: beim Login den Einrichtungsassistenten zeigen
lastLoginAt?|date-timecreatedAt*stringdate-timeupdatedAt?stringdate-timepasskeyCount?integer0 <= valueactiveDeviceCount?integer0 <= valuevehicleCount?integer0 <= valuetripCount?integer0 <= valuepasskeys?array<>curl -X GET 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "passkeyCount": 0, "activeDeviceCount": 0, "vehicleCount": 0, "tripCount": 0, "passkeys": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "transports": [ "string" ], "backedUp": true, "deviceType": "string", "lastUsedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAuthorizationBearer <JWT>id*stringuuidBenutzer gelöscht
curl -X DELETE 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08'bearerAuthAuthorizationBearer <JWT>id*stringuuidapplication/json- body
[key: string]?anyBenutzer aktualisiert
curl -X PUT 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{}'Entfernt das verschlüsselte TOTP-Secret und widerruft andere Sitzungen.
bearerAuthAuthorizationBearer <JWT>id*stringuuidAktualisierter Benutzer
application/json- response
id*stringuuidemail*stringemailloginName?string|nulldisplayName?string|nullfirstName?|length <= 80lastName?|length <= 80role*string"user""admin"status*string"active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"light""dark""system"totpEnabled?booleantotpRequired?booleanpasskeyEnabled?booleanhasPassword?booleanforcePasswordChange?booleanonboardingCompleted?booleanfalse: beim Login den Einrichtungsassistenten zeigen
lastLoginAt?|date-timecreatedAt*stringdate-timeupdatedAt?stringdate-timepasskeyCount?integer0 <= valueactiveDeviceCount?integer0 <= valuevehicleCount?integer0 <= valuetripCount?integer0 <= valuepasskeys?array<>curl -X DELETE 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/totp'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "passkeyCount": 0, "activeDeviceCount": 0, "vehicleCount": 0, "tripCount": 0, "passkeys": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "transports": [ "string" ], "backedUp": true, "deviceType": "string", "lastUsedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAuthorizationBearer <JWT>id*stringuuidAktualisierter Benutzer
application/json- response
id*stringuuidemail*stringemailloginName?string|nulldisplayName?string|nullfirstName?|length <= 80lastName?|length <= 80role*string"user""admin"status*string"active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"light""dark""system"totpEnabled?booleantotpRequired?booleanpasskeyEnabled?booleanhasPassword?booleanforcePasswordChange?booleanonboardingCompleted?booleanfalse: beim Login den Einrichtungsassistenten zeigen
lastLoginAt?|date-timecreatedAt*stringdate-timeupdatedAt?stringdate-timepasskeyCount?integer0 <= valueactiveDeviceCount?integer0 <= valuevehicleCount?integer0 <= valuetripCount?integer0 <= valuepasskeys?array<>curl -X DELETE 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/passkeys'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "passkeyCount": 0, "activeDeviceCount": 0, "vehicleCount": 0, "tripCount": 0, "passkeys": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "transports": [ "string" ], "backedUp": true, "deviceType": "string", "lastUsedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAuthorizationBearer <JWT>id*stringuuidpasskeyId*stringuuidAktualisierter Benutzer
application/json- response
id*stringuuidemail*stringemailloginName?string|nulldisplayName?string|nullfirstName?|length <= 80lastName?|length <= 80role*string"user""admin"status*string"active""disabled"locale?string"de"timezone?string"Europe/Berlin"themeMode?string"light""dark""system"totpEnabled?booleantotpRequired?booleanpasskeyEnabled?booleanhasPassword?booleanforcePasswordChange?booleanonboardingCompleted?booleanfalse: beim Login den Einrichtungsassistenten zeigen
lastLoginAt?|date-timecreatedAt*stringdate-timeupdatedAt?stringdate-timepasskeyCount?integer0 <= valueactiveDeviceCount?integer0 <= valuevehicleCount?integer0 <= valuetripCount?integer0 <= valuepasskeys?array<>curl -X DELETE 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/passkeys/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "passkeyCount": 0, "activeDeviceCount": 0, "vehicleCount": 0, "tripCount": 0, "passkeys": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "transports": [ "string" ], "backedUp": true, "deviceType": "string", "lastUsedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAuthorizationBearer <JWT>id*stringuuidAnzahl widerrufener Sitzungen
application/json- response
revokedSessions*integer0 <= valuecurl -X DELETE 'https://example.com/api/v1/admin/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/sessions'{ "revokedSessions": 0}bearerAuthAuthorizationBearer <JWT>Interne Servicekonfiguration
application/json- response
map*photon*overpass*atlas?Dawarich Atlas – bündelt Photon (Geocoding) und Valhalla (Routing/Map-Matching).
mapMatching?curl -X GET 'https://example.com/api/v1/admin/settings/services'{ "map": { "provider": "osm", "type": "raster", "tileUrl": "http://example.com", "styleUrl": "http://example.com", "attribution": "string", "minZoom": 0, "maxZoom": 0, "tileSize": 256 }, "photon": { "provider": "disabled", "baseUrl": "string", "timeoutMs": 10000 }, "overpass": { "provider": "public", "interpreterUrl": "string", "timeoutMs": 30000, "searchRadiusMeters": 2500, "maxResults": 50 }, "atlas": { "enabled": false, "baseUrl": "string", "timeoutMs": 10000 }, "mapMatching": { "provider": "disabled", "osrmUrl": "string", "valhallaUrl": "string" }}bearerAuthAuthorizationBearer <JWT>application/json- body
provider*string"osm""maplibre""custom"type*string"raster""vector""style"tileUrl?|uristyleUrl?|uriattribution*stringminZoom*integermaxZoom*integertileSize*integer256512Kartenquelle gespeichert
curl -X PUT 'https://example.com/api/v1/admin/settings/services/map' \ -H 'Content-Type: application/json' \ -d '{ "provider": "osm", "type": "raster", "attribution": "string", "minZoom": 0, "maxZoom": 0, "tileSize": 256}'Interne Server-URLs bleiben ausschließlich im Backend gespeichert.
bearerAuthAuthorizationBearer <JWT>application/json- body
provider*stringdisabled schaltet die Adresssuche ab; atlas nutzt den Photon-Passthrough von Dawarich Atlas.
"disabled""public""custom""atlas"baseUrl?string|nulltimeoutMs*integer1000 <= value10000Photon-Konfiguration gespeichert
curl -X PUT 'https://example.com/api/v1/admin/settings/services/photon' \ -H 'Content-Type: application/json' \ -d '{ "provider": "disabled", "timeoutMs": 10000}'Interne Server-URLs bleiben ausschließlich im Backend gespeichert.
bearerAuthAuthorizationBearer <JWT>application/json- body
provider*string"public""custom"interpreterUrl?string|nulltimeoutMs*integer1000 <= value30000searchRadiusMeters*integer1 <= value2500maxResults*integer1 <= value <= 50050Overpass-Konfiguration gespeichert
curl -X PUT 'https://example.com/api/v1/admin/settings/services/overpass' \ -H 'Content-Type: application/json' \ -d '{ "provider": "public", "timeoutMs": 30000, "searchRadiusMeters": 2500, "maxResults": 50}'Interne Server-URLs bleiben ausschließlich im Backend gespeichert.
bearerAuthAuthorizationBearer <JWT>application/json- body
Dawarich Atlas – bündelt Photon (Geocoding) und Valhalla (Routing/Map-Matching).
enabled*booleanfalsebaseUrl?stringtimeoutMs*integer1000 <= value <= 12000010000Atlas-Konfiguration gespeichert
curl -X PUT 'https://example.com/api/v1/admin/settings/services/atlas' \ -H 'Content-Type: application/json' \ -d '{ "enabled": false, "timeoutMs": 10000}'Prüft mit den gespeicherten Einstellungen, welche Funktionen (Atlas, Photon, Map-Matching) verfügbar sind.
bearerAuthAuthorizationBearer <JWT>module?string"atlas""geocoding""mapMatching"Status je Modul
application/json- response
checkedAt*stringdate-timemodules*array<>curl -X GET 'https://example.com/api/v1/admin/settings/services/check'{ "checkedAt": "2019-08-24T14:15:22Z", "modules": [ { "module": "atlas", "label": "string", "provider": "string", "providerLabel": "string", "state": "available", "message": "string", "details": {}, "responseTimeMs": 0 } ]}bearerAuthAuthorizationBearer <JWT>application/json- body
category*string"map""photon""overpass""valhalla""osrm""atlas""geocoding""mapMatching"config*Testergebnis
application/json- response
success*booleanresponseTimeMs?integer|nullmessage?stringcurl -X POST 'https://example.com/api/v1/admin/settings/services/test' \ -H 'Content-Type: application/json' \ -d '{ "category": "map", "config": {}}'{ "success": true, "responseTimeMs": 0, "message": "string"}API-Schlüssel werden nie zurückgegeben, nur ob einer hinterlegt ist.
bearerAuthAuthorizationBearer <JWT>KI-Konfiguration
application/json- response
activeProvider*string"disabled""claude""openai""ollama"timeoutMs*integerproviders*curl -X GET 'https://example.com/api/v1/admin/settings/ai'{ "activeProvider": "disabled", "timeoutMs": 0, "providers": { "claude": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" }, "openai": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" }, "ollama": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" } }}Leeres oder fehlendes apiKey lässt den gespeicherten Schlüssel unverändert; clearApiKey entfernt ihn. Aktiviert werden kann nur ein vollständig eingerichteter Anbieter.
bearerAuthAuthorizationBearer <JWT>application/json- body
activeProvider?string"disabled""claude""openai""ollama"timeoutMs?integer5000 <= value <= 600000providers?KI-Konfiguration gespeichert
application/json- response
activeProvider*string"disabled""claude""openai""ollama"timeoutMs*integerproviders*curl -X PUT 'https://example.com/api/v1/admin/settings/ai' \ -H 'Content-Type: application/json' \ -d '{}'{ "activeProvider": "disabled", "timeoutMs": 0, "providers": { "claude": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" }, "openai": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" }, "ollama": { "baseUrl": "string", "defaultBaseUrl": "string", "model": "string", "apiKeySet": true, "apiKeyHint": "string" } }}Nicht gespeicherte Angaben in config werden mit der gespeicherten Konfiguration zusammengeführt.
bearerAuthAuthorizationBearer <JWT>application/json- body
provider*string"claude""openai""ollama"config?Testergebnis
application/json- response
success*booleanresponseTimeMs?integer|nullmessage?stringmodels*array<string>modelAvailable?|Ob das eingetragene Modell beim Anbieter verfügbar ist
curl -X POST 'https://example.com/api/v1/admin/settings/ai/test' \ -H 'Content-Type: application/json' \ -d '{ "provider": "claude"}'{ "success": true, "responseTimeMs": 0, "message": "string", "models": [ "string" ], "modelAvailable": true}bearerAuthAuthorizationBearer <JWT>Backup gestartet
curl -X POST 'https://example.com/api/v1/admin/backup'bearerAuthAuthorizationBearer <JWT>Systeminformationen
curl -X GET 'https://example.com/api/v1/admin/system'bearerAuthAuthorizationBearer <JWT>Successful response
curl -X GET 'https://example.com/api/v1/admin/overview'bearerAuthAuthorizationBearer <JWT>Successful response
curl -X GET 'https://example.com/api/v1/admin/settings'bearerAuthAuthorizationBearer <JWT>Successful response
curl -X PATCH 'https://example.com/api/v1/admin/settings'bearerAuthAuthorizationBearer <JWT>Redis-Verbindung, Anzahl Jobs je Warteschlange und Redis-Insight-Adresse
application/json- response
online?booleancounts?redisInsight?curl -X GET 'https://example.com/api/v1/admin/jobs/status'{ "online": true, "counts": { "property1": 0, "property2": 0 }, "redisInsight": { "url": "string", "port": 0 }}bearerAuthAuthorizationBearer <JWT>Successful response
curl -X GET 'https://example.com/api/v1/admin/jobs'bearerAuthAuthorizationBearer <JWT>id*stringSuccessful response
curl -X POST 'https://example.com/api/v1/admin/jobs/string/retry'bearerAuthAuthorizationBearer <JWT>id*stringSuccessful response
curl -X DELETE 'https://example.com/api/v1/admin/jobs/string'Ob Map-Matching konfiguriert ist und wie viele Fahrten gematcht, abgelehnt, fehlgeschlagen oder offen sind.
bearerAuthAuthorizationBearer <JWT>Status
application/json- response
enabled*booleanprovider*string"disabled""valhalla""osrm""atlas"reason?string|nulltrips*curl -X GET 'https://example.com/api/v1/admin/jobs/map-matching'{ "enabled": true, "provider": "disabled", "reason": "string", "trips": { "missing": 0, "applied": 0, "rejected": 0, "failed": 0 }}Reiht abgeschlossene Fahrten zum Map-Matching ein. Fahrten in abgeschlossenen Zeiträumen werden übersprungen.
bearerAuthAuthorizationBearer <JWT>application/json- body
mode?string"missing""missing""failed""all"limit?integer1 <= value <= 1000500Eingereiht
application/json- response
queued*integerselected*integermode*stringprovider?stringcurl -X POST 'https://example.com/api/v1/admin/jobs/map-matching' \ -H 'Content-Type: application/json' \ -d '{}'{ "queued": 0, "selected": 0, "mode": "string", "provider": "string"}Die letzten 100 abgelehnten bzw. fehlgeschlagenen Fahrten mit Grund, über alle Benutzer.
bearerAuthAuthorizationBearer <JWT>status?string"rejected""failed"Problemfahrten
application/json- response
trips*array<>curl -X GET 'https://example.com/api/v1/admin/jobs/map-matching/issues'{ "trips": [ { "tripId": "ab93ac19-a7bf-4885-87b6-6dcba80ee2d5", "startedAt": "2019-08-24T14:15:22Z", "timeZone": "string", "startAddress": "string", "endAddress": "string", "distanceMeters": 0, "user": { "username": "string", "displayName": "string" }, "status": "rejected", "provider": "valhalla", "message": "string", "pointCount": 0, "rawDistanceMeters": 0, "matchedDistanceMeters": 0, "matchedAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAuthorizationBearer <JWT>Successful response
curl -X POST 'https://example.com/api/v1/admin/jobs/reverse-geocode'bearerAuthAuthorizationBearer <JWT>Successful response
curl -X GET 'https://example.com/api/v1/admin/data/export'bearerAuthAuthorizationBearer <JWT>Successful response
curl -X POST 'https://example.com/api/v1/admin/data/import'Stand der Ersteinrichtung plus Werte, die nur über die Docker-Umgebung einstellbar sind (öffentliche Adresse, OAuth-Anbieter, SMTP) als Status.
bearerAuthAuthorizationBearer <JWT>Einrichtungsstatus
application/json- response
completed?booleancompletedAt?|date-timeenvironment?mail?Aus SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, SMTP_FROM_NAME.
gravatar?curl -X GET 'https://example.com/api/v1/admin/setup'{ "completed": true, "completedAt": "2019-08-24T14:15:22Z", "environment": { "publicBaseUrl": "string", "publicBaseUrlConfigured": true, "timezone": "string", "oauth": { "google": true, "microsoft": true, "redirectUriTemplate": "string" }, "passkeys": { "enabled": true, "rpId": "string" }, "channel": "dev" }, "mail": { "configured": true, "host": "string", "port": 0, "security": "starttls", "username": "string", "passwordSet": true, "fromAddress": "string", "fromName": "string" }, "gravatar": { "enabled": true, "source": "database" }}Markiert die Ersteinrichtung als abgeschlossen; gilt auch als abgeschlossener Assistent des eigenen Kontos.
bearerAuthAuthorizationBearer <JWT>Abgeschlossen
application/json- response
completed?booleancompletedAt?|date-timeuser?curl -X POST 'https://example.com/api/v1/admin/setup/complete'{ "completed": true, "completedAt": "2019-08-24T14:15:22Z", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "user@example.com", "loginName": "string", "displayName": "string", "firstName": "string", "lastName": "string", "role": "user", "status": "active", "locale": "de", "timezone": "Europe/Berlin", "themeMode": "light", "totpEnabled": true, "totpRequired": true, "passkeyEnabled": true, "hasPassword": true, "forcePasswordChange": true, "onboardingCompleted": true, "lastLoginAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}SMTP wird ausschließlich über die SMTP_*-Umgebungsvariablen konfiguriert. Liefert die erkannten Werte ohne Passwort.
bearerAuthAuthorizationBearer <JWT>SMTP-Status
application/json- response
Aus SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, SMTP_FROM_NAME.
configured?booleanSMTP_HOST und SMTP_FROM gesetzt
host?stringport?integer|nullsecurity?|"starttls""tls"nullusername?stringpasswordSet?booleanfromAddress?stringfromName?stringcurl -X GET 'https://example.com/api/v1/admin/mail'{ "configured": true, "host": "string", "port": 0, "security": "starttls", "username": "string", "passwordSet": true, "fromAddress": "string", "fromName": "string"}Sendet mit der SMTP-Konfiguration aus der Umgebung.
bearerAuthAuthorizationBearer <JWT>application/json- body
to?stringStandard ist die Adresse des angemeldeten Admins
emailGesendet
application/json- response
sent?booleanto?stringemailcurl -X POST 'https://example.com/api/v1/admin/mail/test' \ -H 'Content-Type: application/json' \ -d '{}'{ "sent": true, "to": "user@example.com"}