MediaQuestionnaire
This method will get all MediaQuestionnaire
GET/api/media/questionnaire
Query parameters
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 MediaQuestionnaire objectsarray<MediaQuestionnaire>
Show fields (34)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
clarification_enabledbooleanSecond loop after the AI comparison: answers the AI does not rate as fulfilled become clarification points (MediaQuestionnaireClarification) that are discussed with the customer and decided before the result template is created. Without it the result template follows the AI comparison directly.
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
image_urlstringURL of the image of the entity.
namestringName of the entity.
slug_identifierstringSlug used in URLs of the entity.
curl --request GET \
--url https://your-instance.iw-erp.de/api/media/questionnaire \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire', 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/media/questionnaire"
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/media/questionnaire', [
'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/media/questionnaire"),
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/media/questionnaire")
.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/media/questionnaire"
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/media_questionnaire_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 MediaQuestionnaireController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"show_free_text": true,
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string",
"public_language_code": "string",
"complexity_level": 1,
"public_author": "string"
}
]Add a new MediaQuestionnaire
POST/api/media/questionnaire
Responses
200Add a new MediaQuestionnaireMediaQuestionnaire2
Show fields (43)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
pagesarray<MediaQuestionnairePage>Pages of the questionnaire.
Show fields (12)
idintegerPrimary key of the questionnaire page. Internal ID.
page_numberintegerNumber of the page within the questionnaire.
page_progress_statusstringProgress status shown for the page.
answer_requiredbooleanIf true, at least one answer is required
previous_answer_requiredbooleanIf true, the page is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
content_hintstringHint text shown on the page.
submenu_titlestringTitle of the submenu entry for the page.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
image_urlstringURL of the image of the entity.
entriesarray<MediaQuestionnaireContent>Questions and contents of the questionnaire.
Show fields (17)
idintegerPrimary key of the questionnaire content. Internal ID.
contentstringQuestion or text of the content.
content_keystringStable key of the question: never changes once set (text, type and position may change), unique within the questionnaire and copied to MediaQuestionnaireContentAnswer::$contentKey. Filled by MediaQuestionnaireContentKeyListener.
content_hintstringHint for the answer.
content_filterstringFilter of the content, for example which answers are allowed.
public_titlestringTitle of the content shown to the public.
answerstringGiven answer
answer_liststringAnswer list for dropdowns or radio buttons. Divided by new line. Inner values divided by | to separate value and label
answer_requiredbooleanIf true, the answer is required
previous_answer_requiredbooleanIf true, the question is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
answer_in_titlebooleanIf true, the answer is added to the title
answer_in_tablebooleanIf true, the answer is added to the result table (if available)
page_numberintegerPage of the questionnaire the content is on.
content_typestringType of the content, for example text, choice or upload.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
notification_emailstringRecipient(s) of the management notification mail sent on each new answer. Multiple addresses can be provided comma-separated (e.g. "a@x.de, b@y.de").
notification_textstringShort text of the notification sent after answering.
notification_long_textstringLong text of the notification sent after answering.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
eventsarray<BaseEvent24>Events the questionnaire belongs to.
Show fields (81)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanidintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
event_people_min_limitintegerminimum number of people that must attend the event
hide_event_people_limitbooleana setting to hide the event people limit in the frontend ui
event_people_recovered_vaccinated_limitintegerMaximum number of recovered or vaccinated participants.
event_people_not_recovered_vaccinated_limitintegerMaximum number of participants who are neither recovered nor vaccinated.
has_wait_listbooleanThe event has a waiting list once it is full.
wait_list_confirmation_requiredbooleanParticipants from the waiting list must confirm their place.
trial_enabledbooleanTrial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.
can_sign_up_for_main_eventbooleanParticipants may sign up for the main event.
only_sign_up_for_main_eventbooleanParticipants may only sign up for the main event, not for sub-events.
sign_up_limit_days_beforeintegerNumber of days before the start until which sign-ups are possible.
sign_up_limit_stop_days_beforeintegerNumber of days before the start from which sign-ups are closed.
sign_up_delete_hours_beforeintegerHours before the start until which a participant can cancel the sign-up.
start_timestring (date-time)Start of the event.
end_timestring (date-time)End of the event.
require_addressbooleanParticipants must enter an address when signing up.
require_contactbooleanParticipants must enter contact details when signing up.
require_billingbooleanParticipants must enter billing details when signing up.
allow_direct_billingbooleanrequire_direct_billingbooleanallow_budget_sign_upbooleanrequire_agebooleanParticipants must enter their age when signing up.
require_grade_levelbooleanParticipants must enter their school grade level when signing up.
require_free_note_field_idsstringIDs of the free note fields that participants must fill in.
generate_new_bookingsbooleanBookings are generated automatically for the event schedule.
generate_new_bookings_v2booleanBookings are generated with the second version of the schedule generator.
generate_ignore_sys_calendarbooleanGenerated bookings ignore the holidays of the system calendar.
copy_main_sign_ups_to_bookingbooleanSign-ups of the main event are copied to the generated bookings.
generate_hour_startstring (date-time)Start time of the day for generated bookings.
generate_hour_endstring (date-time)End time of the day for generated bookings.
generate_day_of_weekintegerWeekday for generated bookings.
bitmask_days_of_weekintegerThis is a bitmask value of the days of the week the event occurs on
bitmask_hours_startintegerThis is a bitmask value of the hours an event starts on
summarized_date_timesstringThis is a string with the days and hours an event starts on
media_questionnaireMediaQuestionnaire2Questionnaire of the event in the media module.
customer_detail_ctastringCall-to-action text shown in the customer app on the event detail page.
customer_badgestringBadge text shown on the event in the customer app.
bib_number_modestringVergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).
timing_gun_startstring (date-time)Startschuss; ohne Wert gilt startTime.
timing_rank_bystringWertung nach Netto- (NET) oder Bruttozeit (GROSS).
timing_min_lap_secondsintegerGleiche Person am gleichen Messpunkt innerhalb dieser Sekunden = Duplikat.
timing_public_livebooleanLive timing results are public.
timing_gps_trackingbooleanGPS tracking of participants is enabled for timing.
timing_self_check_inbooleanParticipants can check in themselves for timing.
scoreboard_enabledbooleanScoreboard (Spielstand und Spielbericht) fuer das Event; die Eintraege sind EventScoreboardActivity, der Spielstand wird daraus berechnet.
scoreboard_sportstringSportart des Scoreboards (ScoreboardSportRules), bestimmt die moeglichen Eintraege.
scoreboard_home_namestringName of the home team on the scoreboard.
scoreboard_away_namestringName of the away team on the scoreboard.
ticket_sales_enabledbooleanTicketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.
ticket_max_per_orderintegerHöchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.
ticket_personalizedbooleanPersonalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.
ticket_seatingbooleanPlatzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
- … 20 more fields
ai_chat_promptstringThe system prompt for the AI bot. The prompt will be suffixed by the MediaQuestionnaireContent in entries to give the AI a context of what questions we would like answers to at the end of the chat. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_optimizer_promptstringThe system prompt for the AI bot. The prompt will be used to optimize the chat prompt with existing context. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_auto_close_secret_wordstringA word as the last part of an AI chat reply that will close the chat and trigger a completion of the questionnaire. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_completed_promptstringThe system prompt for the AI bot that takes all chat messages and the MediaQuestionnaireContent in entries to generate an answer to each of the questions. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_answer_summary_promptstringThe system prompt for the AI bot that takes the answer to each question and generates a summary / wiki article of the answers. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
required_previous_questionnaireMediaQuestionnaire2Questionnaire that must be answered first.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
result_templateFlexibleLatexTemplateTemplate used to render the result of the questionnaire.
Show fields (35)
predefinedbooleanTrue for templates shipped by the servercontrolpanel (PredefinedFlexibleTemplateMap). Their IDs are referenced by code, so the UI offers to duplicate ("Vorlage anpassen") instead of editing them.
data_typestringData type (reference class key) the template is rendered and checked with. For predefined templates (tag IW_PFLT) this is the data type of the code that uses them.
data_type_labelstringHuman readable name of the assigned data type, null for tags that are not a known data type.
template_modestringSerialized mode so clients do not have to know that null means standard.
last_check_statusstringSummary of the last template check for list views, the full result is admin detail only.
idstringPrimary key of the template. Internal ID. Used as a string identifier.
namestringName of the template.
tagstringTag used to group templates.
mass_messagebooleanWhether the template is used for mass messages.
default_store_as_pdfbooleanWhether the generated document is stored as PDF by default.
security_scopestringScope that controls who can use the template.
security_user_access_typeintegerAccess type required to use the template.
param1stringValue of parameter 1 used in the template.
param2stringValue of parameter 2 used in the template.
param3stringValue of parameter 3 used in the template.
param4stringValue of parameter 4 used in the template.
param5stringValue of parameter 5 used in the template.
param6stringValue of parameter 6 used in the template.
param7stringValue of parameter 7 used in the template.
param8stringValue of parameter 8 used in the template.
param9stringValue of parameter 9 used in the template.
param10stringValue of parameter 10 used in the template.
default_value_param1stringDefault value of parameter 1.
default_value_param2stringDefault value of parameter 2.
default_value_param3stringDefault value of parameter 3.
default_value_param4stringDefault value of parameter 4.
default_value_param5stringDefault value of parameter 5.
default_value_param6stringDefault value of parameter 6.
default_value_param7stringDefault value of parameter 7.
default_value_param8stringDefault value of parameter 8.
default_value_param9stringDefault value of parameter 9.
default_value_param10stringDefault value of parameter 10.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
auto_send_result_templatebooleanWhether the result is sent automatically after an answer is given.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
answer_productPredefinedBillingItem14Product used for billing individual questionnaire answers
Show fields (15)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
- … 73 more fields
- … 15 more fields
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire', 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/media/questionnaire"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, 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/media/questionnaire', [
'headers' => [
'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/media/questionnaire"),
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/media/questionnaire")
.post(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/media/questionnaire"
req, _ := http.NewRequest("POST", 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/media_questionnaire_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireController.post(MediaQuestionnaire.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": 42,
"show_free_text": true,
"notification_email": "lena.hartmann@example.org",
"notification_text": "Text",
"notification_long_text": "Text",
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string"
}This method will get a single MediaQuestionnaire with the given id or token
GET/api/media/questionnaire/{identifier}
Path parameters
identifierrequiredstring |
Query parameters
draftTokenstring | Token (logged in: id or token) of an own draft answer for this questionnaire - grants read access even without access tags |
Responses
200Returns a single MediaQuestionnaireMediaQuestionnaire
Show fields (34)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
clarification_enabledbooleanSecond loop after the AI comparison: answers the AI does not rate as fulfilled become clarification points (MediaQuestionnaireClarification) that are discussed with the customer and decided before the result template is created. Without it the result template follows the AI comparison directly.
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
image_urlstringURL of the image of the entity.
namestringName of the entity.
slug_identifierstringSlug used in URLs of the entity.
curl --request GET \
--url https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media_questionnaire_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 MediaQuestionnaireController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"show_free_text": true,
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string",
"public_language_code": "string",
"complexity_level": 1,
"public_author": "string"
}Update a MediaQuestionnaire
PUT/api/media/questionnaire/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Update a MediaQuestionnaireMediaQuestionnaire2
Show fields (43)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
pagesarray<MediaQuestionnairePage>Pages of the questionnaire.
Show fields (12)
idintegerPrimary key of the questionnaire page. Internal ID.
page_numberintegerNumber of the page within the questionnaire.
page_progress_statusstringProgress status shown for the page.
answer_requiredbooleanIf true, at least one answer is required
previous_answer_requiredbooleanIf true, the page is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
content_hintstringHint text shown on the page.
submenu_titlestringTitle of the submenu entry for the page.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
image_urlstringURL of the image of the entity.
entriesarray<MediaQuestionnaireContent>Questions and contents of the questionnaire.
Show fields (17)
idintegerPrimary key of the questionnaire content. Internal ID.
contentstringQuestion or text of the content.
content_keystringStable key of the question: never changes once set (text, type and position may change), unique within the questionnaire and copied to MediaQuestionnaireContentAnswer::$contentKey. Filled by MediaQuestionnaireContentKeyListener.
content_hintstringHint for the answer.
content_filterstringFilter of the content, for example which answers are allowed.
public_titlestringTitle of the content shown to the public.
answerstringGiven answer
answer_liststringAnswer list for dropdowns or radio buttons. Divided by new line. Inner values divided by | to separate value and label
answer_requiredbooleanIf true, the answer is required
previous_answer_requiredbooleanIf true, the question is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
answer_in_titlebooleanIf true, the answer is added to the title
answer_in_tablebooleanIf true, the answer is added to the result table (if available)
page_numberintegerPage of the questionnaire the content is on.
content_typestringType of the content, for example text, choice or upload.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
notification_emailstringRecipient(s) of the management notification mail sent on each new answer. Multiple addresses can be provided comma-separated (e.g. "a@x.de, b@y.de").
notification_textstringShort text of the notification sent after answering.
notification_long_textstringLong text of the notification sent after answering.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
eventsarray<BaseEvent24>Events the questionnaire belongs to.
Show fields (81)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanidintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
event_people_min_limitintegerminimum number of people that must attend the event
hide_event_people_limitbooleana setting to hide the event people limit in the frontend ui
event_people_recovered_vaccinated_limitintegerMaximum number of recovered or vaccinated participants.
event_people_not_recovered_vaccinated_limitintegerMaximum number of participants who are neither recovered nor vaccinated.
has_wait_listbooleanThe event has a waiting list once it is full.
wait_list_confirmation_requiredbooleanParticipants from the waiting list must confirm their place.
trial_enabledbooleanTrial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.
can_sign_up_for_main_eventbooleanParticipants may sign up for the main event.
only_sign_up_for_main_eventbooleanParticipants may only sign up for the main event, not for sub-events.
sign_up_limit_days_beforeintegerNumber of days before the start until which sign-ups are possible.
sign_up_limit_stop_days_beforeintegerNumber of days before the start from which sign-ups are closed.
sign_up_delete_hours_beforeintegerHours before the start until which a participant can cancel the sign-up.
start_timestring (date-time)Start of the event.
end_timestring (date-time)End of the event.
require_addressbooleanParticipants must enter an address when signing up.
require_contactbooleanParticipants must enter contact details when signing up.
require_billingbooleanParticipants must enter billing details when signing up.
allow_direct_billingbooleanrequire_direct_billingbooleanallow_budget_sign_upbooleanrequire_agebooleanParticipants must enter their age when signing up.
require_grade_levelbooleanParticipants must enter their school grade level when signing up.
require_free_note_field_idsstringIDs of the free note fields that participants must fill in.
generate_new_bookingsbooleanBookings are generated automatically for the event schedule.
generate_new_bookings_v2booleanBookings are generated with the second version of the schedule generator.
generate_ignore_sys_calendarbooleanGenerated bookings ignore the holidays of the system calendar.
copy_main_sign_ups_to_bookingbooleanSign-ups of the main event are copied to the generated bookings.
generate_hour_startstring (date-time)Start time of the day for generated bookings.
generate_hour_endstring (date-time)End time of the day for generated bookings.
generate_day_of_weekintegerWeekday for generated bookings.
bitmask_days_of_weekintegerThis is a bitmask value of the days of the week the event occurs on
bitmask_hours_startintegerThis is a bitmask value of the hours an event starts on
summarized_date_timesstringThis is a string with the days and hours an event starts on
media_questionnaireMediaQuestionnaire2Questionnaire of the event in the media module.
customer_detail_ctastringCall-to-action text shown in the customer app on the event detail page.
customer_badgestringBadge text shown on the event in the customer app.
bib_number_modestringVergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).
timing_gun_startstring (date-time)Startschuss; ohne Wert gilt startTime.
timing_rank_bystringWertung nach Netto- (NET) oder Bruttozeit (GROSS).
timing_min_lap_secondsintegerGleiche Person am gleichen Messpunkt innerhalb dieser Sekunden = Duplikat.
timing_public_livebooleanLive timing results are public.
timing_gps_trackingbooleanGPS tracking of participants is enabled for timing.
timing_self_check_inbooleanParticipants can check in themselves for timing.
scoreboard_enabledbooleanScoreboard (Spielstand und Spielbericht) fuer das Event; die Eintraege sind EventScoreboardActivity, der Spielstand wird daraus berechnet.
scoreboard_sportstringSportart des Scoreboards (ScoreboardSportRules), bestimmt die moeglichen Eintraege.
scoreboard_home_namestringName of the home team on the scoreboard.
scoreboard_away_namestringName of the away team on the scoreboard.
ticket_sales_enabledbooleanTicketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.
ticket_max_per_orderintegerHöchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.
ticket_personalizedbooleanPersonalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.
ticket_seatingbooleanPlatzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
- … 20 more fields
ai_chat_promptstringThe system prompt for the AI bot. The prompt will be suffixed by the MediaQuestionnaireContent in entries to give the AI a context of what questions we would like answers to at the end of the chat. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_optimizer_promptstringThe system prompt for the AI bot. The prompt will be used to optimize the chat prompt with existing context. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_auto_close_secret_wordstringA word as the last part of an AI chat reply that will close the chat and trigger a completion of the questionnaire. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_completed_promptstringThe system prompt for the AI bot that takes all chat messages and the MediaQuestionnaireContent in entries to generate an answer to each of the questions. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_answer_summary_promptstringThe system prompt for the AI bot that takes the answer to each question and generates a summary / wiki article of the answers. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
required_previous_questionnaireMediaQuestionnaire2Questionnaire that must be answered first.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
result_templateFlexibleLatexTemplateTemplate used to render the result of the questionnaire.
Show fields (35)
predefinedbooleanTrue for templates shipped by the servercontrolpanel (PredefinedFlexibleTemplateMap). Their IDs are referenced by code, so the UI offers to duplicate ("Vorlage anpassen") instead of editing them.
data_typestringData type (reference class key) the template is rendered and checked with. For predefined templates (tag IW_PFLT) this is the data type of the code that uses them.
data_type_labelstringHuman readable name of the assigned data type, null for tags that are not a known data type.
template_modestringSerialized mode so clients do not have to know that null means standard.
last_check_statusstringSummary of the last template check for list views, the full result is admin detail only.
idstringPrimary key of the template. Internal ID. Used as a string identifier.
namestringName of the template.
tagstringTag used to group templates.
mass_messagebooleanWhether the template is used for mass messages.
default_store_as_pdfbooleanWhether the generated document is stored as PDF by default.
security_scopestringScope that controls who can use the template.
security_user_access_typeintegerAccess type required to use the template.
param1stringValue of parameter 1 used in the template.
param2stringValue of parameter 2 used in the template.
param3stringValue of parameter 3 used in the template.
param4stringValue of parameter 4 used in the template.
param5stringValue of parameter 5 used in the template.
param6stringValue of parameter 6 used in the template.
param7stringValue of parameter 7 used in the template.
param8stringValue of parameter 8 used in the template.
param9stringValue of parameter 9 used in the template.
param10stringValue of parameter 10 used in the template.
default_value_param1stringDefault value of parameter 1.
default_value_param2stringDefault value of parameter 2.
default_value_param3stringDefault value of parameter 3.
default_value_param4stringDefault value of parameter 4.
default_value_param5stringDefault value of parameter 5.
default_value_param6stringDefault value of parameter 6.
default_value_param7stringDefault value of parameter 7.
default_value_param8stringDefault value of parameter 8.
default_value_param9stringDefault value of parameter 9.
default_value_param10stringDefault value of parameter 10.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
auto_send_result_templatebooleanWhether the result is sent automatically after an answer is given.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
answer_productPredefinedBillingItem14Product used for billing individual questionnaire answers
Show fields (15)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
- … 73 more fields
- … 15 more fields
curl --request PUT \
--url https://your-instance.iw-erp.de/api/media/questionnaire/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'PUT', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.put(url, 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/media/questionnaire/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.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/42")
.put(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/media/questionnaire/42"
req, _ := http.NewRequest("PUT", 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/media_questionnaire_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireController.put(MediaQuestionnaire.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": 42,
"show_free_text": true,
"notification_email": "lena.hartmann@example.org",
"notification_text": "Text",
"notification_long_text": "Text",
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string"
}Update a MediaQuestionnaire
PATCH/api/media/questionnaire/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Update a MediaQuestionnaireMediaQuestionnaire2
Show fields (43)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
pagesarray<MediaQuestionnairePage>Pages of the questionnaire.
Show fields (12)
idintegerPrimary key of the questionnaire page. Internal ID.
page_numberintegerNumber of the page within the questionnaire.
page_progress_statusstringProgress status shown for the page.
answer_requiredbooleanIf true, at least one answer is required
previous_answer_requiredbooleanIf true, the page is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
content_hintstringHint text shown on the page.
submenu_titlestringTitle of the submenu entry for the page.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
image_urlstringURL of the image of the entity.
entriesarray<MediaQuestionnaireContent>Questions and contents of the questionnaire.
Show fields (17)
idintegerPrimary key of the questionnaire content. Internal ID.
contentstringQuestion or text of the content.
content_keystringStable key of the question: never changes once set (text, type and position may change), unique within the questionnaire and copied to MediaQuestionnaireContentAnswer::$contentKey. Filled by MediaQuestionnaireContentKeyListener.
content_hintstringHint for the answer.
content_filterstringFilter of the content, for example which answers are allowed.
public_titlestringTitle of the content shown to the public.
answerstringGiven answer
answer_liststringAnswer list for dropdowns or radio buttons. Divided by new line. Inner values divided by | to separate value and label
answer_requiredbooleanIf true, the answer is required
previous_answer_requiredbooleanIf true, the question is only shown if the previous question was answered
previous_answer_referencestringReference to the previous answer content
answer_in_titlebooleanIf true, the answer is added to the title
answer_in_tablebooleanIf true, the answer is added to the result table (if available)
page_numberintegerPage of the questionnaire the content is on.
content_typestringType of the content, for example text, choice or upload.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
notification_emailstringRecipient(s) of the management notification mail sent on each new answer. Multiple addresses can be provided comma-separated (e.g. "a@x.de, b@y.de").
notification_textstringShort text of the notification sent after answering.
notification_long_textstringLong text of the notification sent after answering.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
eventsarray<BaseEvent24>Events the questionnaire belongs to.
Show fields (81)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanidintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
event_people_min_limitintegerminimum number of people that must attend the event
hide_event_people_limitbooleana setting to hide the event people limit in the frontend ui
event_people_recovered_vaccinated_limitintegerMaximum number of recovered or vaccinated participants.
event_people_not_recovered_vaccinated_limitintegerMaximum number of participants who are neither recovered nor vaccinated.
has_wait_listbooleanThe event has a waiting list once it is full.
wait_list_confirmation_requiredbooleanParticipants from the waiting list must confirm their place.
trial_enabledbooleanTrial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.
can_sign_up_for_main_eventbooleanParticipants may sign up for the main event.
only_sign_up_for_main_eventbooleanParticipants may only sign up for the main event, not for sub-events.
sign_up_limit_days_beforeintegerNumber of days before the start until which sign-ups are possible.
sign_up_limit_stop_days_beforeintegerNumber of days before the start from which sign-ups are closed.
sign_up_delete_hours_beforeintegerHours before the start until which a participant can cancel the sign-up.
start_timestring (date-time)Start of the event.
end_timestring (date-time)End of the event.
require_addressbooleanParticipants must enter an address when signing up.
require_contactbooleanParticipants must enter contact details when signing up.
require_billingbooleanParticipants must enter billing details when signing up.
allow_direct_billingbooleanrequire_direct_billingbooleanallow_budget_sign_upbooleanrequire_agebooleanParticipants must enter their age when signing up.
require_grade_levelbooleanParticipants must enter their school grade level when signing up.
require_free_note_field_idsstringIDs of the free note fields that participants must fill in.
generate_new_bookingsbooleanBookings are generated automatically for the event schedule.
generate_new_bookings_v2booleanBookings are generated with the second version of the schedule generator.
generate_ignore_sys_calendarbooleanGenerated bookings ignore the holidays of the system calendar.
copy_main_sign_ups_to_bookingbooleanSign-ups of the main event are copied to the generated bookings.
generate_hour_startstring (date-time)Start time of the day for generated bookings.
generate_hour_endstring (date-time)End time of the day for generated bookings.
generate_day_of_weekintegerWeekday for generated bookings.
bitmask_days_of_weekintegerThis is a bitmask value of the days of the week the event occurs on
bitmask_hours_startintegerThis is a bitmask value of the hours an event starts on
summarized_date_timesstringThis is a string with the days and hours an event starts on
media_questionnaireMediaQuestionnaire2Questionnaire of the event in the media module.
customer_detail_ctastringCall-to-action text shown in the customer app on the event detail page.
customer_badgestringBadge text shown on the event in the customer app.
bib_number_modestringVergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).
timing_gun_startstring (date-time)Startschuss; ohne Wert gilt startTime.
timing_rank_bystringWertung nach Netto- (NET) oder Bruttozeit (GROSS).
timing_min_lap_secondsintegerGleiche Person am gleichen Messpunkt innerhalb dieser Sekunden = Duplikat.
timing_public_livebooleanLive timing results are public.
timing_gps_trackingbooleanGPS tracking of participants is enabled for timing.
timing_self_check_inbooleanParticipants can check in themselves for timing.
scoreboard_enabledbooleanScoreboard (Spielstand und Spielbericht) fuer das Event; die Eintraege sind EventScoreboardActivity, der Spielstand wird daraus berechnet.
scoreboard_sportstringSportart des Scoreboards (ScoreboardSportRules), bestimmt die moeglichen Eintraege.
scoreboard_home_namestringName of the home team on the scoreboard.
scoreboard_away_namestringName of the away team on the scoreboard.
ticket_sales_enabledbooleanTicketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.
ticket_max_per_orderintegerHöchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.
ticket_personalizedbooleanPersonalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.
ticket_seatingbooleanPlatzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
- … 20 more fields
ai_chat_promptstringThe system prompt for the AI bot. The prompt will be suffixed by the MediaQuestionnaireContent in entries to give the AI a context of what questions we would like answers to at the end of the chat. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_optimizer_promptstringThe system prompt for the AI bot. The prompt will be used to optimize the chat prompt with existing context. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_auto_close_secret_wordstringA word as the last part of an AI chat reply that will close the chat and trigger a completion of the questionnaire. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_chat_completed_promptstringThe system prompt for the AI bot that takes all chat messages and the MediaQuestionnaireContent in entries to generate an answer to each of the questions. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
ai_answer_summary_promptstringThe system prompt for the AI bot that takes the answer to each question and generates a summary / wiki article of the answers. Can be used with questionnaire type Q_TYPE_RESULT_LIST_AI_CHAT.
required_previous_questionnaireMediaQuestionnaire2Questionnaire that must be answered first.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
result_templateFlexibleLatexTemplateTemplate used to render the result of the questionnaire.
Show fields (35)
predefinedbooleanTrue for templates shipped by the servercontrolpanel (PredefinedFlexibleTemplateMap). Their IDs are referenced by code, so the UI offers to duplicate ("Vorlage anpassen") instead of editing them.
data_typestringData type (reference class key) the template is rendered and checked with. For predefined templates (tag IW_PFLT) this is the data type of the code that uses them.
data_type_labelstringHuman readable name of the assigned data type, null for tags that are not a known data type.
template_modestringSerialized mode so clients do not have to know that null means standard.
last_check_statusstringSummary of the last template check for list views, the full result is admin detail only.
idstringPrimary key of the template. Internal ID. Used as a string identifier.
namestringName of the template.
tagstringTag used to group templates.
mass_messagebooleanWhether the template is used for mass messages.
default_store_as_pdfbooleanWhether the generated document is stored as PDF by default.
security_scopestringScope that controls who can use the template.
security_user_access_typeintegerAccess type required to use the template.
param1stringValue of parameter 1 used in the template.
param2stringValue of parameter 2 used in the template.
param3stringValue of parameter 3 used in the template.
param4stringValue of parameter 4 used in the template.
param5stringValue of parameter 5 used in the template.
param6stringValue of parameter 6 used in the template.
param7stringValue of parameter 7 used in the template.
param8stringValue of parameter 8 used in the template.
param9stringValue of parameter 9 used in the template.
param10stringValue of parameter 10 used in the template.
default_value_param1stringDefault value of parameter 1.
default_value_param2stringDefault value of parameter 2.
default_value_param3stringDefault value of parameter 3.
default_value_param4stringDefault value of parameter 4.
default_value_param5stringDefault value of parameter 5.
default_value_param6stringDefault value of parameter 6.
default_value_param7stringDefault value of parameter 7.
default_value_param8stringDefault value of parameter 8.
default_value_param9stringDefault value of parameter 9.
default_value_param10stringDefault value of parameter 10.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
auto_send_result_templatebooleanWhether the result is sent automatically after an answer is given.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
answer_productPredefinedBillingItem14Product used for billing individual questionnaire answers
Show fields (15)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
- … 73 more fields
- … 15 more fields
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/media/questionnaire/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'PATCH', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.patch(url, 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/media/questionnaire/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.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/42")
.patch(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/media/questionnaire/42"
req, _ := http.NewRequest("PATCH", 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 package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"show_free_text": true,
"notification_email": "lena.hartmann@example.org",
"notification_text": "Text",
"notification_long_text": "Text",
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string"
}Deletes a single MediaQuestionnaire
DELETE/api/media/questionnaire/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Deletes a single MediaQuestionnaireMediaQuestionnaire
Show fields (34)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
clarification_enabledbooleanSecond loop after the AI comparison: answers the AI does not rate as fulfilled become clarification points (MediaQuestionnaireClarification) that are discussed with the customer and decided before the result template is created. Without it the result template follows the AI comparison directly.
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
image_urlstringURL of the image of the entity.
namestringName of the entity.
slug_identifierstringSlug used in URLs of the entity.
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media/questionnaire/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/media_questionnaire_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 MediaQuestionnaireController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"show_free_text": true,
"image_url": "https://vynst.de",
"name": "Beispiel",
"questionnaire_type": "string",
"token": "string",
"public_copyright": "string",
"public_language_code": "string",
"complexity_level": 1,
"public_author": "string"
}Get statistics for a MediaQuestionnaire with optional filtering.
GET/api/media/questionnaire/{identifier}/statistics
When filters are applied, includes comparison with unfiltered results.
Supported filter parameters:
- minAge: Minimum age
- maxAge: Maximum age
- gender: Gender filter (M, W, D, U)
- gradeLevel: Grade level
- schoolClass: School class
- naceSection: NACE section code (A-U)
- naceCode: NACE code (e.g., 01.11, 62.01)
- mediaQuestionnaireAnswerGroup: Filter to answers from specific group
Path parameters
identifierrequiredstring |
Responses
default
curl --request GET \
--url https://your-instance.iw-erp.de/api/media/questionnaire/42/statistics \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire/42/statistics', 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/media/questionnaire/42/statistics"
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/media/questionnaire/42/statistics', [
'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/media/questionnaire/42/statistics"),
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/media/questionnaire/42/statistics")
.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/media/questionnaire/42/statistics"
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 package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire/42/statistics'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);