StudioTraining / StudioTrainingPreset
Liefert eine Liste der StudioTrainingPreset-Objekte.
GET/api/crm/studio_training/preset
Query-Parameter
idstring | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
namestring | |
durationstring | |
exerciseTypestring | Kategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha |
equipmentstring | Benötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht |
contentSourcestring | Eine der CONTENT_SOURCE_*-Konstanten |
reviewStatusstring | Eine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden |
importOriginIdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der StudioTrainingPreset-Objekte.array<StudioTrainingPreset>
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset', 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/crm/studio_training/preset"
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/crm/studio_training/preset', [
'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/crm/studio_training/preset"),
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/crm/studio_training/preset")
.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/crm/studio_training/preset"
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/studio_training_preset_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 StudioTrainingPresetController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"exercise_type": "string",
"equipment": "string"
}
]Einzelnen StudioTrainingPreset anlegen
POST/api/crm/studio_training/preset
Request-Body application/json
dataStudioTrainingPresetFelder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
videoAttachment10Video der Übung.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200Einzelnen StudioTrainingPreset anlegenStudioTrainingPreset
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
image: {
id: 42,
ocr_from_name: 'Beispiel',
ocr_from_email: 'lena.hartmann@example.org',
ocr_from_phone: '+49 511 123456',
ocr_to_name: 'Beispiel',
ocr_to_email: 'lena.hartmann@example.org'
}
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset', 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/crm/studio_training/preset"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
} }
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/crm/studio_training/preset', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","image":{"id":42,"ocr_from_name":"Beispiel","ocr_from_email":"lena.hartmann@example.org","ocr_from_phone":"+49 511 123456","ocr_to_name":"Beispiel","ocr_to_email":"lena.hartmann@example.org"}}}',
'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/crm/studio_training/preset"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset")
.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/crm/studio_training/preset"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}")
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/studio_training_preset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/studio_training_preset.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingPresetController.post(StudioTrainingPreset.fromJson({
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
],
"secondary_muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
]
}Liefert ein einzelnes StudioTrainingPreset-Objekt.
GET/api/crm/studio_training/preset/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes StudioTrainingPreset-Objekt.StudioTrainingPreset
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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/crm/studio_training/preset/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/crm/studio_training/preset/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/crm/studio_training/preset/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/crm/studio_training/preset/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/crm/studio_training/preset/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/crm/studio_training/preset/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/studio_training_preset_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 StudioTrainingPresetController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
],
"secondary_muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
]
}StudioTrainingPreset einzeln aktualisieren
PUT/api/crm/studio_training/preset/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioTrainingPresetFelder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
videoAttachment10Video der Übung.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200StudioTrainingPreset einzeln aktualisierenStudioTrainingPreset
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
image: {
id: 42,
ocr_from_name: 'Beispiel',
ocr_from_email: 'lena.hartmann@example.org',
ocr_from_phone: '+49 511 123456',
ocr_to_name: 'Beispiel',
ocr_to_email: 'lena.hartmann@example.org'
}
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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/crm/studio_training/preset/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","image":{"id":42,"ocr_from_name":"Beispiel","ocr_from_email":"lena.hartmann@example.org","ocr_from_phone":"+49 511 123456","ocr_to_name":"Beispiel","ocr_to_email":"lena.hartmann@example.org"}}}',
'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.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42")
.put(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/crm/studio_training/preset/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}")
req, _ := http.NewRequest("PUT", 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 package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.put(
Uri.parse('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
],
"secondary_muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
]
}StudioTrainingPreset einzeln aktualisieren
PATCH/api/crm/studio_training/preset/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioTrainingPresetFelder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
videoAttachment10Video der Übung.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200StudioTrainingPreset einzeln aktualisierenStudioTrainingPreset
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
image: {
id: 42,
ocr_from_name: 'Beispiel',
ocr_from_email: 'lena.hartmann@example.org',
ocr_from_phone: '+49 511 123456',
ocr_to_name: 'Beispiel',
ocr_to_email: 'lena.hartmann@example.org'
}
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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/crm/studio_training/preset/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","image":{"id":42,"ocr_from_name":"Beispiel","ocr_from_email":"lena.hartmann@example.org","ocr_from_phone":"+49 511 123456","ocr_to_name":"Beispiel","ocr_to_email":"lena.hartmann@example.org"}}}',
'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.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42")
.patch(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/crm/studio_training/preset/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"image\":{\"id\":42,\"ocr_from_name\":\"Beispiel\",\"ocr_from_email\":\"lena.hartmann@example.org\",\"ocr_from_phone\":\"+49 511 123456\",\"ocr_to_name\":\"Beispiel\",\"ocr_to_email\":\"lena.hartmann@example.org\"}}}")
req, _ := http.NewRequest("PATCH", 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 package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org"
}
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
],
"secondary_muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
]
}Eine einzelne StudioTrainingPreset löschen (Soft Delete)
DELETE/api/crm/studio_training/preset/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Eine einzelne StudioTrainingPreset löschenStudioTrainingPreset
Felder anzeigen (25)
idintegerPrimärschlüssel der Trainingsvorlage. Interne ID.
namestringName der Übung.
descriptionstringBeschreibung der Übung.
imageAttachment10Bild der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
videoAttachment10Video der Übung.
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
durationintegerTypische Dauer der Übung in Sekunden.
muscle_groupsarray<StudioTrainingMuscleGroup>Hauptsächlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
secondary_muscle_groupsarray<StudioTrainingMuscleGroup>Zusätzlich trainierte Muskelgruppen
Felder anzeigen (10)
idintegerPrimärschlüssel der Muskelgruppe. Interne ID.
namestringName der Muskelgruppe.
body_marker_keystringKurzkennung, mit der Clients die Gruppe einem Körperdiagramm-Bereich zuordnen
descriptionstringBeschreibung der Muskelgruppe.
is_frontbooleanWahr, wenn die Muskelgruppe auf der Vorderseite der Körperdarstellung angezeigt wird
imageAttachment10Bild der Muskelgruppe.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
orderintegerPosition des Datensatzes in der Reihenfolge.
exercise_typestringKategorie der Übung, z. B. Kraft, Cardio, Mobilität, Reha
equipmentstringBenötigte Ausstattung als Freitext, z. B. Langhantel, Kabelzug, Körpergewicht
execution_notesstringAusführungshinweise und Sicherheitshinweise für das Mitglied
default_setsintegerStandardverordnung, die vorgeschlagen wird, wenn die Vorlage dem Plan hinzugefügt wird
default_repetitionsintegerStandardanzahl der Wiederholungen.
default_rest_secondsintegerStandard-Ruhezeit in Sekunden.
content_sourcestringEine der CONTENT_SOURCE_*-Konstanten
content_source_namestringName des Katalogs, aus dem der Eintrag übernommen wurde, z. B. wger
licensestringLizenz des importierten Inhalts, z. B. CC-BY-SA 4.0
license_authorstringAutor, der zur Erfüllung der Lizenzangabe genannt werden muss
license_author_urlstringLink zum Urheber der Bild- oder Videolizenz.
review_statusstringEine der REVIEW_STATUS_*-Konstanten, um generierte oder importierte Übungsanleitungen unter menschlicher Kontrolle zu halten, bevor sie veröffentlicht werden
reviewed_atstring (date-time)Zeitpunkt, zu dem die Übung geprüft wurde.
reviewed_bystringName des Prüfers.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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/crm/studio_training/preset/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/studio_training/preset/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/crm/studio_training/preset/42")
.delete(null)
.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/crm/studio_training/preset/42"
req, _ := http.NewRequest("DELETE", 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/studio_training_preset_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 StudioTrainingPresetController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"image": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"video": {
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
},
"duration": 1,
"muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
],
"secondary_muscle_groups": [
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"body_marker_key": "string",
"is_front": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true,
"order": 1
}
]
}