BaseLocationPlan
Returns a list of BaseLocationPlan objects
GET/api/event/base_location_plan
Query parameters
idinteger | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
namestring | |
tokenstring | |
baseLocationstring | |
floorLevelstring | Free text floor label, matches BaseBookable::getFloorLevel() |
planModestring | |
sortOrderstring | Order of the floor tabs within one location |
createdstring | |
updatedstring | |
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 BaseLocationPlan objectsarray<BaseLocationPlan>
Show fields (18)
aspectRationumber (float)Aspect ratio of the background image, null when the dimensions are unknown.
idintegerPrimary key of the location plan. Internal ID.
tokenstringPublic token of the location plan. Used in links instead of the ID.
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
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
namestringName of the entity.
image_urlstringURL of the image of the entity.
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/base_location_plan \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/base_location_plan', 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/event/base_location_plan"
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/event/base_location_plan', [
'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/event/base_location_plan"),
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/event/base_location_plan")
.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/event/base_location_plan"
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/event_base_location_plan_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 EventBaseLocationPlanController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"color": "#3f5efb",
"fg_color": "#3f5efb",
"aspectRatio": 1.5,
"token": "string",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string"
}
]Add a new BaseLocationPlan
POST/api/event/base_location_plan
Request body application/json
dataBaseLocationPlan2Show fields (10)
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
Responses
200Add a new BaseLocationPlanBaseLocationPlan
Show fields (18)
aspectRationumber (float)Aspect ratio of the background image, null when the dimensions are unknown.
idintegerPrimary key of the location plan. Internal ID.
tokenstringPublic token of the location plan. Used in links instead of the ID.
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
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
namestringName of the entity.
image_urlstringURL of the image of the entity.
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request POST \
--url https://your-instance.iw-erp.de/api/event/base_location_plan \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
image_url: 'https://vynst.de',
floor_level: 'string',
sort_order: 1,
plan_mode: 'string',
image_width: 1,
image_height: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/event/base_location_plan', 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/event/base_location_plan"
payload = { "data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 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/event/base_location_plan', [
'body' => '{"data":{"image_url":"https://vynst.de","floor_level":"string","sort_order":1,"plan_mode":"string","image_width":1,"image_height":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/event/base_location_plan"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/base_location_plan")
.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/event/base_location_plan"
payload := strings.NewReader("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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/event_base_location_plan_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_location_plan.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseLocationPlanController.post(EventBaseLocationPlan.fromJson({
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"color": "#3f5efb",
"fg_color": "#3f5efb",
"aspectRatio": 1.5,
"token": "string",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string"
}Returns a single BaseLocationPlan
GET/api/event/base_location_plan/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single BaseLocationPlanBaseLocationPlan
Show fields (18)
aspectRationumber (float)Aspect ratio of the background image, null when the dimensions are unknown.
idintegerPrimary key of the location plan. Internal ID.
tokenstringPublic token of the location plan. Used in links instead of the ID.
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
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
namestringName of the entity.
image_urlstringURL of the image of the entity.
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/base_location_plan/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/event/base_location_plan/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/event/base_location_plan/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/event/base_location_plan/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/event/base_location_plan/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/event/base_location_plan/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/event/base_location_plan/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/event_base_location_plan_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 EventBaseLocationPlanController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"color": "#3f5efb",
"fg_color": "#3f5efb",
"aspectRatio": 1.5,
"token": "string",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string"
}Update a BaseLocationPlan
PUT/api/event/base_location_plan/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataBaseLocationPlan2Show fields (10)
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
Responses
200Update a BaseLocationPlanBaseLocationPlan
Show fields (18)
aspectRationumber (float)Aspect ratio of the background image, null when the dimensions are unknown.
idintegerPrimary key of the location plan. Internal ID.
tokenstringPublic token of the location plan. Used in links instead of the ID.
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
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
namestringName of the entity.
image_urlstringURL of the image of the entity.
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/event/base_location_plan/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
image_url: 'https://vynst.de',
floor_level: 'string',
sort_order: 1,
plan_mode: 'string',
image_width: 1,
image_height: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/event/base_location_plan/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/event/base_location_plan/42"
payload = { "data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 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/event/base_location_plan/42', [
'body' => '{"data":{"image_url":"https://vynst.de","floor_level":"string","sort_order":1,"plan_mode":"string","image_width":1,"image_height":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/event/base_location_plan/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/base_location_plan/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/event/base_location_plan/42"
payload := strings.NewReader("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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 the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_location_plan_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_location_plan.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseLocationPlanController.put(EventBaseLocationPlan.fromJson({
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"color": "#3f5efb",
"fg_color": "#3f5efb",
"aspectRatio": 1.5,
"token": "string",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string"
}Update a BaseLocationPlan
PATCH/api/event/base_location_plan/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataBaseLocationPlan2Show fields (10)
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
Responses
200Update a BaseLocationPlanBaseLocationPlan
Show fields (18)
aspectRationumber (float)Aspect ratio of the background image, null when the dimensions are unknown.
idintegerPrimary key of the location plan. Internal ID.
tokenstringPublic token of the location plan. Used in links instead of the ID.
floor_levelstringFree text floor label, matches BaseBookable::getFloorLevel()
sort_orderintegerOrder of the floor tabs within one location
plan_modestringMode of the plan, for example grid or image.
image_widthintegerPixel width of the background image. Only used for the aspect ratio, the item coordinates themselves are normalized and therefore resolution independent.
image_heightintegerHeight of the plan image in pixels.
grid_columnsintegerNumber of columns of the grid.
grid_rowsintegerNumber of rows of the grid.
default_horizon_hoursintegerHow far ahead the status endpoint looks for the next booking, in hours.
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
namestringName of the entity.
image_urlstringURL of the image of the entity.
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/event/base_location_plan/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
image_url: 'https://vynst.de',
floor_level: 'string',
sort_order: 1,
plan_mode: 'string',
image_width: 1,
image_height: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/event/base_location_plan/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/event/base_location_plan/42"
payload = { "data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 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/event/base_location_plan/42', [
'body' => '{"data":{"image_url":"https://vynst.de","floor_level":"string","sort_order":1,"plan_mode":"string","image_width":1,"image_height":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/event/base_location_plan/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/base_location_plan/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/event/base_location_plan/42"
payload := strings.NewReader("{\"data\":{\"image_url\":\"https://vynst.de\",\"floor_level\":\"string\",\"sort_order\":1,\"plan_mode\":\"string\",\"image_width\":1,\"image_height\":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/event/base_location_plan/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"image_url": "https://vynst.de",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string",
"image_width": 1,
"image_height": 1
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"color": "#3f5efb",
"fg_color": "#3f5efb",
"aspectRatio": 1.5,
"token": "string",
"floor_level": "string",
"sort_order": 1,
"plan_mode": "string"
}Replaces the placed items of a plan in one request.
POST/api/event/base_location_plan/{identifier}/items_bulk
The editor holds the full item state locally and sends it back as a whole, so this is a replace, not a merge: every item in the payload is created or updated, and every item of the plan that is missing from the payload is soft deleted. The payload is validated as a whole and written in one transaction, so a half saved plan is impossible. With planUpdated the save is refused (error code 409) when the plan was saved by someone else since the client loaded it.
Path parameters
identifierrequiredstring |
Query parameters
idinteger | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
tokenstring | |
planstring | |
baseBookablestring | |
itemTypestring | |
shapestring | |
createdstring | |
updatedstring | |
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 |
Request body application/json
planUpdatedstring (date-time)updated timestamp of the plan as the client loaded it; when it no longer matches, the save fails with error code 409
itemsarray<object>requiredFull item state of the plan. Items missing from this list are soft deleted. At most 2000 items.
Show fields (18)
idintegerid of an existing item of this plan; missing or foreign ids create a new item
baseBookableintegerid of the placed object (not archived), null for decoration items
itemTypestringAllowed:
bookablelabelareaiconlegendshapestringAllowed:
rectcirclepolygonposXnumberleft edge, 0..1 of the plan width
posYnumbertop edge, 0..1 of the plan height
widthnumber0..1 of the plan width
heightnumber0..1 of the plan height
rotationnumberdegrees
polygonPointsarray<array<number>>[[x, y], ...] normalized, only for shape polygon
zIndexintegerlabelstringiconstringcolorstringfgColorstringshowLabelbooleanshowStatusbooleanshowNextboolean
Responses
200Returns the stored items of the planarray<BaseLocationPlanItem>
Show fields (25)
planintegerdisplayLabelstringLabel actually shown on the plan: the manual label wins, otherwise the cached bookable name.
idintegerPrimary key of the plan item. Internal ID.
tokenstringPublic token of the plan item. Used instead of the ID.
item_typestringType of the item, for example seat, table or label.
shapestringShape of the item on the plan.
pos_xnumber (float)Left edge, normalized 0.0 - 1.0
pos_ynumber (float)Top edge, normalized 0.0 - 1.0
widthnumber (float)Width of the item in plan units.
heightnumber (float)Height of the item in plan units.
rotationnumber (float)Rotation of the item in degrees.
z_indexintegerStacking order of the item on the plan.
labelstringOverrides the bookable name on the plan.
iconstringIcon shown on the item.
show_labelbooleanShow the label of the item.
show_statusbooleanShow the status of the item.
show_nextbooleanShow the next booking of the item.
seat_rowstringSeat: row ("5", "B") as printed on the ticket.
seat_numberstringSeat: number within the row.
seat_zonestringSeat: price zone ("A", "Loge"). An event's ticket category with the same PredefinedBillingItem::ticketSeatZone may be booked on it; without a zone every category may.
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
colorstringBackground color as hex value.
fg_colorstringForeground color as hex value.
curl --request POST \
--url https://your-instance.iw-erp.de/api/event/base_location_plan/42/items_bulk \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"items": [
{
"id": 42,
"color": "#3f5efb",
"baseBookable": 1,
"itemType": "bookable",
"shape": "rect",
"posX": 1.5
}
],
"planUpdated": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
items: [
{
id: 42,
color: '#3f5efb',
baseBookable: 1,
itemType: 'bookable',
shape: 'rect',
posX: 1.5
}
],
planUpdated: '2026-10-15T09:30:00+02:00'
})
};
fetch('https://your-instance.iw-erp.de/api/event/base_location_plan/42/items_bulk', 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/event/base_location_plan/42/items_bulk"
payload = {
"items": [
{
"id": 42,
"color": "#3f5efb",
"baseBookable": 1,
"itemType": "bookable",
"shape": "rect",
"posX": 1.5
}
],
"planUpdated": "2026-10-15T09:30:00+02:00"
}
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/event/base_location_plan/42/items_bulk', [
'body' => '{"items":[{"id":42,"color":"#3f5efb","baseBookable":1,"itemType":"bookable","shape":"rect","posX":1.5}],"planUpdated":"2026-10-15T09:30:00+02:00"}',
'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/event/base_location_plan/42/items_bulk"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"items\":[{\"id\":42,\"color\":\"#3f5efb\",\"baseBookable\":1,\"itemType\":\"bookable\",\"shape\":\"rect\",\"posX\":1.5}],\"planUpdated\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"items\":[{\"id\":42,\"color\":\"#3f5efb\",\"baseBookable\":1,\"itemType\":\"bookable\",\"shape\":\"rect\",\"posX\":1.5}],\"planUpdated\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/base_location_plan/42/items_bulk")
.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/event/base_location_plan/42/items_bulk"
payload := strings.NewReader("{\"items\":[{\"id\":42,\"color\":\"#3f5efb\",\"baseBookable\":1,\"itemType\":\"bookable\",\"shape\":\"rect\",\"posX\":1.5}],\"planUpdated\":\"2026-10-15T09:30:00+02:00\"}")
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/event_base_location_plan_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 EventBaseLocationPlanController.putItemsBulk(42, List<EventBaseLocationPlanItem>.fromJson({
"items": [
{
"id": 42,
"color": "#3f5efb",
"baseBookable": 1,
"itemType": "bookable",
"shape": "rect",
"posX": 1.5
}
],
"planUpdated": "2026-10-15T09:30:00+02:00"
}));
if (result.success) {
print(result.data);
}[
{
"id": 42,
"color": "#3f5efb",
"fg_color": "#3f5efb",
"plan": 1,
"displayLabel": "string",
"token": "string",
"item_type": "string",
"shape": "string",
"pos_x": 1.5,
"pos_y": 1.5
}
]