Session
Sitzung / Sitzung
Diese Methode liefert das aktive Session-Objekt
GET/api/sessions
Query-Parameter
tokenIdentifiersstring | Mit der Sitzung zurückzugebende JWTsErlaubt: iw-externaliw-mqttiw-internalfirebaselanista |
validSecondsnumber | JWT, gültig für die Dauer in Sekunden |
Antworten
200Diese Methode liefert das aktive Session-ObjektSession2
Felder anzeigen (16)
idintegerPrimärschlüssel der Sitzung. Interne ID.
sessionidstringID der Sitzung.
userUser4Benutzer, zu dem die Sitzung gehört.
Felder anzeigen (12)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
user_access_groupUserAccessGroup3Benutzergruppe des Benutzers. Legt die Rechte des Benutzers für alle Scopes fest.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
user_frontend_dataUserFrontendDataGespeicherte Oberflächeneinstellungen und Favoriten des Benutzers.
search_stringstringText, unter dem die Entität gesucht werden kann.
selectedcustomerCustomerProfileIn der Sitzung ausgewähltes Kundenprofil.
Felder anzeigen (6)
idintegerPrimärschlüssel des Kundenprofils. Interne ID.
slackchannelstringSlack-Kanal des Kundenprofils.
displaynamestringAnzeigename des Kundenprofils.
deletedbooleanOb das Kundenprofil gelöscht ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Zeitpunkt, zu dem die Sitzung begonnen hat.
refreshed_startstring (date-time)Zeitpunkt, zu dem die Sitzung zuletzt erneuert wurde.
ipstringIP-Adresse des Clients.
validbooleanOb die Sitzung gültig ist.
is_api_keybooleanOb die Sitzung mit einem API-Schlüssel erstellt wurde.
is_dgbooleanOb die Sitzung für den Kontext der DG (Mitgliedsorganisation) gilt.
missing2fabooleanOb die Zwei-Faktor-Authentifizierung noch fehlt.
start_in_vpnbooleanOb die Sitzung in einem VPN gestartet wurde.
auth_by_credentialsbooleanOb die Sitzung mit Benutzername und Passwort authentifiziert wurde.
auth_by_googlebooleanOb die Sitzung mit Google authentifiziert wurde.
auth_by_microsoftbooleanOb die Sitzung mit Microsoft authentifiziert wurde.
auth_by_cloudflarebooleanOb die Sitzung mit Cloudflare Access authentifiziert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/sessions \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/sessions"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/sessions', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/sessions"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/sessions")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/sessions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/session_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SessionController.getSession();
if (result.success) {
print(result.data);
}{
"id": 42,
"sessionid": "string",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"user_frontend_data": {
"id": 42
}
},
"selectedcustomer": {
"id": 42,
"slackchannel": "string",
"displayname": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"start": "2026-10-15T09:30:00+02:00",
"refreshed_start": "2026-10-15T09:30:00+02:00",
"ip": "string",
"valid": true,
"is_api_key": true,
"is_dg": true
}Kundenprofil am Benutzer aktualisieren
POST/api/sessions
Request-Body application/json
switchcustomerprofileSwitchCustomerProfileFelder anzeigen (1)
customerprofilestring
Antworten
200Kundenprofil am Benutzer aktualisierenSession2
Felder anzeigen (16)
idintegerPrimärschlüssel der Sitzung. Interne ID.
sessionidstringID der Sitzung.
userUser4Benutzer, zu dem die Sitzung gehört.
Felder anzeigen (12)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
user_access_groupUserAccessGroup3Benutzergruppe des Benutzers. Legt die Rechte des Benutzers für alle Scopes fest.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
user_frontend_dataUserFrontendDataGespeicherte Oberflächeneinstellungen und Favoriten des Benutzers.
search_stringstringText, unter dem die Entität gesucht werden kann.
selectedcustomerCustomerProfileIn der Sitzung ausgewähltes Kundenprofil.
Felder anzeigen (6)
idintegerPrimärschlüssel des Kundenprofils. Interne ID.
slackchannelstringSlack-Kanal des Kundenprofils.
displaynamestringAnzeigename des Kundenprofils.
deletedbooleanOb das Kundenprofil gelöscht ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Zeitpunkt, zu dem die Sitzung begonnen hat.
refreshed_startstring (date-time)Zeitpunkt, zu dem die Sitzung zuletzt erneuert wurde.
ipstringIP-Adresse des Clients.
validbooleanOb die Sitzung gültig ist.
is_api_keybooleanOb die Sitzung mit einem API-Schlüssel erstellt wurde.
is_dgbooleanOb die Sitzung für den Kontext der DG (Mitgliedsorganisation) gilt.
missing2fabooleanOb die Zwei-Faktor-Authentifizierung noch fehlt.
start_in_vpnbooleanOb die Sitzung in einem VPN gestartet wurde.
auth_by_credentialsbooleanOb die Sitzung mit Benutzername und Passwort authentifiziert wurde.
auth_by_googlebooleanOb die Sitzung mit Google authentifiziert wurde.
auth_by_microsoftbooleanOb die Sitzung mit Microsoft authentifiziert wurde.
auth_by_cloudflarebooleanOb die Sitzung mit Cloudflare Access authentifiziert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/sessions \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"switchcustomerprofile": {
"customerprofile": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({switchcustomerprofile: {customerprofile: 'string'}})
};
fetch('https://eure-instanz.iw-erp.de/api/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/sessions"
payload = { "switchcustomerprofile": { "customerprofile": "string" } }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/sessions', [
'body' => '{"switchcustomerprofile":{"customerprofile":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/sessions"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"switchcustomerprofile\":{\"customerprofile\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"switchcustomerprofile\":{\"customerprofile\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/sessions")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/sessions"
payload := strings.NewReader("{\"switchcustomerprofile\":{\"customerprofile\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/session_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/customer_profile.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SessionController.setCustomerProfile(CustomerProfile.fromJson({
"customerprofile": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"sessionid": "string",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"user_frontend_data": {
"id": 42
}
},
"selectedcustomer": {
"id": 42,
"slackchannel": "string",
"displayname": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"start": "2026-10-15T09:30:00+02:00",
"refreshed_start": "2026-10-15T09:30:00+02:00",
"ip": "string",
"valid": true,
"is_api_key": true,
"is_dg": true
}Diese Methode liefert den SSO-Link mit einem Token – den Query-Parameter durableJwt=1 setzen, um ein langlebiges Token ohne die Option zu erhalten, sich als Benutzer anzumelden
GET/api/sessions/{serviceName}/sso
Pfad-Parameter
serviceNamePflichtstring |
Antworten
200Diese Methode liefert den SSO-Link mit einem Token – den Query-Parameter durableJwt=1 setzen, um ein langlebiges Token ohne die Option zu erhalten, sich als Benutzer anzumeldenOpenDataRedirect
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/sessions/42/sso \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/sessions/42/sso', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/sessions/42/sso"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/sessions/42/sso', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/sessions/42/sso"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/sessions/42/sso")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/sessions/42/sso"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/session_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SessionController.getSessionSso('42');
if (result.success) {
print(result.data);
}{}Prüft den 2FA-Code für diese Sitzung
GET/api/session/verify2fa/{id}/{code}
Pfad-Parameter
idPflichtstring | |
codePflichtstring |
Antworten
200Prüft den 2FA-Code für diese SitzungSession2
Felder anzeigen (16)
idintegerPrimärschlüssel der Sitzung. Interne ID.
sessionidstringID der Sitzung.
userUser4Benutzer, zu dem die Sitzung gehört.
Felder anzeigen (12)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
user_access_groupUserAccessGroup3Benutzergruppe des Benutzers. Legt die Rechte des Benutzers für alle Scopes fest.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
user_frontend_dataUserFrontendDataGespeicherte Oberflächeneinstellungen und Favoriten des Benutzers.
search_stringstringText, unter dem die Entität gesucht werden kann.
selectedcustomerCustomerProfileIn der Sitzung ausgewähltes Kundenprofil.
Felder anzeigen (6)
idintegerPrimärschlüssel des Kundenprofils. Interne ID.
slackchannelstringSlack-Kanal des Kundenprofils.
displaynamestringAnzeigename des Kundenprofils.
deletedbooleanOb das Kundenprofil gelöscht ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Zeitpunkt, zu dem die Sitzung begonnen hat.
refreshed_startstring (date-time)Zeitpunkt, zu dem die Sitzung zuletzt erneuert wurde.
ipstringIP-Adresse des Clients.
validbooleanOb die Sitzung gültig ist.
is_api_keybooleanOb die Sitzung mit einem API-Schlüssel erstellt wurde.
is_dgbooleanOb die Sitzung für den Kontext der DG (Mitgliedsorganisation) gilt.
missing2fabooleanOb die Zwei-Faktor-Authentifizierung noch fehlt.
start_in_vpnbooleanOb die Sitzung in einem VPN gestartet wurde.
auth_by_credentialsbooleanOb die Sitzung mit Benutzername und Passwort authentifiziert wurde.
auth_by_googlebooleanOb die Sitzung mit Google authentifiziert wurde.
auth_by_microsoftbooleanOb die Sitzung mit Microsoft authentifiziert wurde.
auth_by_cloudflarebooleanOb die Sitzung mit Cloudflare Access authentifiziert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/session/verify2fa/42/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/session_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SessionController.verify2Factor('42', '42');
if (result.success) {
print(result.data);
}{
"id": 42,
"sessionid": "string",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"user_frontend_data": {
"id": 42
}
},
"selectedcustomer": {
"id": 42,
"slackchannel": "string",
"displayname": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"start": "2026-10-15T09:30:00+02:00",
"refreshed_start": "2026-10-15T09:30:00+02:00",
"ip": "string",
"valid": true,
"is_api_key": true,
"is_dg": true
}