StudioTraining / StudioDeviceSetup
Liefert eine Liste der StudioDeviceSetup-Objekte.
GET/api/crm/studio_training/device_setup
Query-Parameter
idstring | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
trainingPersonDatastring | |
devicestring | |
presetstring | |
namestring | |
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 StudioDeviceSetup-Objekte.array<StudioDeviceSetup>
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup \
--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/device_setup', 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/device_setup"
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/device_setup', [
'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/device_setup"),
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/device_setup")
.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/device_setup"
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_device_setup_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 StudioDeviceSetupController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
]Einzelnen StudioDeviceSetup anlegen
POST/api/crm/studio_training/device_setup
Request-Body application/json
dataStudioDeviceSetupFelder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
deviceStudioDeviceStudiogerät, das eingerichtet ist.
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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 StudioDeviceSetup anlegenStudioDeviceSetup
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
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
},
device: {
id: 42,
name: 'Beispiel',
description: 'Text',
manufacturer: 'string',
model: 'string',
device_type: 'string'
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
notes: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup', 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/device_setup"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
} }
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/device_setup', [
'body' => '{"data":{"id":42,"name":"Beispiel","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},"device":{"id":42,"name":"Beispiel","description":"Text","manufacturer":"string","model":"string","device_type":"string"},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"notes":"string"}}',
'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/device_setup"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup")
.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/device_setup"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
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_device_setup_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/studio_device_setup.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioDeviceSetupController.post(StudioDeviceSetup.fromJson({
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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"
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Liefert ein einzelnes StudioDeviceSetup-Objekt.
GET/api/crm/studio_training/device_setup/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes StudioDeviceSetup-Objekt.StudioDeviceSetup
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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_device_setup_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 StudioDeviceSetupController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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"
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}StudioDeviceSetup einzeln aktualisieren
PUT/api/crm/studio_training/device_setup/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioDeviceSetupFelder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
deviceStudioDeviceStudiogerät, das eingerichtet ist.
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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
200StudioDeviceSetup einzeln aktualisierenStudioDeviceSetup
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
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
},
device: {
id: 42,
name: 'Beispiel',
description: 'Text',
manufacturer: 'string',
model: 'string',
device_type: 'string'
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
notes: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup/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/device_setup/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
} }
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/device_setup/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","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},"device":{"id":42,"name":"Beispiel","description":"Text","manufacturer":"string","model":"string","device_type":"string"},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"notes":"string"}}',
'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/device_setup/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup/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/device_setup/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
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/device_setup/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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"
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}StudioDeviceSetup einzeln aktualisieren
PATCH/api/crm/studio_training/device_setup/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataStudioDeviceSetupFelder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
deviceStudioDeviceStudiogerät, das eingerichtet ist.
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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
200StudioDeviceSetup einzeln aktualisierenStudioDeviceSetup
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
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
},
device: {
id: 42,
name: 'Beispiel',
description: 'Text',
manufacturer: 'string',
model: 'string',
device_type: 'string'
},
preset: {
id: 42,
name: 'Beispiel',
description: 'Text',
content_source_name: 'Beispiel',
license_author_url: 'https://vynst.de',
duration: 1
},
notes: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup/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/device_setup/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
} }
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/device_setup/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","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},"device":{"id":42,"name":"Beispiel","description":"Text","manufacturer":"string","model":"string","device_type":"string"},"preset":{"id":42,"name":"Beispiel","description":"Text","content_source_name":"Beispiel","license_author_url":"https://vynst.de","duration":1},"notes":"string"}}',
'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/device_setup/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/studio_training/device_setup/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/device_setup/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"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},\"device\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"manufacturer\":\"string\",\"model\":\"string\",\"device_type\":\"string\"},\"preset\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"content_source_name\":\"Beispiel\",\"license_author_url\":\"https://vynst.de\",\"duration\":1},\"notes\":\"string\"}}")
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/device_setup/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string"
},
"preset": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"content_source_name": "Beispiel",
"license_author_url": "https://vynst.de",
"duration": 1
},
"notes": "string"
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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"
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Ein einzelnes StudioDeviceSetup löschen (Soft Delete)
DELETE/api/crm/studio_training/device_setup/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Ein einzelnes StudioDeviceSetup löschenStudioDeviceSetup
Felder anzeigen (9)
idintegerPrimärschlüssel der Geräteeinrichtung. Interne ID.
training_person_dataStudioTrainingPersonData2Trainingsdaten der Person, zu der das Setup gehört.
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
deviceStudioDeviceStudiogerät, das eingerichtet ist.
Felder anzeigen (10)
idintegerPrimärschlüssel des Studiogeräts. Interne ID.
namestringName des Geräts.
descriptionstringBeschreibung des Geräts.
manufacturerstringHersteller des Geräts.
modelstringModell des Geräts.
device_typestringArt des Geräts, zum Beispiel Laufband oder Fahrrad.
identifierstringKennung des Geräts beim Hersteller.
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
presetStudioTrainingPresetFür das Setup verwendete Trainingsvorlage.
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
namestringName des Setups.
notesstringAnmerkungen zum Setup.
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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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/device_setup/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_device_setup_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 StudioDeviceSetupController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"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
},
"device": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"manufacturer": "string",
"model": "string",
"device_type": "string",
"identifier": "42",
"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"
},
"notes": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}