Google Login
Get redirect for google login
GET/api/google/logins
Responses
200Get redirect for google loginOpenDataRedirect
curl --request GET \
--url https://your-instance.iw-erp.de/api/google/loginsconst options = {method: 'GET'};
fetch('https://your-instance.iw-erp.de/api/google/logins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/google/logins"
response = requests.get(url)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/google/logins');
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/google/logins"),
};
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://your-instance.iw-erp.de/api/google/logins")
.get()
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/google/logins"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/google_login_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
final result = await GoogleLoginController.getRedirect();
if (result.success) {
print(result.data);
}{}Do log in with google code
POST/api/googles/logins
Request body application/json
dataFormLoginUser3Show fields (3)
codestringCode of the login form user.
typestringType of the login form user.
client_idstringIdentifier of the client the login form belongs to.
Responses
200Do log in with google codeSession
Show fields (15)
idintegerPrimary key of the session. Internal ID.
sessionidstringID of the session.
selectedcustomerCustomerProfileCustomer profile selected in the session.
Show fields (6)
idintegerPrimary key of the customer profile. Internal ID.
slackchannelstringSlack channel of the customer profile.
displaynamestringName shown for the customer profile.
deletedbooleanWhether the customer profile is deleted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
startstring (date-time)Point in time the session started.
refreshed_startstring (date-time)Point in time the session was last refreshed.
ipstringIP address of the client.
validbooleanWhether the session is valid.
is_api_keybooleanWhether the session was created with an API key.
is_dgbooleanWhether the session is for the DG (member organization) context.
missing2fabooleanWhether two-factor authentication is still missing.
start_in_vpnbooleanWhether the session started in a VPN.
auth_by_credentialsbooleanWhether the session was authenticated with user name and password.
auth_by_googlebooleanWhether the session was authenticated with Google.
auth_by_microsoftbooleanWhether the session was authenticated with Microsoft.
auth_by_cloudflarebooleanWhether the session was authenticated with Cloudflare Access.
curl --request POST \
--url https://your-instance.iw-erp.de/api/googles/logins \
--header 'content-type: application/json' \
--data '
{
"data": {
"code": "string",
"type": "string",
"client_id": "42"
}
}
'const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: JSON.stringify({data: {code: 'string', type: 'string', client_id: '42'}})
};
fetch('https://your-instance.iw-erp.de/api/googles/logins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/googles/logins"
payload = { "data": {
"code": "string",
"type": "string",
"client_id": "42"
} }
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://your-instance.iw-erp.de/api/googles/logins', [
'body' => '{"data":{"code":"string","type":"string","client_id":"42"}}',
'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://your-instance.iw-erp.de/api/googles/logins"),
Content = new StringContent("{\"data\":{\"code\":\"string\",\"type\":\"string\",\"client_id\":\"42\"}}")
{
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, "{\"data\":{\"code\":\"string\",\"type\":\"string\",\"client_id\":\"42\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/googles/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://your-instance.iw-erp.de/api/googles/logins"
payload := strings.NewReader("{\"data\":{\"code\":\"string\",\"type\":\"string\",\"client_id\":\"42\"}}")
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/google_login_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
final result = await GoogleLoginController.doCodeLogin('…');
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
}