StudioTraining / StudioTrainingMeasurement
Liefert eine Liste der StudioTrainingMeasurement-Objekte.
GET/api/crm/studio_training/measurement
Query-Parameter
idstring | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
trainingPersonDatastring | |
presetstring | Voreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet | Benötigt Zugriffsrecht: SCOPE |
measuredAtstring | |
measurementTypestring | Eine der TYPE_*-Konstanten |
sourcestring | Eine der SOURCE_*-Konstanten |
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 StudioTrainingMeasurement-Objekte.array<StudioTrainingMeasurement>
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement \
--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/measurement', 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/measurement"
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/measurement', [
'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/measurement"),
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/measurement")
.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/measurement"
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_measurement_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 StudioTrainingMeasurementController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1,
"exercise_type": "string",
"equipment": "string",
"execution_notes": "string",
"default_sets": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}
]Einzelnen StudioTrainingMeasurement anlegen
POST/api/crm/studio_training/measurement
Request-Body application/json
dataStudioTrainingMeasurementFelder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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 StudioTrainingMeasurement anlegenStudioTrainingMeasurement
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
training_person_data: {
id: 42,
weight: 1.5,
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
measured_at: '2026-10-15T09:30:00+02:00',
measurement_type: 'string',
value: 1.5
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement', 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/measurement"
payload = { "data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
} }
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/measurement', [
'body' => '{"data":{"id":42,"training_person_data":{"id":42,"weight":1.5,"created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"measured_at":"2026-10-15T09:30:00+02:00","measurement_type":"string","value":1.5}}',
'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/measurement"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
{
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,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement")
.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/measurement"
payload := strings.NewReader("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
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_measurement_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/studio_training_measurement.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingMeasurementController.post(StudioTrainingMeasurement.fromJson({
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"training_person_data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"personal_trainer": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"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"
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}Liefert ein einzelnes StudioTrainingMeasurement-Objekt.
GET/api/crm/studio_training/measurement/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes StudioTrainingMeasurement-Objekt.StudioTrainingMeasurement
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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_measurement_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 StudioTrainingMeasurementController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"training_person_data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"personal_trainer": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"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"
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}StudioTrainingMeasurement einzeln aktualisieren
PUT/api/crm/studio_training/measurement/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioTrainingMeasurementFelder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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
200StudioTrainingMeasurement einzeln aktualisierenStudioTrainingMeasurement
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
training_person_data: {
id: 42,
weight: 1.5,
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
measured_at: '2026-10-15T09:30:00+02:00',
measurement_type: 'string',
value: 1.5
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement/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/measurement/42"
payload = { "data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
} }
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/measurement/42', [
'body' => '{"data":{"id":42,"training_person_data":{"id":42,"weight":1.5,"created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"measured_at":"2026-10-15T09:30:00+02:00","measurement_type":"string","value":1.5}}',
'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/measurement/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
{
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,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement/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/measurement/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
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/measurement/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}
}),
);
print(response.body);{
"id": 42,
"training_person_data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"personal_trainer": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"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"
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}StudioTrainingMeasurement einzeln aktualisieren
PATCH/api/crm/studio_training/measurement/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioTrainingMeasurementFelder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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
200StudioTrainingMeasurement einzeln aktualisierenStudioTrainingMeasurement
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
training_person_data: {
id: 42,
weight: 1.5,
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
measured_at: '2026-10-15T09:30:00+02:00',
measurement_type: 'string',
value: 1.5
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement/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/measurement/42"
payload = { "data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
} }
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/measurement/42', [
'body' => '{"data":{"id":42,"training_person_data":{"id":42,"weight":1.5,"created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"measured_at":"2026-10-15T09:30:00+02:00","measurement_type":"string","value":1.5}}',
'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/measurement/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
{
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,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/measurement/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/measurement/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"training_person_data\":{\"id\":42,\"weight\":1.5,\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"measured_at\":\"2026-10-15T09:30:00+02:00\",\"measurement_type\":\"string\",\"value\":1.5}}")
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/measurement/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"training_person_data": {
"id": 42,
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5
}
}),
);
print(response.body);{
"id": 42,
"training_person_data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"personal_trainer": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"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"
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}Eine einzelne StudioTrainingMeasurement löschen (Soft Delete)
DELETE/api/crm/studio_training/measurement/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Eine einzelne StudioTrainingMeasurement löschenStudioTrainingMeasurement
Felder anzeigen (14)
idintegerPrimärschlüssel der Trainingsmessung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der gemessenen Person.
Felder anzeigen (7)
idintegerPrimärschlüssel der Trainingsdaten der Person. Interne ID.
personCRMPerson10Person, zu der die Trainingsdaten gehören.
personal_trainerCRMPerson10Persönlicher Trainer der Person.
weightnumber (float)Körpergewicht der Person.
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
presetStudioTrainingPresetVoreinstellung, zu der die Messung gehört; wird für Kraft-Testwerte verwendet
Felder 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
measured_atstring (date-time)Zeitpunkt der Messung.
measurement_typestringEine der TYPE_*-Konstanten
valuenumber (float)Messwert.
unitstringEinheit des Messwerts.
body_sitestringKörperstelle für Umfangsmessungen, z. B. Taille, Hüfte, Brust
sourcestringEine der SOURCE_*-Konstanten
source_devicestringName des Messgeräts oder Anbieters, z. B. InBody 970, seca mBCA
notesstringAnmerkungen zur Messung.
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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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/measurement/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_measurement_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 StudioTrainingMeasurementController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"training_person_data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"personal_trainer": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"weight": 1.5,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"preset": {
"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"
},
"measured_at": "2026-10-15T09:30:00+02:00",
"measurement_type": "string",
"value": 1.5,
"unit": "string",
"body_site": "string",
"source": "string",
"source_device": "string"
}