E-Mail Login
Anmeldung / E-Mail-Anmeldung
Anmelden mit E-Mail und Passwort
POST/api/logins
Query-Parameter
tokenIdentifiersstring | Mit der Sitzung zurückzugebende JWTsErlaubt: iw-externaliw-mqttiw-internalfirebaselanista |
Request-Body application/json
loginFormLoginUserFelder anzeigen (3)
usernamestringpasswordstringtokenstring
Antworten
200Anmelden mit E-Mail und PasswortSession
Felder anzeigen (15)
idintegerPrimärschlüssel der Sitzung. Interne ID.
sessionidstringID der Sitzung.
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/logins \
--header 'content-type: application/json' \
--data '
{
"login": {
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
}
}
'const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: JSON.stringify({
login: {username: 'lena.hartmann@example.org', password: '••••••••', token: 'string'}
})
};
fetch('https://eure-instanz.iw-erp.de/api/logins', 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/logins"
payload = { "login": {
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
} }
headers = {"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/logins', [
'body' => '{"login":{"username":"lena.hartmann@example.org","password":"••••••••","token":"string"}}',
'headers' => [
'content-type' => 'application/json',
],
]);
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/logins"),
Content = new StringContent("{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"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, "{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/logins")
.post(body)
.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/logins"
payload := strings.NewReader("{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
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/login_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/email_login.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
final result = await LoginController.doLogin(EmailLogin.fromJson({
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"sessionid": "string",
"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,
"missing2fa": true
}Passwort-Zurücksetzung per E-Mail auslösen
POST/api/logins/resets
Request-Body application/json
loginFormLoginUser2Felder anzeigen (1)
usernamestring
Antworten
200Passwort-Zurücksetzung per E-Mail auslösenSuccess
Felder anzeigen (3)
successbooleanmessagestringerror_codesarray<integer>
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/logins/resets \
--header 'content-type: application/json' \
--data '
{
"login": {
"username": "lena.hartmann@example.org"
}
}
'const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: JSON.stringify({login: {username: 'lena.hartmann@example.org'}})
};
fetch('https://eure-instanz.iw-erp.de/api/logins/resets', 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/logins/resets"
payload = { "login": { "username": "lena.hartmann@example.org" } }
headers = {"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/logins/resets', [
'body' => '{"login":{"username":"lena.hartmann@example.org"}}',
'headers' => [
'content-type' => 'application/json',
],
]);
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/logins/resets"),
Content = new StringContent("{\"login\":{\"username\":\"lena.hartmann@example.org\"}}")
{
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, "{\"login\":{\"username\":\"lena.hartmann@example.org\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/logins/resets")
.post(body)
.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/logins/resets"
payload := strings.NewReader("{\"login\":{\"username\":\"lena.hartmann@example.org\"}}")
req, _ := http.NewRequest("POST", url, payload)
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/login_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/email_login.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
final result = await LoginController.resetPassword(EmailLogin.fromJson({
"username": "lena.hartmann@example.org"
}));
if (result.success) {
print(result.data);
}{
"success": true,
"message": "string",
"error_codes": [
1
]
}Eigene Anmeldung entfernen - erfordert eigenes Passwort
POST/api/logins/delete
Request-Body application/json
loginFormLoginUserFelder anzeigen (3)
usernamestringpasswordstringtokenstring
Antworten
200Eigene Anmeldung entfernen - erfordert eigenes PasswortSuccess
Felder anzeigen (3)
successbooleanmessagestringerror_codesarray<integer>
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/logins/delete \
--header 'content-type: application/json' \
--data '
{
"login": {
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
}
}
'const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: JSON.stringify({
login: {username: 'lena.hartmann@example.org', password: '••••••••', token: 'string'}
})
};
fetch('https://eure-instanz.iw-erp.de/api/logins/delete', 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/logins/delete"
payload = { "login": {
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
} }
headers = {"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/logins/delete', [
'body' => '{"login":{"username":"lena.hartmann@example.org","password":"••••••••","token":"string"}}',
'headers' => [
'content-type' => 'application/json',
],
]);
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/logins/delete"),
Content = new StringContent("{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"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, "{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/logins/delete")
.post(body)
.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/logins/delete"
payload := strings.NewReader("{\"login\":{\"username\":\"lena.hartmann@example.org\",\"password\":\"••••••••\",\"token\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
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/login_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/email_login.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
final result = await LoginController.deleteLogin(EmailLogin.fromJson({
"username": "lena.hartmann@example.org",
"password": "••••••••",
"token": "string"
}));
if (result.success) {
print(result.data);
}{
"success": true,
"message": "string",
"error_codes": [
1
]
}