Zum Inhalt springen
Developer

JWT ApiAccess

Anmeldung / JWT ApiAccess

Login und Sitzung19 EndpunkteLogin / JWT ApiAccess

Legt als Super-Admin ein neues MqttToken an

GET/api/base/api_token/create_mqtt_jwt

Query-Parameter

allowedPathPflichtstringerlaubter Pfad
validSecondsnumberAnzahl Sekunden in der Zukunft. 31536000

Antworten

200Legt als Super-Admin ein neues MqttToken anSession

Felder anzeigen (15)
  • idinteger

    Primärschlüssel der Sitzung. Interne ID.

  • sessionidstring

    ID der Sitzung.

  • selectedcustomerCustomerProfile

    In der Sitzung ausgewähltes Kundenprofil.

    Felder anzeigen (6)
    • idinteger

      Primärschlüssel des Kundenprofils. Interne ID.

    • slackchannelstring

      Slack-Kanal des Kundenprofils.

    • displaynamestring

      Anzeigename des Kundenprofils.

    • deletedboolean

      Ob 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.

  • ipstring

    IP-Adresse des Clients.

  • validboolean

    Ob die Sitzung gültig ist.

  • is_api_keyboolean

    Ob die Sitzung mit einem API-Schlüssel erstellt wurde.

  • is_dgboolean

    Ob die Sitzung für den Kontext der DG (Mitgliedsorganisation) gilt.

  • missing2faboolean

    Ob die Zwei-Faktor-Authentifizierung noch fehlt.

  • start_in_vpnboolean

    Ob die Sitzung in einem VPN gestartet wurde.

  • auth_by_credentialsboolean

    Ob die Sitzung mit Benutzername und Passwort authentifiziert wurde.

  • auth_by_googleboolean

    Ob die Sitzung mit Google authentifiziert wurde.

  • auth_by_microsoftboolean

    Ob die Sitzung mit Microsoft authentifiziert wurde.

  • auth_by_cloudflareboolean

    Ob die Sitzung mit Cloudflare Access authentifiziert wurde.

Anfrage
curl --request GET \
  --url 'https://eure-instanz.iw-erp.de/api/base/api_token/create_mqtt_jwt?allowedPath=string' \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "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
}

Legt ein neues JWT-Anmeldetoken an

GET/api/base/api_token/create_jwt

Query-Parameter

scopesstringkommagetrennte Liste von Scopes
allowedPathstringerlaubter Pfad
allowedMethodstringerlaubter Pfad
validSecondsnumberAnzahl Sekunden in der Zukunft. 86400
maxUserAccessTypenumbermaximaler Benutzer-Zugriffstyp, der dem JWT hinzugefügt wird. 2 = schreiben, 1 = bearbeiten, 0 = lesen
extraShortstringden Algorithmus-Teil des JWT durch den Standardwert ersetzen, um 32 Zeichen zu sparen. true / false

Antworten

200Legt ein neues JWT-Anmeldetoken anSession

Felder anzeigen (15)
  • idinteger

    Primärschlüssel der Sitzung. Interne ID.

  • sessionidstring

    ID der Sitzung.

  • selectedcustomerCustomerProfile

    In der Sitzung ausgewähltes Kundenprofil.

    Felder anzeigen (6)
    • idinteger

      Primärschlüssel des Kundenprofils. Interne ID.

    • slackchannelstring

      Slack-Kanal des Kundenprofils.

    • displaynamestring

      Anzeigename des Kundenprofils.

    • deletedboolean

      Ob 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.

  • ipstring

    IP-Adresse des Clients.

  • validboolean

    Ob die Sitzung gültig ist.

  • is_api_keyboolean

    Ob die Sitzung mit einem API-Schlüssel erstellt wurde.

  • is_dgboolean

    Ob die Sitzung für den Kontext der DG (Mitgliedsorganisation) gilt.

  • missing2faboolean

    Ob die Zwei-Faktor-Authentifizierung noch fehlt.

  • start_in_vpnboolean

    Ob die Sitzung in einem VPN gestartet wurde.

  • auth_by_credentialsboolean

    Ob die Sitzung mit Benutzername und Passwort authentifiziert wurde.

  • auth_by_googleboolean

    Ob die Sitzung mit Google authentifiziert wurde.

  • auth_by_microsoftboolean

    Ob die Sitzung mit Microsoft authentifiziert wurde.

  • auth_by_cloudflareboolean

    Ob die Sitzung mit Cloudflare Access authentifiziert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/base/api_token/create_jwt \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "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
}

Liefert einen einzelnen ApiAccessToken-Eintrag.

GET/api/base/api_access_token/{id}

Pfad-Parameter

idPflichtstring

Antworten

200Gibt ein einzelnes ApiAccessToken-Objekt zurück.ApiAccessToken

Felder anzeigen (18)
  • idinteger

    Primärschlüssel des API-Zugriffstokens. Interne ID.

  • allow_super_adminboolean

    Der Token darf Super-Admin-Rechte nutzen. Nur gesetzt, wenn ein Super-Admin den Token erstellt und allowSuperAdmin=true anfordert.

  • allow_adminboolean

    Der Token darf Admin-Rechte nutzen.

  • allow_userboolean

    Der Token darf reguläre Benutzerrechte nutzen.

  • is_dgboolean

    Sitzungskennzeichen, übernommen aus der Sitzung, die den Token erstellt hat.

  • tokenstring

    Kurzer Zugriffstoken. Wird beim Erstellen des Tokens zurückgegeben.

  • allowed_pathstring

    Pfad, den der Token aufrufen darf. Beschränkt den Token auf API-Routen, die mit diesem Pfad beginnen.

  • allowed_methodsstring

    HTTP-Methoden, die der Token nutzen darf, zum Beispiel GET oder POST.

  • rwe_scopestring

    Lese-, Schreib- und Bearbeiten-Scopes, die der Token nutzen darf.

  • r_scopestring

    Lese-Scopes, die der Token nutzen darf.

  • e_scopestring

    Bearbeiten-Scopes, die der Token nutzen darf.

  • w_scopestring

    Schreib-Scopes, die der Token nutzen darf.

  • scopesobject

    Liste der Scopes, die der Token nutzen darf.

  • token_versionstring

    Version des Token-Formats. Wird verwendet, um alte Tokens ungültig zu machen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • namestring

    Name der Einheit.

  • deletedboolean

    Diese Eigenschaft markiert eine Entität als gelöscht / archiviert

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/base/api_access_token/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "name": "Beispiel",
  "allow_super_admin": true,
  "allow_admin": true,
  "allow_user": true,
  "is_dg": true,
  "token": "string",
  "allowed_path": "string",
  "allowed_methods": "string",
  "rwe_scope": "string"
}

Löscht einen einzelnen ApiAccessToken-Eintrag.

DELETE/api/base/api_access_token/{id}

Pfad-Parameter

idPflichtstring

Antworten

200Einzelnes ApiAccessToken löschenApiAccessToken

Felder anzeigen (18)
  • idinteger

    Primärschlüssel des API-Zugriffstokens. Interne ID.

  • allow_super_adminboolean

    Der Token darf Super-Admin-Rechte nutzen. Nur gesetzt, wenn ein Super-Admin den Token erstellt und allowSuperAdmin=true anfordert.

  • allow_adminboolean

    Der Token darf Admin-Rechte nutzen.

  • allow_userboolean

    Der Token darf reguläre Benutzerrechte nutzen.

  • is_dgboolean

    Sitzungskennzeichen, übernommen aus der Sitzung, die den Token erstellt hat.

  • tokenstring

    Kurzer Zugriffstoken. Wird beim Erstellen des Tokens zurückgegeben.

  • allowed_pathstring

    Pfad, den der Token aufrufen darf. Beschränkt den Token auf API-Routen, die mit diesem Pfad beginnen.

  • allowed_methodsstring

    HTTP-Methoden, die der Token nutzen darf, zum Beispiel GET oder POST.

  • rwe_scopestring

    Lese-, Schreib- und Bearbeiten-Scopes, die der Token nutzen darf.

  • r_scopestring

    Lese-Scopes, die der Token nutzen darf.

  • e_scopestring

    Bearbeiten-Scopes, die der Token nutzen darf.

  • w_scopestring

    Schreib-Scopes, die der Token nutzen darf.

  • scopesobject

    Liste der Scopes, die der Token nutzen darf.

  • token_versionstring

    Version des Token-Formats. Wird verwendet, um alte Tokens ungültig zu machen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • namestring

    Name der Einheit.

  • deletedboolean

    Diese Eigenschaft markiert eine Entität als gelöscht / archiviert

Anfrage
curl --request DELETE \
  --url https://eure-instanz.iw-erp.de/api/base/api_access_token/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "name": "Beispiel",
  "allow_super_admin": true,
  "allow_admin": true,
  "allow_user": true,
  "is_dg": true,
  "token": "string",
  "allowed_path": "string",
  "allowed_methods": "string",
  "rwe_scope": "string"
}

Liefert eine Liste der eigenen ApiAccessToken-Objekte.

GET/api/base/api_access_token

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert eine Liste der eigenen ApiAccessToken-Objekte.array<ApiAccessToken>

Felder anzeigen (18)
  • idinteger

    Primärschlüssel des API-Zugriffstokens. Interne ID.

  • allow_super_adminboolean

    Der Token darf Super-Admin-Rechte nutzen. Nur gesetzt, wenn ein Super-Admin den Token erstellt und allowSuperAdmin=true anfordert.

  • allow_adminboolean

    Der Token darf Admin-Rechte nutzen.

  • allow_userboolean

    Der Token darf reguläre Benutzerrechte nutzen.

  • is_dgboolean

    Sitzungskennzeichen, übernommen aus der Sitzung, die den Token erstellt hat.

  • tokenstring

    Kurzer Zugriffstoken. Wird beim Erstellen des Tokens zurückgegeben.

  • allowed_pathstring

    Pfad, den der Token aufrufen darf. Beschränkt den Token auf API-Routen, die mit diesem Pfad beginnen.

  • allowed_methodsstring

    HTTP-Methoden, die der Token nutzen darf, zum Beispiel GET oder POST.

  • rwe_scopestring

    Lese-, Schreib- und Bearbeiten-Scopes, die der Token nutzen darf.

  • r_scopestring

    Lese-Scopes, die der Token nutzen darf.

  • e_scopestring

    Bearbeiten-Scopes, die der Token nutzen darf.

  • w_scopestring

    Schreib-Scopes, die der Token nutzen darf.

  • scopesobject

    Liste der Scopes, die der Token nutzen darf.

  • token_versionstring

    Version des Token-Formats. Wird verwendet, um alte Tokens ungültig zu machen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • namestring

    Name der Einheit.

  • deletedboolean

    Diese Eigenschaft markiert eine Entität als gelöscht / archiviert

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/base/api_access_token \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "name": "Beispiel",
    "allow_super_admin": true,
    "allow_admin": true,
    "allow_user": true,
    "is_dg": true,
    "token": "string",
    "allowed_path": "string",
    "allowed_methods": "string",
    "rwe_scope": "string"
  }
]

Prüft, ob das API-Zugriffs-Token gültig ist. Mit mode=info werden Token-Details, Benutzerinformationen und die verfügbaren Scopes abgerufen.

GET/api/base/api_access_token_test

Query-Parameter

modestringAuf „info“ setzen, um Token-Details, Benutzerinformationen und verfügbare Scopes zu liefern

Antworten

200Liefert true, wenn das API-Zugangs-Token gültig istSuccess

Felder anzeigen (3)
  • successboolean
  • messagestring
  • error_codesarray<integer>
Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/base/api_access_token_test \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "success": true,
  "message": "string",
  "error_codes": [
    1
  ]
}

Alle MCP-Tools und API-Routen (PATCH/POST von api_patch/api_post), die ein Filter erlauben kann (für die Verwaltungsoberfläche). alwaysAllowed-Tools werden nie gefiltert. Texte folgen ?lang= / Accept-Language.

GET/api/opendata/mcp_access_filter_catalog

Antworten

200tools: [{name, title, description, readOnly, alwaysAllowed}], api_routes: [{route, method, path, entity, summary}]

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter_catalog \
  --header 'x-iw-jwt-token: <TOKEN>'

Liefert die MCP-Tool-Filter der eigenen API-Zugangs-Tokens (Filter mit ?apiAccessToken=<id>)

GET/api/opendata/mcp_access_filter

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert die MCP-Tool-Filter der eigenen API-Zugangs-Tokensarray<McpAccessFilter>

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "api_access_token": 1,
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  }
]

Fügt den MCP-Tool-Filter eines eigenen API-Zugriffs-Tokens hinzu (ein Filter pro Token).

POST/api/opendata/mcp_access_filter

allowed_tools / allowed_api_routes: Listen von Namen aus dem Katalog, null = keine Begrenzung.

Request-Body application/json

  • dataMcpAccessFilter
    Felder anzeigen (4)
    • api_access_tokeninteger
    • idinteger

      Primärschlüssel des Zugriffsfilters. Interne ID.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Antworten

200Fügt den MCP-Tool-Filter eines API-Zugriffs-Tokens hinzuMcpAccessFilter

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "id": 42,
    "api_access_token": 1,
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "api_access_token": 1,
  "created": "2026-10-15T09:30:00+02:00",
  "updated": "2026-10-15T09:30:00+02:00"
}

Liefert einen einzelnen MCP-Tool-Filter eines eigenen API-Zugriffstokens.

GET/api/opendata/mcp_access_filter/{identifier}

Pfad-Parameter

identifierPflichtstring

Antworten

200Liefert einen einzelnen MCP-Tool-Filter.McpAccessFilter

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "api_access_token": 1,
  "created": "2026-10-15T09:30:00+02:00",
  "updated": "2026-10-15T09:30:00+02:00"
}

Ändert den MCP-Tool-Filter eines eigenen API-Zugriffstokens (PATCH: nur die gesendeten Felder)

PUT/api/opendata/mcp_access_filter/{identifier}

Pfad-Parameter

identifierPflichtstring

Request-Body application/json

  • dataMcpAccessFilter
    Felder anzeigen (4)
    • api_access_tokeninteger
    • idinteger

      Primärschlüssel des Zugriffsfilters. Interne ID.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Antworten

200Ändert den MCP-Tool-Filter eines API-ZugriffstokensMcpAccessFilter

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request PUT \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "id": 42,
    "api_access_token": 1,
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "api_access_token": 1,
  "created": "2026-10-15T09:30:00+02:00",
  "updated": "2026-10-15T09:30:00+02:00"
}

Ändert den MCP-Tool-Filter eines eigenen API-Zugriffstokens (PATCH: nur die gesendeten Felder)

PATCH/api/opendata/mcp_access_filter/{identifier}

Pfad-Parameter

identifierPflichtstring

Request-Body application/json

  • dataMcpAccessFilter
    Felder anzeigen (4)
    • api_access_tokeninteger
    • idinteger

      Primärschlüssel des Zugriffsfilters. Interne ID.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Antworten

200Ändert den MCP-Tool-Filter eines API-ZugriffstokensMcpAccessFilter

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request PATCH \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "id": 42,
    "api_access_token": 1,
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "api_access_token": 1,
  "created": "2026-10-15T09:30:00+02:00",
  "updated": "2026-10-15T09:30:00+02:00"
}

Entfernt den MCP-Tool-Filter eines eigenen API-Zugriffstokens (das Token darf danach wieder alle Tools verwenden)

DELETE/api/opendata/mcp_access_filter/{identifier}

Pfad-Parameter

identifierPflichtstring

Antworten

200Entfernt den MCP-Tool-Filter eines API-Zugriffstokens.McpAccessFilter

Felder anzeigen (4)
  • api_access_tokeninteger
  • idinteger

    Primärschlüssel des Zugriffsfilters. Interne ID.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request DELETE \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_access_filter/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "api_access_token": 1,
  "created": "2026-10-15T09:30:00+02:00",
  "updated": "2026-10-15T09:30:00+02:00"
}

Liefert die sichtbaren Freigabeanfragen, neueste zuerst (?status=pending,failed&actionType=&page=&pageSize=).

GET/api/opendata/mcp_approval_request

Die Antwort-Header X-IW-MAX-RESULTS / X-IW-MAX-PAGES enthalten die Summen.

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert die sichtbaren Freigabeanfragen von KI-Agentenarray<McpApprovalRequest>

Felder anzeigen (20)
  • idinteger

    Primärschlüssel der Genehmigungsanfrage. Interne ID.

  • statusstring

    Status der Anfrage: pending, approved, executed, failed, rejected, cancelled oder expired.

  • action_typestring

    Aktionstyp aus der statischen MCP-Freigabe-Aktionszuordnung.

  • titlestring

    Kurze Zusammenfassung, die vom Server und nicht vom Agenten geschrieben wird.

  • reasonstring

    Vom Agenten angegebene Begründung. Nicht vertrauenswürdiger Text. Nur als Klartext anzeigen.

  • target_classstring

    Kurzer Klassenname des Hauptdatensatzes, zum Beispiel crm_person.

  • target_idinteger

    ID des Hauptdatensatzes.

  • requested_by_user_idinteger

    ID des Benutzers, der die Aktion angefordert hat.

  • requested_bystring

    Name des Benutzers, der die Aktion angefordert hat.

  • requested_auth_typestring

    Wie sich der Anforderer angemeldet hat.

  • requested_clientstring

    Client, der die Anfrage gestellt hat.

  • expires_atstring (date-time)

    Zeitpunkt, nach dem die Anfrage abläuft.

  • decided_by_user_idinteger

    ID des Benutzers, der die Anfrage genehmigt oder abgelehnt hat.

  • decided_bystring

    Name des Benutzers, der den Antrag genehmigt oder abgelehnt hat.

  • decided_atstring (date-time)

    Zeitpunkt der Entscheidung.

  • decision_commentstring

    Mit der Entscheidung abgegebener Kommentar.

  • executed_atstring (date-time)

    Zeitpunkt, zu dem die Aktion ausgeführt wurde.

  • error_messagestring

    Fehlermeldung, falls die Ausführung fehlgeschlagen ist.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_approval_request \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "title": "Beispiel",
    "decision_comment": "Text",
    "status": "string",
    "action_type": "string",
    "reason": "string",
    "target_class": "string",
    "target_id": 42,
    "requested_by_user_id": 42,
    "requested_by": "string"
  }
]

Liefert eine Freigabeanfrage mit Vorschau, Payload, Entscheidung und Ergebnis

GET/api/opendata/mcp_approval_request/{identifier}

Pfad-Parameter

identifierPflichtstring

Antworten

200Liefert eine FreigabeanfrageMcpApprovalRequest

Felder anzeigen (20)
  • idinteger

    Primärschlüssel der Genehmigungsanfrage. Interne ID.

  • statusstring

    Status der Anfrage: pending, approved, executed, failed, rejected, cancelled oder expired.

  • action_typestring

    Aktionstyp aus der statischen MCP-Freigabe-Aktionszuordnung.

  • titlestring

    Kurze Zusammenfassung, die vom Server und nicht vom Agenten geschrieben wird.

  • reasonstring

    Vom Agenten angegebene Begründung. Nicht vertrauenswürdiger Text. Nur als Klartext anzeigen.

  • target_classstring

    Kurzer Klassenname des Hauptdatensatzes, zum Beispiel crm_person.

  • target_idinteger

    ID des Hauptdatensatzes.

  • requested_by_user_idinteger

    ID des Benutzers, der die Aktion angefordert hat.

  • requested_bystring

    Name des Benutzers, der die Aktion angefordert hat.

  • requested_auth_typestring

    Wie sich der Anforderer angemeldet hat.

  • requested_clientstring

    Client, der die Anfrage gestellt hat.

  • expires_atstring (date-time)

    Zeitpunkt, nach dem die Anfrage abläuft.

  • decided_by_user_idinteger

    ID des Benutzers, der die Anfrage genehmigt oder abgelehnt hat.

  • decided_bystring

    Name des Benutzers, der den Antrag genehmigt oder abgelehnt hat.

  • decided_atstring (date-time)

    Zeitpunkt der Entscheidung.

  • decision_commentstring

    Mit der Entscheidung abgegebener Kommentar.

  • executed_atstring (date-time)

    Zeitpunkt, zu dem die Aktion ausgeführt wurde.

  • error_messagestring

    Fehlermeldung, falls die Ausführung fehlgeschlagen ist.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_approval_request/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "title": "Beispiel",
  "decision_comment": "Text",
  "status": "string",
  "action_type": "string",
  "reason": "string",
  "target_class": "string",
  "target_id": 42,
  "requested_by_user_id": 42,
  "requested_by": "string"
}

Genehmigt die Anfrage und führt die Aktion mit den Rechten des Aufrufers aus. Nur für Personen, die in der ERP angemeldet sind (x-session-token-Header). Body: {„comment“: „...“} (optional). Die Antwort ist die Anfrage mit Status executed (result) oder failed (error_message); eine fehlgeschlagene Aktion hat nichts gespeichert.

POST/api/opendata/mcp_approval_request/{identifier}/approve

Pfad-Parameter

identifierPflichtstring

Antworten

200Genehmigt eine Genehmigungsanfrage und führt sie ausMcpApprovalRequest

Felder anzeigen (20)
  • idinteger

    Primärschlüssel der Genehmigungsanfrage. Interne ID.

  • statusstring

    Status der Anfrage: pending, approved, executed, failed, rejected, cancelled oder expired.

  • action_typestring

    Aktionstyp aus der statischen MCP-Freigabe-Aktionszuordnung.

  • titlestring

    Kurze Zusammenfassung, die vom Server und nicht vom Agenten geschrieben wird.

  • reasonstring

    Vom Agenten angegebene Begründung. Nicht vertrauenswürdiger Text. Nur als Klartext anzeigen.

  • target_classstring

    Kurzer Klassenname des Hauptdatensatzes, zum Beispiel crm_person.

  • target_idinteger

    ID des Hauptdatensatzes.

  • requested_by_user_idinteger

    ID des Benutzers, der die Aktion angefordert hat.

  • requested_bystring

    Name des Benutzers, der die Aktion angefordert hat.

  • requested_auth_typestring

    Wie sich der Anforderer angemeldet hat.

  • requested_clientstring

    Client, der die Anfrage gestellt hat.

  • expires_atstring (date-time)

    Zeitpunkt, nach dem die Anfrage abläuft.

  • decided_by_user_idinteger

    ID des Benutzers, der die Anfrage genehmigt oder abgelehnt hat.

  • decided_bystring

    Name des Benutzers, der den Antrag genehmigt oder abgelehnt hat.

  • decided_atstring (date-time)

    Zeitpunkt der Entscheidung.

  • decision_commentstring

    Mit der Entscheidung abgegebener Kommentar.

  • executed_atstring (date-time)

    Zeitpunkt, zu dem die Aktion ausgeführt wurde.

  • error_messagestring

    Fehlermeldung, falls die Ausführung fehlgeschlagen ist.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_approval_request/42/approve \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "title": "Beispiel",
  "decision_comment": "Text",
  "status": "string",
  "action_type": "string",
  "reason": "string",
  "target_class": "string",
  "target_id": 42,
  "requested_by_user_id": 42,
  "requested_by": "string"
}

Lehnt die Anfrage ab; es wird nichts ausgeführt. Nur für Personen, die im ERP angemeldet sind (Header x-session-token).

POST/api/opendata/mcp_approval_request/{identifier}/reject

Body: {"comment": "..."} (optional, wird vom Agenten gelesen).

Pfad-Parameter

identifierPflichtstring

Antworten

200Lehnt eine Genehmigungsanfrage abMcpApprovalRequest

Felder anzeigen (20)
  • idinteger

    Primärschlüssel der Genehmigungsanfrage. Interne ID.

  • statusstring

    Status der Anfrage: pending, approved, executed, failed, rejected, cancelled oder expired.

  • action_typestring

    Aktionstyp aus der statischen MCP-Freigabe-Aktionszuordnung.

  • titlestring

    Kurze Zusammenfassung, die vom Server und nicht vom Agenten geschrieben wird.

  • reasonstring

    Vom Agenten angegebene Begründung. Nicht vertrauenswürdiger Text. Nur als Klartext anzeigen.

  • target_classstring

    Kurzer Klassenname des Hauptdatensatzes, zum Beispiel crm_person.

  • target_idinteger

    ID des Hauptdatensatzes.

  • requested_by_user_idinteger

    ID des Benutzers, der die Aktion angefordert hat.

  • requested_bystring

    Name des Benutzers, der die Aktion angefordert hat.

  • requested_auth_typestring

    Wie sich der Anforderer angemeldet hat.

  • requested_clientstring

    Client, der die Anfrage gestellt hat.

  • expires_atstring (date-time)

    Zeitpunkt, nach dem die Anfrage abläuft.

  • decided_by_user_idinteger

    ID des Benutzers, der die Anfrage genehmigt oder abgelehnt hat.

  • decided_bystring

    Name des Benutzers, der den Antrag genehmigt oder abgelehnt hat.

  • decided_atstring (date-time)

    Zeitpunkt der Entscheidung.

  • decision_commentstring

    Mit der Entscheidung abgegebener Kommentar.

  • executed_atstring (date-time)

    Zeitpunkt, zu dem die Aktion ausgeführt wurde.

  • error_messagestring

    Fehlermeldung, falls die Ausführung fehlgeschlagen ist.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_approval_request/42/reject \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "title": "Beispiel",
  "decision_comment": "Text",
  "status": "string",
  "action_type": "string",
  "reason": "string",
  "target_class": "string",
  "target_id": 42,
  "requested_by_user_id": 42,
  "requested_by": "string"
}

Zieht eine offene Anfrage zurück; nur die Anmeldung (Benutzer), die sie vorgeschlagen hat.

POST/api/opendata/mcp_approval_request/{identifier}/cancel

Pfad-Parameter

identifierPflichtstring

Antworten

200Zieht eine eigene offene Genehmigungsanfrage zurückMcpApprovalRequest

Felder anzeigen (20)
  • idinteger

    Primärschlüssel der Genehmigungsanfrage. Interne ID.

  • statusstring

    Status der Anfrage: pending, approved, executed, failed, rejected, cancelled oder expired.

  • action_typestring

    Aktionstyp aus der statischen MCP-Freigabe-Aktionszuordnung.

  • titlestring

    Kurze Zusammenfassung, die vom Server und nicht vom Agenten geschrieben wird.

  • reasonstring

    Vom Agenten angegebene Begründung. Nicht vertrauenswürdiger Text. Nur als Klartext anzeigen.

  • target_classstring

    Kurzer Klassenname des Hauptdatensatzes, zum Beispiel crm_person.

  • target_idinteger

    ID des Hauptdatensatzes.

  • requested_by_user_idinteger

    ID des Benutzers, der die Aktion angefordert hat.

  • requested_bystring

    Name des Benutzers, der die Aktion angefordert hat.

  • requested_auth_typestring

    Wie sich der Anforderer angemeldet hat.

  • requested_clientstring

    Client, der die Anfrage gestellt hat.

  • expires_atstring (date-time)

    Zeitpunkt, nach dem die Anfrage abläuft.

  • decided_by_user_idinteger

    ID des Benutzers, der die Anfrage genehmigt oder abgelehnt hat.

  • decided_bystring

    Name des Benutzers, der den Antrag genehmigt oder abgelehnt hat.

  • decided_atstring (date-time)

    Zeitpunkt der Entscheidung.

  • decision_commentstring

    Mit der Entscheidung abgegebener Kommentar.

  • executed_atstring (date-time)

    Zeitpunkt, zu dem die Aktion ausgeführt wurde.

  • error_messagestring

    Fehlermeldung, falls die Ausführung fehlgeschlagen ist.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_approval_request/42/cancel \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "title": "Beispiel",
  "decision_comment": "Text",
  "status": "string",
  "action_type": "string",
  "reason": "string",
  "target_class": "string",
  "target_id": 42,
  "requested_by_user_id": 42,
  "requested_by": "string"
}

Liefert die MCP-Tool-Aufrufe, neueste zuerst (?toolName=&userId=&outcome=ok|error|denied&approvalRequest=&from=&to=&page=&pageSize=).

GET/api/opendata/mcp_tool_call_log

Die Antwort-Header X-IW-MAX-RESULTS / X-IW-MAX-PAGES enthalten die Summen.

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert das Audit-Protokoll des MCP-Serversarray<McpToolCallLog>

Felder anzeigen (15)
  • idinteger

    Primärschlüssel des Protokolleintrags. Interne ID.

  • createdstring (date-time)

    Zeitpunkt des Tool-Aufrufs.

  • tool_namestring

    Name des aufgerufenen MCP-Tools.

  • outcomestring

    Ergebnis des Aufrufs: ok, error oder denied.

  • writingboolean

    Ob das Werkzeug Daten ändern kann, also nicht nur lesend ist. Null bei unbekannten Werkzeugen.

  • user_idinteger

    ID des aufrufenden Benutzers.

  • user_stringstring

    Anzeigename des aufrufenden Benutzers.

  • auth_typestring

    Wie der Aufrufer sich angemeldet hat: anonymous, public, session, api_token, oauth oder sso_durable.

  • api_access_token_idinteger

    ID des API-Zugriffstokens, das für den Aufruf verwendet wurde.

  • oauth_clientstring

    Kennung des OAuth-Clients, der für den Aufruf verwendet wird.

  • client_namestring

    Name des für den Aufruf verwendeten Clients.

  • client_ipstring

    IP-Adresse des Aufrufers.

  • error_messagestring

    Fehlermeldung, falls der Aufruf fehlgeschlagen ist.

  • duration_msinteger

    Dauer des Anrufs in Millisekunden.

  • approval_request_idinteger

    ID der Genehmigungsanfrage, die durch den Aufruf erzeugt wurde, falls vorhanden.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/opendata/mcp_tool_call_log \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "tool_name": "Beispiel",
    "client_name": "Beispiel",
    "created": "2026-10-15T09:30:00+02:00",
    "outcome": "string",
    "writing": true,
    "user_id": 42,
    "user_string": "string",
    "auth_type": "string",
    "api_access_token_id": 42
  }
]