StudioTraining / StudioTrainingPlanDay
Returns a list of StudioTrainingPlanDay objects
GET/api/crm/studio_training/plan_day
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
planstring | |
namestring | |
dayOfWeekstring | Optional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of StudioTrainingPlanDay objectsarray<StudioTrainingPlanDay>
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day"
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://your-instance.iw-erp.de/api/crm/studio_training/plan_day', [
'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://your-instance.iw-erp.de/api/crm/studio_training/plan_day"),
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://your-instance.iw-erp.de/api/crm/studio_training/plan_day")
.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://your-instance.iw-erp.de/api/crm/studio_training/plan_day"
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/studio_training_plan_day_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingPlanDayController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00",
"training_goal": "string"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
]Create a single StudioTrainingPlanDay
POST/api/crm/studio_training/plan_day
Request body application/json
dataStudioTrainingPlanDayShow fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
Responses
200Create a single StudioTrainingPlanDayStudioTrainingPlanDay
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request POST \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
plan: {
id: 42,
name: 'Beispiel',
description: 'Text',
times_per_week: 1,
status: 'string',
is_template: true
},
day_of_week: 1,
rounds: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": True
},
"day_of_week": 1,
"rounds": 1
} }
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://your-instance.iw-erp.de/api/crm/studio_training/plan_day', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","plan":{"id":42,"name":"Beispiel","description":"Text","times_per_week":1,"status":"string","is_template":true},"day_of_week":1,"rounds":1}}',
'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://your-instance.iw-erp.de/api/crm/studio_training/plan_day"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/studio_training/plan_day")
.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://your-instance.iw-erp.de/api/crm/studio_training/plan_day"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/studio_training_plan_day_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/studio_training_plan_day.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingPlanDayController.post(StudioTrainingPlanDay.fromJson({
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"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
},
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Returns a single StudioTrainingPlanDay
GET/api/crm/studio_training/plan_day/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single StudioTrainingPlanDayStudioTrainingPlanDay
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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 with the iw_erp_api package
import 'package:iw_erp_api/clients/studio_training_plan_day_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingPlanDayController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"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
},
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Update a single StudioTrainingPlanDay
PUT/api/crm/studio_training/plan_day/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataStudioTrainingPlanDayShow fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
Responses
200Update a single StudioTrainingPlanDayStudioTrainingPlanDay
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
plan: {
id: 42,
name: 'Beispiel',
description: 'Text',
times_per_week: 1,
status: 'string',
is_template: true
},
day_of_week: 1,
rounds: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": True
},
"day_of_week": 1,
"rounds": 1
} }
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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","plan":{"id":42,"name":"Beispiel","description":"Text","times_per_week":1,"status":"string","is_template":true},"day_of_week":1,"rounds":1}}',
'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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
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 with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.put(
Uri.parse('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"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
},
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Update a single StudioTrainingPlanDay
PATCH/api/crm/studio_training/plan_day/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataStudioTrainingPlanDayShow fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
Responses
200Update a single StudioTrainingPlanDayStudioTrainingPlanDay
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
description: 'Text',
plan: {
id: 42,
name: 'Beispiel',
description: 'Text',
times_per_week: 1,
status: 'string',
is_template: true
},
day_of_week: 1,
rounds: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": True
},
"day_of_week": 1,
"rounds": 1
} }
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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","description":"Text","plan":{"id":42,"name":"Beispiel","description":"Text","times_per_week":1,"status":"string","is_template":true},"day_of_week":1,"rounds":1}}',
'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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"plan\":{\"id\":42,\"name\":\"Beispiel\",\"description\":\"Text\",\"times_per_week\":1,\"status\":\"string\",\"is_template\":true},\"day_of_week\":1,\"rounds\":1}}")
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 with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"times_per_week": 1,
"status": "string",
"is_template": true
},
"day_of_week": 1,
"rounds": 1
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"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
},
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Delete a single StudioTrainingPlanDay (soft delete)
DELETE/api/crm/studio_training/plan_day/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Delete a single StudioTrainingPlanDayStudioTrainingPlanDay
Show fields (11)
idintegerPrimary key of the plan day. Internal ID.
planStudioTrainingPlanPlan the day belongs to.
Show fields (17)
idintegerPrimary key of the training plan. Internal ID.
training_person_dataStudioTrainingPersonData2Training data of the person the plan is for.
namestringName of the training plan.
descriptionstringDescription of the training plan.
times_per_weekintegerPlanned number of training sessions per week.
statusstringOne of the STATUS_* constants
is_templatebooleanTrue for reusable templates that are not bound to a training person
valid_fromstring (date-time)Start of the plan.
valid_untilstring (date-time)End of the plan.
review_datestring (date-time)Date the plan should be reviewed with the member (Wiedervorlage)
training_goalstringTraining goal of the plan, e.g. muscle building, weight loss, rehab
created_by_personCRMPerson10Trainer who created the plan, kept for the training documentation
source_templateStudioTrainingPlanTemplate this plan was created from, if it was assigned from a template
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
namestringName of the plan day.
descriptionstringDescription of the plan day.
day_of_weekintegerOptional fixed weekday (1 = Monday ... 7 = Sunday) if the plan is bound to weekdays
roundsintegerNumber of rounds if the day is executed as a circuit (Zirkeltraining)
round_rest_secondsintegerPause between circuit rounds in seconds
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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://your-instance.iw-erp.de/api/crm/studio_training/plan_day/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 with the iw_erp_api package
import 'package:iw_erp_api/clients/studio_training_plan_day_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StudioTrainingPlanDayController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"description": "Text",
"plan": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"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
},
"times_per_week": 1,
"status": "string",
"is_template": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"valid_until": "2026-10-15T09:30:00+02:00",
"review_date": "2026-10-15T09:30:00+02:00"
},
"day_of_week": 1,
"rounds": 1,
"round_rest_seconds": 1,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}