BEX-WEMP GraphQL API
Documentation for the public GraphQL API for the BERNEXPO expo booking platform
API Endpoints
# Production:
https://api.buchen.bernexpo.ch/graphql
Queries
expo
Example
Query
query Expo($expoIdentifier: String!) {
expo(expoIdentifier: $expoIdentifier) {
identifier
title
packages {
...PackageFragment
}
logo
startDate
endDate
hideCoexhibitors
coexhibitorPrice {
...PriceFragment
}
tutorial
disclaimer
termsOfService
responseTitle
responseText
contactAddress
contactPhone
contactEmail
contactTitle
contactText
contactWebsite
jentisTrackingDomain
jentisTrackingProject
jentisTrackingEnvironment
jentisTrackingVersion
jentisTrackingFileHash
}
}
Variables
{"expoIdentifier": "abc123"}
Response
{
"data": {
"expo": {
"identifier": "xyz789",
"title": "xyz789",
"packages": [Package],
"logo": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"hideCoexhibitors": false,
"coexhibitorPrice": Price,
"tutorial": "xyz789",
"disclaimer": "abc123",
"termsOfService": "xyz789",
"responseTitle": "xyz789",
"responseText": "xyz789",
"contactAddress": "xyz789",
"contactPhone": "abc123",
"contactEmail": "xyz789",
"contactTitle": "abc123",
"contactText": "abc123",
"contactWebsite": "xyz789",
"jentisTrackingDomain": "xyz789",
"jentisTrackingProject": "xyz789",
"jentisTrackingEnvironment": "abc123",
"jentisTrackingVersion": "xyz789",
"jentisTrackingFileHash": "abc123"
}
}
}
expos
Response
Returns [Expo!]!
Example
Query
query Expos {
expos {
identifier
title
packages {
...PackageFragment
}
logo
startDate
endDate
hideCoexhibitors
coexhibitorPrice {
...PriceFragment
}
tutorial
disclaimer
termsOfService
responseTitle
responseText
contactAddress
contactPhone
contactEmail
contactTitle
contactText
contactWebsite
jentisTrackingDomain
jentisTrackingProject
jentisTrackingEnvironment
jentisTrackingVersion
jentisTrackingFileHash
}
}
Response
{
"data": {
"expos": [
{
"identifier": "abc123",
"title": "abc123",
"packages": [Package],
"logo": "xyz789",
"startDate": "abc123",
"endDate": "abc123",
"hideCoexhibitors": true,
"coexhibitorPrice": Price,
"tutorial": "xyz789",
"disclaimer": "abc123",
"termsOfService": "abc123",
"responseTitle": "abc123",
"responseText": "xyz789",
"contactAddress": "abc123",
"contactPhone": "abc123",
"contactEmail": "abc123",
"contactTitle": "xyz789",
"contactText": "xyz789",
"contactWebsite": "xyz789",
"jentisTrackingDomain": "xyz789",
"jentisTrackingProject": "abc123",
"jentisTrackingEnvironment": "xyz789",
"jentisTrackingVersion": "xyz789",
"jentisTrackingFileHash": "xyz789"
}
]
}
}
form
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a FormSetup!
Example
Query
query Form(
$formIdentifier: String!,
$expoIdentifier: String
) {
form(
formIdentifier: $formIdentifier,
expoIdentifier: $expoIdentifier
) {
identifier
schema
uischema
}
}
Variables
{
"formIdentifier": "xyz789",
"expoIdentifier": "abc123"
}
Response
{
"data": {
"form": {
"identifier": "abc123",
"schema": JsonSchema,
"uischema": JsonSchema
}
}
}
getBooking
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a Booking
Example
Query
query GetBooking {
getBooking {
identifier
packageVariant {
...PackageVariantFragment
}
createdAt
modifiedAt
totalPrice {
...PriceFragment
}
addresses
packageVariants {
...PackageVariantFragment
}
termsAndConditions
expoFormData
}
}
Response
{
"data": {
"getBooking": {
"identifier": "xyz789",
"packageVariant": PackageVariant,
"createdAt": "xyz789",
"modifiedAt": "abc123",
"totalPrice": Price,
"addresses": JsonSchema,
"packageVariants": [PackageVariant],
"termsAndConditions": true,
"expoFormData": JsonSchema
}
}
}
i18n
Response
Returns [TranslationEntry!]!
Arguments
| Name | Description |
|---|---|
lang - String!
|
Example
Query
query I18n($lang: String!) {
i18n(lang: $lang) {
key
value
}
}
Variables
{"lang": "abc123"}
Response
{
"data": {
"i18n": [
{
"key": "abc123",
"value": "xyz789"
}
]
}
}
package
Example
Query
query Package($packageIdentifier: String!) {
package(packageIdentifier: $packageIdentifier) {
identifier
type
title
description
included_services
image
price {
...PriceFragment
}
minPrice {
...PriceFragment
}
sizes
packageVariants {
...PackageVariantFragment
}
}
}
Variables
{"packageIdentifier": "xyz789"}
Response
{
"data": {
"package": {
"identifier": "abc123",
"type": "Flexible",
"title": "xyz789",
"description": "xyz789",
"included_services": ["abc123"],
"image": "xyz789",
"price": Price,
"minPrice": Price,
"sizes": ["abc123"],
"packageVariants": [PackageVariant]
}
}
}
packageVariantSiblings
Response
Returns [PackageVariant!]!
Arguments
| Name | Description |
|---|---|
packageVariantIdentifier - String!
|
Example
Query
query PackageVariantSiblings($packageVariantIdentifier: String!) {
packageVariantSiblings(packageVariantIdentifier: $packageVariantIdentifier) {
identifier
parentIdentifier
type
title
description
disclaimer
included_services
image
price {
...PriceFragment
}
minPrice {
...PriceFragment
}
size {
...SizeFragment
}
shape {
...ShapeFragment
}
minWidth
maxWidth
minDepth
maxDepth
serviceCategories {
...ServiceCategoryFragment
}
serviceGroups {
...ServiceGroupFragment
}
}
}
Variables
{"packageVariantIdentifier": "xyz789"}
Response
{
"data": {
"packageVariantSiblings": [
{
"identifier": "xyz789",
"parentIdentifier": "xyz789",
"type": "Flexible",
"title": "xyz789",
"description": "abc123",
"disclaimer": "xyz789",
"included_services": ["abc123"],
"image": "xyz789",
"price": Price,
"minPrice": Price,
"size": Size,
"shape": Shape,
"minWidth": 987,
"maxWidth": 987,
"minDepth": 123,
"maxDepth": 987,
"serviceCategories": [ServiceCategory],
"serviceGroups": [ServiceGroup]
}
]
}
}
packageVariants
Response
Returns [PackageVariant!]!
Arguments
| Name | Description |
|---|---|
packageIdentifier - String!
|
Example
Query
query PackageVariants($packageIdentifier: String!) {
packageVariants(packageIdentifier: $packageIdentifier) {
identifier
parentIdentifier
type
title
description
disclaimer
included_services
image
price {
...PriceFragment
}
minPrice {
...PriceFragment
}
size {
...SizeFragment
}
shape {
...ShapeFragment
}
minWidth
maxWidth
minDepth
maxDepth
serviceCategories {
...ServiceCategoryFragment
}
serviceGroups {
...ServiceGroupFragment
}
}
}
Variables
{"packageIdentifier": "abc123"}
Response
{
"data": {
"packageVariants": [
{
"identifier": "xyz789",
"parentIdentifier": "abc123",
"type": "Flexible",
"title": "xyz789",
"description": "xyz789",
"disclaimer": "xyz789",
"included_services": ["abc123"],
"image": "abc123",
"price": Price,
"minPrice": Price,
"size": Size,
"shape": Shape,
"minWidth": 987,
"maxWidth": 123,
"minDepth": 987,
"maxDepth": 987,
"serviceCategories": [ServiceCategory],
"serviceGroups": [ServiceGroup]
}
]
}
}
packages
Response
Returns [Package!]!
Arguments
| Name | Description |
|---|---|
expoIdentifier - String!
|
Example
Query
query Packages($expoIdentifier: String!) {
packages(expoIdentifier: $expoIdentifier) {
identifier
type
title
description
included_services
image
price {
...PriceFragment
}
minPrice {
...PriceFragment
}
sizes
packageVariants {
...PackageVariantFragment
}
}
}
Variables
{"expoIdentifier": "abc123"}
Response
{
"data": {
"packages": [
{
"identifier": "xyz789",
"type": "Flexible",
"title": "xyz789",
"description": "abc123",
"included_services": ["abc123"],
"image": "abc123",
"price": Price,
"minPrice": Price,
"sizes": ["xyz789"],
"packageVariants": [PackageVariant]
}
]
}
}
salesConfiguration
Response
Returns a SalesConfigurationResponse
Arguments
| Name | Description |
|---|---|
token - String!
|
Example
Query
query SalesConfiguration($token: String!) {
salesConfiguration(token: $token) {
success
expo
}
}
Variables
{"token": "abc123"}
Response
{
"data": {
"salesConfiguration": {
"success": true,
"expo": "xyz789"
}
}
}
Mutations
createBooking
Description
⛔ Non-public api, needs apiToken to access ⛔
Example
Query
mutation CreateBooking(
$packageIdentifier: String!,
$regiNr: String
) {
createBooking(
packageIdentifier: $packageIdentifier,
regiNr: $regiNr
) {
identifier
packageVariant {
...PackageVariantFragment
}
createdAt
modifiedAt
totalPrice {
...PriceFragment
}
addresses
packageVariants {
...PackageVariantFragment
}
termsAndConditions
expoFormData
}
}
Variables
{
"packageIdentifier": "xyz789",
"regiNr": "xyz789"
}
Response
{
"data": {
"createBooking": {
"identifier": "abc123",
"packageVariant": PackageVariant,
"createdAt": "xyz789",
"modifiedAt": "xyz789",
"totalPrice": Price,
"addresses": JsonSchema,
"packageVariants": [PackageVariant],
"termsAndConditions": false,
"expoFormData": JsonSchema
}
}
}
createSalesConfiguration
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a SalesConfiguration
Example
Query
mutation CreateSalesConfiguration {
createSalesConfiguration {
token
}
}
Response
{
"data": {
"createSalesConfiguration": {
"token": "xyz789"
}
}
}
submitBooking
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a SubmitResponse!
Example
Query
mutation SubmitBooking {
submitBooking {
success
message
}
}
Response
{
"data": {
"submitBooking": {
"success": true,
"message": "xyz789"
}
}
}
updateBooking
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a Booking!
Arguments
| Name | Description |
|---|---|
payload - BookingDataPayload
|
Example
Query
mutation UpdateBooking($payload: BookingDataPayload) {
updateBooking(payload: $payload) {
identifier
packageVariant {
...PackageVariantFragment
}
createdAt
modifiedAt
totalPrice {
...PriceFragment
}
addresses
packageVariants {
...PackageVariantFragment
}
termsAndConditions
expoFormData
}
}
Variables
{"payload": BookingDataPayload}
Response
{
"data": {
"updateBooking": {
"identifier": "abc123",
"packageVariant": PackageVariant,
"createdAt": "xyz789",
"modifiedAt": "xyz789",
"totalPrice": Price,
"addresses": JsonSchema,
"packageVariants": [PackageVariant],
"termsAndConditions": false,
"expoFormData": JsonSchema
}
}
}
updateServiceGroup
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a ServiceGroupResponse!
Arguments
| Name | Description |
|---|---|
payload - ServiceGroupPayload
|
Example
Query
mutation UpdateServiceGroup($payload: ServiceGroupPayload) {
updateServiceGroup(payload: $payload) {
totalPrice {
...PriceFragment
}
serviceGroup {
...ServiceGroupFragment
}
}
}
Variables
{"payload": ServiceGroupPayload}
Response
{
"data": {
"updateServiceGroup": {
"totalPrice": Price,
"serviceGroup": ServiceGroup
}
}
}
validateFormData
Description
⛔ Non-public api, needs apiToken to access ⛔
Response
Returns a FormValidationResponse
Arguments
| Name | Description |
|---|---|
payload - FormPayload
|
Example
Query
mutation ValidateFormData($payload: FormPayload) {
validateFormData(payload: $payload) {
hasErrors
isComplete
fields {
...FormValidationResponseEntryFragment
}
}
}
Variables
{"payload": FormPayload}
Response
{
"data": {
"validateFormData": {
"hasErrors": true,
"isComplete": true,
"fields": [FormValidationResponseEntry]
}
}
}
Types
Booking
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
packageVariant - PackageVariant!
|
|
createdAt - String
|
|
modifiedAt - String
|
|
totalPrice - Price!
|
|
addresses - JsonSchema!
|
|
packageVariants - [PackageVariant!]!
|
|
termsAndConditions - Boolean
|
|
expoFormData - JsonSchema!
|
Example
{
"identifier": "abc123",
"packageVariant": PackageVariant,
"createdAt": "xyz789",
"modifiedAt": "abc123",
"totalPrice": Price,
"addresses": JsonSchema,
"packageVariants": [PackageVariant],
"termsAndConditions": true,
"expoFormData": JsonSchema
}
BookingDataPayload
Fields
| Input Field | Description |
|---|---|
packageVariantIdentifier - String
|
|
size - SizePayload
|
|
serviceModules - [String!]
|
|
addresses - JsonSchema
|
|
termsAndConditions - Boolean
|
|
expoFormData - JsonSchema
|
Example
{
"packageVariantIdentifier": "xyz789",
"size": SizePayload,
"serviceModules": ["xyz789"],
"addresses": JsonSchema,
"termsAndConditions": true,
"expoFormData": JsonSchema
}
Boolean
Description
The Boolean scalar type represents true or false.
Expo
Fields
| Field Name | Description |
|---|---|
identifier - String
|
|
title - String
|
|
packages - [Package]
|
|
logo - String
|
|
startDate - String!
|
|
endDate - String!
|
|
hideCoexhibitors - Boolean
|
|
coexhibitorPrice - Price
|
|
tutorial - String
|
|
disclaimer - String
|
|
termsOfService - String
|
|
responseTitle - String
|
|
responseText - String
|
|
contactAddress - String
|
|
contactPhone - String
|
|
contactEmail - String
|
|
contactTitle - String
|
|
contactText - String
|
|
contactWebsite - String
|
|
jentisTrackingDomain - String
|
|
jentisTrackingProject - String
|
|
jentisTrackingEnvironment - String
|
|
jentisTrackingVersion - String
|
|
jentisTrackingFileHash - String
|
Example
{
"identifier": "abc123",
"title": "abc123",
"packages": [Package],
"logo": "abc123",
"startDate": "xyz789",
"endDate": "xyz789",
"hideCoexhibitors": true,
"coexhibitorPrice": Price,
"tutorial": "abc123",
"disclaimer": "abc123",
"termsOfService": "abc123",
"responseTitle": "xyz789",
"responseText": "xyz789",
"contactAddress": "abc123",
"contactPhone": "abc123",
"contactEmail": "abc123",
"contactTitle": "abc123",
"contactText": "abc123",
"contactWebsite": "xyz789",
"jentisTrackingDomain": "xyz789",
"jentisTrackingProject": "xyz789",
"jentisTrackingEnvironment": "xyz789",
"jentisTrackingVersion": "xyz789",
"jentisTrackingFileHash": "abc123"
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
FormFieldPayload
Fields
| Input Field | Description |
|---|---|
key - String!
|
|
value - StringOrArray
|
Example
{
"key": "xyz789",
"value": StringOrArray
}
FormPayload
Fields
| Input Field | Description |
|---|---|
identifier - String!
|
|
expoIdentifier - String
|
|
fields - [FormFieldPayload!]!
|
Example
{
"identifier": "xyz789",
"expoIdentifier": "xyz789",
"fields": [FormFieldPayload]
}
FormSetup
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
schema - JsonSchema!
|
|
uischema - JsonSchema!
|
Example
{
"identifier": "abc123",
"schema": JsonSchema,
"uischema": JsonSchema
}
FormValidationResponse
Fields
| Field Name | Description |
|---|---|
hasErrors - Boolean!
|
|
isComplete - Boolean!
|
|
fields - [FormValidationResponseEntry!]!
|
Example
{
"hasErrors": true,
"isComplete": false,
"fields": [FormValidationResponseEntry]
}
FormValidationResponseEntry
Fields
| Field Name | Description |
|---|---|
key - String!
|
|
value - String
|
|
errors - [String!]!
|
Example
{
"key": "xyz789",
"value": "xyz789",
"errors": ["xyz789"]
}
InputType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"picker"
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
JsonSchema
Example
JsonSchema
Package
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
type - PackageVariantType!
|
|
title - String!
|
|
description - String
|
|
included_services - [String!]!
|
|
image - String!
|
|
price - Price
|
|
minPrice - Price
|
|
sizes - [String!]!
|
|
packageVariants - [PackageVariant!]!
|
Example
{
"identifier": "abc123",
"type": "Flexible",
"title": "abc123",
"description": "xyz789",
"included_services": ["abc123"],
"image": "abc123",
"price": Price,
"minPrice": Price,
"sizes": ["xyz789"],
"packageVariants": [PackageVariant]
}
PackageVariant
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
parentIdentifier - String!
|
|
type - PackageVariantType!
|
|
title - String!
|
|
description - String
|
|
disclaimer - String
|
|
included_services - [String!]!
|
|
image - String!
|
|
price - Price!
|
|
minPrice - Price
|
|
size - Size!
|
|
shape - Shape!
|
|
minWidth - Int
|
|
maxWidth - Int
|
|
minDepth - Int
|
|
maxDepth - Int
|
|
serviceCategories - [ServiceCategory!]!
|
|
serviceGroups - [ServiceGroup!]!
|
Example
{
"identifier": "abc123",
"parentIdentifier": "xyz789",
"type": "Flexible",
"title": "abc123",
"description": "xyz789",
"disclaimer": "xyz789",
"included_services": ["xyz789"],
"image": "abc123",
"price": Price,
"minPrice": Price,
"size": Size,
"shape": Shape,
"minWidth": 123,
"maxWidth": 123,
"minDepth": 987,
"maxDepth": 987,
"serviceCategories": [ServiceCategory],
"serviceGroups": [ServiceGroup]
}
PackageVariantType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Flexible"
Price
SalesConfiguration
Fields
| Field Name | Description |
|---|---|
token - String!
|
Example
{"token": "xyz789"}
SalesConfigurationResponse
ServiceCategory
ServiceGroup
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
title - String!
|
|
additionalServicesTitle - String
|
|
additionalServicesCollapsed - Boolean
|
|
category - ServiceCategory!
|
|
toggleable - Boolean!
|
|
toggleableInactive - Boolean
|
|
toggleableTitle - String
|
|
includedServices - [ServiceModule!]
|
|
upgradeServices - [ServiceModule!]
|
|
additionalServices - [ServiceModule!]
|
|
enabled - Boolean!
|
Example
{
"identifier": "xyz789",
"title": "abc123",
"additionalServicesTitle": "abc123",
"additionalServicesCollapsed": true,
"category": ServiceCategory,
"toggleable": true,
"toggleableInactive": false,
"toggleableTitle": "abc123",
"includedServices": [ServiceModule],
"upgradeServices": [ServiceModule],
"additionalServices": [ServiceModule],
"enabled": false
}
ServiceGroupPayload
Fields
| Input Field | Description |
|---|---|
identifier - String!
|
|
serviceModules - [ServiceModulePayload!]
|
|
enabled - Boolean!
|
Example
{
"identifier": "xyz789",
"serviceModules": [ServiceModulePayload],
"enabled": true
}
ServiceGroupResponse
Fields
| Field Name | Description |
|---|---|
totalPrice - Price!
|
|
serviceGroup - ServiceGroup!
|
Example
{
"totalPrice": Price,
"serviceGroup": ServiceGroup
}
ServiceModule
Fields
| Field Name | Description |
|---|---|
identifier - String!
|
|
title - String!
|
|
description - String
|
|
image - ServiceModuleImage
|
|
tooltip - String
|
|
additionalForm - JsonSchema
|
|
inputType - InputType!
|
|
bundles - [ServiceModuleBundle!]!
|
|
selectedBundle - ServiceModuleBundle
|
|
defaultBundle - ServiceModuleBundle
|
|
explicitDefaultBundle - Boolean
|
|
count - Int!
|
|
unitPrice - Price!
|
|
computedPrice - Price!
|
Example
{
"identifier": "xyz789",
"title": "xyz789",
"description": "abc123",
"image": ServiceModuleImage,
"tooltip": "xyz789",
"additionalForm": JsonSchema,
"inputType": "picker",
"bundles": [ServiceModuleBundle],
"selectedBundle": ServiceModuleBundle,
"defaultBundle": ServiceModuleBundle,
"explicitDefaultBundle": false,
"count": 123,
"unitPrice": Price,
"computedPrice": Price
}
ServiceModuleBundle
ServiceModuleImage
ServiceModulePayload
Fields
| Input Field | Description |
|---|---|
identifier - String!
|
|
state - ServiceModuleStatePayload
|
Example
{
"identifier": "xyz789",
"state": ServiceModuleStatePayload
}
ServiceModuleStatePayload
Fields
| Input Field | Description |
|---|---|
selectedEntity - String
|
|
count - Int
|
|
additionalFormData - JsonSchema
|
Example
{
"selectedEntity": "abc123",
"count": 987,
"additionalFormData": JsonSchema
}
Shape
Fields
| Field Name | Description |
|---|---|
type - ShapeType!
|
|
label - String
|
Example
{"type": "ROW", "label": "xyz789"}
ShapeType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ROW"
Size
SizePayload
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
StringOrArray
Example
StringOrArray