NAV
shell

General

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "x-api-key: {API-Key}"

Make sure to replace {API-Key} with your API key.

profairs expects for the API key to be included in all API requests to the server in a header that looks like the following:

x-api-key: {API-Key}

Formatting

Language Codes

If you need to input language codes (commonly found in the language field), we use a variation of the BCP 47 standard. Here are some examples:

Dates

The date format we use at all endpoints is:

yyyy-mm-dd HH:nn:ss.000

Salutation

The salutation is an enum. The possible values are:

Acquisition

Get acquisition

curl --location --request GET '{baseurl}/acquisition' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "acquisition": [
        {
            "date": "September, 09 2021 00:00:00",
            "contact_type": 2,
            "note": "",
            "contact_person": "2823",
            "id": 1,
            "interestedexhibitorid": 5,
            "is_followup": true
        },
        {
            "date": "August, 30 2021 00:00:00",
            "contact_type": 1,
            "note": "Wir versuchen es auf jeden Fall, das Unternehmen zur Teilnahme zu bewegen.",
            "contact_person": "2823",
            "id": 2,
            "interestedexhibitorid": 5,
            "is_followup": false
        }
    ]
}

HTTP request

GET {baseurl}/acquisition/

Query Parameters

Parameter Type required Default Description
fairid numeric true

Get acquisition by ID

curl --location --request GET '{baseurl}/acquisition/{acquisitionid}' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "acquisition": [
        {
            "date": "September, 09 2021 00:00:00",
            "contact_type": 2,
            "note": "",
            "contact_person": "2823",
            "id": 1,
            "interestedexhibitorid": 5,
            "is_followup": true
        }
    ]
}

HTTP request

GET {baseurl}/acquisition/{acquisitionid}

URL Parameters

Parameter Type required Default Description
acquisitionid numeric true

Set acquisition

curl --location --request POST '{baseurl}/acquisition/' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "interestedexhibitorid": 1337,
    "contact_type": 2,
    "contact_person_id": 1337,
    "date": "2022-03-21",
    "note": "Lorem Impsum",
    "is_followup": true
}'

The above command returns JSON structured like this:

{
    "acquisitionid": "25",
    "error": false
}

HTTP request

POST {baseurl}/acquisition/

Parameters

Parameter Type required Default Description
acquisitionid numeric true
date date true
contact_type String true
contact_person_id numeric true
interestedexhibitorid numeric true
note String false
is_followup Boolean true false

Update acquisition

curl --location --request PUT '{baseurl}/acquisition/{acquisitionid}' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: text/json' \
--data-raw '{
    "contact_type": 3,
    "contact_person_id": 123,
    "date": "2022-03-22",
    "note": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
    "is_followup": false
}'

The above command returns JSON structured like this:

{
    "acquisitionid": "25",
    "error": false
}

HTTP request

PUT {baseurl}/acquisition/{acquisitionid}

URL Parameters

Parameter Type required Default Description
acquisitionid numeric true

Parameters

Parameter Type required Default Description
date date false
contact_type String false
contact_person_id numeric false
interestedexhibitorid numeric false
note String false
is_followup Boolean true false

Delete acquisition

curl --location --request DELETE '{baseurl}/acquisition/{acquisitionid}' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "acquisitionid": "25",
    "error": false
}

HTTP request

DELETE {baseurl}/acquisition/{acquisitionid}

URL Parameters

Parameter Type required Default Description
acquisitionid numeric true

Get interessted exhibitors

curl --location --request GET '{baseurl}/acquisition/interested-exhibitors' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "interested-exhibitors": [
        {
            "longitude": "",
            "customer_number": "",
            "company": "Best Western Riverview Inn",
            "lexwareid": "",
            "telephone": "01413-348876",
            "interesse_code": "yC79M9",
            "latitude": "",
            "additional_address": "Hertfordshire",
            "password": "Kc3aaE7v",
            "labelid": "",
            "adress_verified": false,
            "comment": "",
            "fairid": 1,
            "bexioid": "",
            "city": "Woodhall Farm Ward",
            "exhibitorid": 2948,
            "vat_identification_number": "",
            "homepage": "http://www.bestwesternriverviewinn.co.uk",
            "newsletter": false,
            "username": "bestweste",
            "email": "shawana@yahoo.com",
            "postalcode": "HP2 7JP",
            "country": "United Kingdom",
            "interestedexhibitorid": 23,
            "sorttitle": "Best Western Riverview Inn",
            "sevdeskid": "",
            "street": "33 Vipond St",
            "locked": false,
            "fairtypeid": 1
        },
        "error": false
    ]
}

HTTP request

GET {baseurl}/acquisition/interested-exhibitors

URL Parameters

Parameter Type required Default Description
fairtypeid numeric true
interestedexhibitorid numeric false

Set interessted exhibitor

curl --location '{baseurl}/acquisition/interested-exhibitors?fairtypeid={fairtypeid}&interestedexhibitorid={interestedexhibitorid}' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data '{
    "fairtypeid": 1,
    "fairid": 16,
    "exhibitorid": 1
}'

The above command returns JSON structured like this:

{
    "interestedexhibitorid": "77",
    "error": false
}

HTTP request

POST {baseurl}/acquisition/interested-exhibitors

Parameters

Parameter Type required Default Description
fairtypeid numeric true
exhibitorid numeric true
fairid numeric false

Delete interessted exhibitor

curl --location --request DELETE '{baseurl}/acquisition/interessted exhibitor/{interestedexhibitorid}' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "interestedexhibitorid": "25",
    "error": false
}

HTTP request

DELETE {baseurl}/acquisition/interested-exhibitors/{interestedexhibitorid}

URL Parameters

Parameter Type required Default Description
interestedexhibitorid numeric true

Assign label to interessted exhibitor

curl --location '{baseurl}/acquisition/interested-exhibitors/{interestedexhibitorid}/assign-label' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data '{
    "labelid": {labelid}
}'

The above command returns JSON structured like this:

{
    "interestedexhibitorid": "77",
    "error": false
}

HTTP request

POST {baseurl}/acquisition/interested-exhibitors/{interestedexhibitorid}/assign-label

URL Parameters

Parameter Type required Default Description
interestedexhibitorid numeric true

Parameters

Parameter Type required Default Description
labelid numeric true

Register Interested

curl --location '{baseurl}/acquisition/register-interested-exhibitors/?dry_run=false&debug=false' \
--header 'x-api-key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "company_name": "{company-name}",
    "salutation": "{salutation}",
    "first_name": "{first-name}",
    "last_name": "{last-name}",
    "email": "{email}",
    "send_email": {send-email},
    "language_code": "{language-code}",
    "fair_id": {fair-id}
}'

The above command returns JSON structured like this:

{
    "error": false,
    "data": {
        "temp_passwort": "krv7Mb8vNW4Z",
        "exhibitor_id": 4080
    },
    "error_message": {},
    "warning_message": {}
}

This endpoint registers an interested exhibitor. It creates an exhibitor and a connected contact person. If send_email is set to true, it sends an email to the contact person. The email and the api response contains a temporary password, which can be used to login to profairs and set a permanent password.

Flow

  1. Create exhibitors. If an exhibitor with the same company name and short title exists, update the exhibitor. Otherwise, create a new exhibitor.
  2. Create a contact person and add it to the created/updated exhibitor.
  3. Create a temporary password for Keycloak if one doesn't already exist.
  4. If send_email is set to true, send an email to the contact person containing the temporary password.

HTTP request

POST {baseurl}/acquisition/register-interested-exhibitors/?dry_run=false&debug=false

URL Parameters

Parameter Type required default Description
dry_run boolean false false If set to true, the endpoint doesn't modify anything in the database.
debug boolean false false If set to true, it returns some additional data, which could be helpful to debug.

Parameters

Parameter Type required Default Description
fair_id integer true The ID of the fair
language_code string [de_DE, en_GB, etc...] true The language profairs uses for e.g. the email
company_name string true The name of the company
salutation string true The salutation of the contact person
first_name string true The first name of the contact person
last_name string true The last name of the contact person
email string true The email address of the contact person
send_email boolean false See description Whether to send an email to the contact person. If omitted, the default will be the value, set in control.

Response

The API returns a JSON object with the following fields:

Field Type Description
error boolean Whether an error occurred.
data object The data returned by the API
error_message object The error message, if an error occurred
warning_message object The warning message, if any

If error is false, data will contain the following fields:

Field Type Description
temp_passwort string The temporary password, which can be used to login to profairs.
exhibitor_id integer The id of the created exhibitor

If error is true, error_message will contain the error message.

Booths

Get booths

curl --location --request GET '{baseurl}/booths/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "booths": [
        {
            "articleid": "",
            "change_user": 999,
            "create_user": 999,
            "change_date": "February, 03 2022 10:48:33",
            "boothwidth": "3.0",
            "boothnumber": "2-634",
            "boothtype": 0,
            "create_date": "February, 02 2022 10:44:02",
            "syncstatus": 0,
            "boothsize": "15.0",
            "fairid": 7,
            "boothid": 30,
            "boothdepth": "5.0"
        },
        {
            "articleid": "",
            "change_user": 999,
            "create_user": 999,
            "change_date": "February, 03 2022 10:48:33",
            "boothwidth": "4.00",
            "boothnumber": "2-614",
            "boothtype": "",
            "create_date": "February, 02 2022 10:44:02",
            "syncstatus": 0,
            "boothsize": "",
            "fairid": 7,
            "boothid": 29,
            "boothdepth": "3.00"
        }
    ]
}

HTTP request

GET {baseurl}/booths/

Query Parameters

Parameter Type required Default Description
fairid numeric false
boothid numeric false
exhibitorboothid numeric false

Set booth

curl --location --request POST '{baseurl}/booths/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairid": 7,
    "boothnumber": "A-1337",
    "boothwidth": 5,
    "boothdepth": 3,
    "boothsize": 15,
    "articleid": 1337,
    "boothtype": 1
}'

The above command returns JSON structured like this:

{
    "error": false,
    "boothid": "1553"
}

HTTP request

POST {baseurl}/booths/

Parameters

Parameter Type required Default Description
boothnumber String true
boothwidth numeric true
boothdepth numeric true
fairid numeric true
boothsize numeric false
articleid numeric false
boothtype numeric false
hall_id numeric false

No Booth is created

If a booth matching the given parameters already exists, the endpoint will throw an error, but it will still return the booth id of the already existing booth.

A booth matching the given parameters is considered a duplicate in the following cases:

Delete booth

curl --location --request DELETE '{baseurl}/booths/{boothid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "boothid": "1551"
}

HTTP request

DELETE {baseurl}/booths/{boothid}

URL Parameters

Parameter Type required Default Description
boothid numeric true

Update booth

curl --location --request PUT '{baseurl}/booths/{boothid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairid": 7,
    "boothnumber": "A-1338",
    "boothwidth": 5,
    "boothdepth": 3,
    "boothsize": 15,
    "articleid": 1337,
    "boothtype": 1
}'

The above command returns JSON structured like this:

{
    "error": false,
    "boothid": 1551
}

HTTP request

PUT {baseurl}/booths/{boothid}

URL Parameters

Parameter Type required Default Description
boothid numeric true

Parameters

Parameter Type required Default Description
boothnumber String false
boothwidth numeric false
boothdepth numeric false
fairid numeric false
boothsize numeric false
articleid numeric false
boothtype numeric false

Get booth types

curl --location --request GET '{baseurl}/booths/types/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "type": [
        {
            "id": 1,
            "type": "Reihenstand 21"
        },
        {
            "id": 2,
            "type": "Eckstand"
        }
    ]
}

HTTP request

GET {baseurl}/booths/types/

Query Parameters

Parameter Type required Default Description
id numeric false
language String true de_DE

Get exhibitor booth assignments

curl --location --request GET '{baseurl}/booths/exhibitor/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "assingments": [
        {
            "boothassignment": "",
            "create_date": "April, 05 2019 15:05:04",
            "change_user": 999,
            "exhibitorboothid": 1108,
            "syncstatus": 0,
            "create_user": 999,
            "note": "",
            "mainexhibitorid": 2279,
            "boothid": 26,
            "change_date": "April, 05 2019 15:05:04",
            "exhibitorfairid": 2280
        },
        {
            "boothassignment": "",
            "create_date": "June, 25 2019 17:03:19",
            "change_user": 667,
            "exhibitorboothid": 1121,
            "syncstatus": 0,
            "create_user": 667,
            "note": "",
            "mainexhibitorid": 0,
            "boothid": 562,
            "change_date": "June, 25 2019 17:03:19",
            "exhibitorfairid": 2305
        }
    ]
}

HTTP request

GET {baseurl}/booths/exhibitor/

Query Parameters

Parameter Type required Default Description
fairid numeric false
exhibitorid numeric false
exhibitorfairid numeric false
exhibitorboothid numeric false
mainexhibitorid numeric false
language String false de_DE

Set exhibitor booth assignment

curl --location --request POST '{baseurl}/booths/exhibitor/{boothid}/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairid": 7,
    "exhibitorfairid": 96
}'

The above command returns JSON structured like this:

{
    "exhibitorboothid": "1405",
    "error": false
}

HTTP request

POST {baseurl}/booths/exhibitor/{boothid}/

URL Parameters

Parameter Type required Default Description
boothid numeric true

Parameters

Parameter Type required Default Description
fairid numeric true
exhibitorfairid numeric true
mainexhibitor numeric true 0
note String false
postingdate date false
boothassignment String false
variantid numeric false Specified variant is ordered when creating

Delete exhibitor booth assignment

curl --location --request DELETE '{baseurl}/booths/exhibitor/{exhibitorboothid}/' \
--header 'X-API-Key: API-Key' \

The above command returns JSON structured like this:

{
    "exhibitorboothid": "1401",
    "error": false
}

HTTP request

DELETE {baseurl}/booths/exhibitor/{exhibitorboothid}/

URL Parameters

Parameter Type required Default Description
exhibitorboothid numeric true

Get booth reservation

curl --location --request GET '{baseurl}/booths/reservation/{reservationhash}/' \
--header 'X-API-Key: API-Key' \

The above command returns JSON structured like this:

{
    "fairid": "3",
    "boothids": "S-23,S-24,S-25",
    "hash": "XXXXXXXXXXXXXXXXXXXXXX",
    "expire_date": "2023-06-02 08:13:11",
    "error": false
}

HTTP request

GET {baseurl}/booths/reservation/{reservationhash}/

URL Parameters

Parameter Type required Default Description
reservationhash string true

Contacts

Get contacts

curl
  --location --request GET '{baseurl}/contacts/' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: {API-Key}'

The above command returns JSON structured like this:

{
    "contacts": [
      {
        "postalcode": "12345",
        "telephone": "+497082-98616282",
        "job_title": "Developer",
        "firstname": "Max",
        "street": "Musterstraße 4",
        "email": "max@mustermann.de",
        "comment": "",
        "company": "",
        "contactid": 1,
        "city": "Musterstadt",
        "country": "Deutschland",
        "salutation": "Herr",
        "lastname": "Mustermann",
        "fairtypeid": "1",
        "title": "Dr.",
        "additional_address": "Etage 1",
        "hasnewsletterapproval": false,
        "exhibitorid": 1,
        "mobile": "+49176-98616282"
      }
    ]
    "error": false
}

HTTP request

GET {baseurl}/contacts/

Query parameters

Parameter Type required Default Description
exhibitorid numeric false
contactid numeric false
typeid numeric false
language String false "de_DE"
receivesNewsletter Boolean false false
fairtypeid numeric false

Create contact person

HTTP request

POST {baseurl}/contacts/

curl --location --request POST '{baseurl}/contacts/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "salutation" : "Herr",
    "title" : "Dr.",
    "job_title" : "Developer",
    "firstname" : "Max",
    "lastname" : "Mustermann",
    "exhibitorid" : "1337",
    "telephone" : "+49 12345 6789",
    "mobile" : "+49 1234567890",
    "email" : "max.mustermann@gmail.com",
    "newsletter" : true,
    "comment" : "Lorem Ipsum",
    "company" : "Muster GmbH",
    "street" : "Musterstraße 123",
    "additional_address" : "Lorem Ipsum",
    "postalcode" : "12345",
    "city" : "Mustercity",
    "country" : "Deutschland",
    "fairtypeid" : "1"
}'

The above command returns JSON structured like this:

{
    "error": false,
    "contactid": "2840"
}

Parameters

Parameter Type required Default Description
salutation string true
title string false
job_title string false
firstname string true
lastname string true
exhibitorid numeric true
telephone string false
mobile string false
email string true
newsletter boolean true false
comment string false
company string false
street string false
additional_address string false
postalcode string false
city string false
country string false
fairtypeid numeric false
contacttypeid numeric false

Upload contact person image

curl --location --request POST '{baseurl}/contacts/upload/' \
--header 'X-API-Key: {API-Key}' \
--form 'file=@"{file_path}"' \
--form 'file_name="{file_name}"' \
--form 'contactid="{contactid}"' \
--form 'type="image"'

The above command returns JSON structured like this:

{
    "error": false,
    "contactid": "2838"
}

HTTP request

POST {baseurl}/contacts/upload/

Parameters

Parameter Type required Default Description
contactid numeric true
file binary true
file_name string true
type string true

Update contact person

curl --location --request PUT '{baseurl}/contacts/{contactid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "salutation" : "Herr",
    "title" : "Dr.",
    "job_title" : "Developer",
    "firstname" : "Max",
    "lastname" : "Mustermann",
    "exhibitorid" : "1337",
    "telephone" : "+49 12345 6789",
    "mobile" : "+49 1234567890",
    "email" : "max.mustermann@gmail.com",
    "newsletter" : true,
    "comment" : "Lorem Ipsum",
    "company" : "Muster GmbH",
    "street" : "Musterstraße 123",
    "additional_address" : "Lorem Ipsum",
    "postalcode" : "12345",
    "city" : "Mustercity",
    "country" : "Deutschland",
    "fairtypeid" : "1"
}'

The above command returns JSON structured like this:

{
    "error": false,
    "contactid": 2838
}

HTTP request

PUT {baseurl}/contacts/{contactid}/

URL Parameters

Parameter Type required Default Description
contactid numeric true

Parameters

Parameter Type required Default Description
salutation string true
title string false
job_title string false
firstname string true
lastname string true
exhibitorid numeric true
telephone string false
mobile string false
email string true
newsletter boolean true false
comment string false
company string false
street string false
additional_address string false
postalcode string false
city string false
country string false
fairtypeid numeric false
contacttypeid numeric false

Delete contact person

curl --location --request DELETE '{baseurl}/contacts/{contactid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "contactid": 2838
}

HTTP request

DELETE {baseurl}/contacts/{contactid}/

URL Parameters

Parameter Type required Default Description
contactid numeric true

Get Contact Types

If you want to work with the contact types separated from the contacts, you can use the following endpoints:

curl --location --request GET '{baseurl}/contacts/types/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
  "error": false,
  "error_message": {},
  "contact_types": [
    {
      "en_GB": "Regular",
      "contacttypeid": 5,
      "de_DE": "Allgemein",
      "fairtypeid": 1
    },
    {
      "en_GB": "invoice recipient",
      "contacttypeid": 6,
      "de_DE": "Ansprechpartner Rechnungswesen",
      "fairtypeid": 1
    },
    {
      "en_GB": "Messebau",
      "contacttypeid": 7,
      "de_DE": "Messebau",
      "fairtypeid": 1
    },
    {
      "en_GB": "Regular",
      "contacttypeid": 8,
      "de_DE": "Allgemein",
      "fairtypeid": 2
    },
    {
      "en_GB": "invoice recipient",
      "contacttypeid": 9,
      "de_DE": "Ansprechpartner Rechnungswesen",
      "fairtypeid": 2
    },
    {
      "en_GB": "Messebau",
      "contacttypeid": 10,
      "de_DE": "Messebau",
      "fairtypeid": 2
    },
    {
      "en_GB": "Regular",
      "contacttypeid": 11,
      "de_DE": "Allgemein",
      "fairtypeid": 3
    }
  ]
}

HTTP request

GET {baseurl}/contacts/types/

URL Parameters

Parameter Type required Default Description
contactid numeric false
fairtypeid numeric false
contacttypeid numeric false

Create Contact Types

curl --location --request POST '{baseurl}/contacts/types/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "fairtypeid": 1,
  "default": false,
  "translations": [
    {
      "language": "de_DE",
      "text": "Messebau"
    },
    {
      "language": "en_GB",
      "text": "Exhibition construction"
    }
  ]
}'

The above command returns JSON structured like this:

{
  "error": false,
  "created": {
    "default": false,
    "fairtypeid": 1,
    "translations": [
      {
        "language": "de_DE",
        "text": "Messebau"
      },
      {
        "language": "en_GB",
        "text": "Exhibition construction"
      }
    ]
  },
  "error_message": {},
  "contacttypeid": "35"
}

HTTP request

POST {baseurl}/contacts/types/

Parameters

Parameter Type required Default Description
fairtypeid numeric true
default boolean false false
translations array true

translations

Parameter Type required Default Description
language string true
text string true

Update Contact Types

curl --location --request PUT '{baseurl}/contacts/types/{contacttypeid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "fairtypeid": 1,
  "default": false,
  "translations": [
    {
      "language": "de_DE",
      "text": "Messebau changed"
    }
  ]
}'

The above command returns JSON structured like this:

{
  "error": false,
  "updated": {
    "default": false,
    "fairtypeid": 1,
    "translations": [
      {
        "language": "de_DE",
        "text": "Messebau changed"
      }
    ]
  },
  "error_message": {},
  "contacttypeid": "35"
}

HTTP request

PUT {baseurl}/contacts/types/{contacttypeid}/

Parameters

Parameter Type required Default Description
fairtypeid numeric false
default boolean false
translations array false

translations

Parameter Type required Default Description
language string true
text string true

Delete Contact Types

curl --location --request DELETE '{baseurl}/contacts/types/{contacttypeid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
  "deleted": true,
  "error": false,
  "contacttypeid": "35"
}

HTTP request

DELETE {baseurl}/contacts/types/{contacttypeid}/

Create Contact Type Assignment

curl --location --request POST '{baseurl}/contacts/type-assignments/?contacttypeid={contacttypeid}&contactid={contactid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \

The above command returns JSON structured like this:

{
  "error": false,
  "error_message": {},
  "created": true
}

HTTP request

POST {baseurl}/contacts/type-assignments/?contacttypeid={contacttypeid}&contactid={contactid}

URL Parameters

Parameter Type required Default Description
contacttypeid numeric true
contactid numeric true

Delete Contact Type Assignment

curl --location --request DELETE '{baseurl}/contacts/type-assignments/?contacttypeid={contacttypeid}&contactid={contactid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
  "error": false,
  "error_message": {},
  "deleted": true
}

HTTP request

DELETE {baseurl}/contacts/type-assignments/?contacttypeid={contacttypeid}&contactid={contactid}

URL Parameters

Parameter Type required Default Description
contacttypeid numeric true
contactid numeric false if not sets, it deletes every assignment for the contacttypeid

Exhibitors

Get exhibitors

curl "{baseurl}/exhibitors/" \
  -H "x-api-key: {API-Key}" \
  -X GET \

The above command returns JSON structured like this:

{
    "exhibitors": [
        {
            "postalcode": "L24 6SH",
            "telephone": "01708-724957",
            "customer_number": "",
            "address_verified": false,
            "lock": false,
            "remarks": "",
            "street": "4 Sherwood St",
            "email": "rebbeca_rubinstein@hotmail.com",
            "vat_identification_number": "",
            "company": "Cullen, Jack J Esq",
            "order_title": "Cullen, Jack J Esq",
            "city": "Speke-Garston Ward",
            "country": "",
            "external_id": "",
            "newsletter": false,
            "homepage": "http://www.cullenjackjesq.co.uk",
            "additional_address": "Merseyside",
            "id": 3202
        },
        {
            "postalcode": "OL15 0JP",
            "telephone": "01919-731224",
            "customer_number": "",
            "address_verified": false,
            "lock": false,
            "remarks": "",
            "street": "2 Seacombe St",
            "email": "keneth_stpierrie@hotmail.com",
            "vat_identification_number": "",
            "company": "Mueller Repro Blue Printg",
            "order_title": "Mueller Repro Blue Printg",
            "city": "Littleborough Lakeside Ward",
            "country": "",
            "external_id": "",
            "newsletter": false,
            "homepage": "http://www.muellerreproblueprintg.co.uk",
            "additional_address": "Greater Manchester",
            "id": 3216
        }
    ]
}

This endpoint retrieves all exhibitors.

HTTP Request

GET {baseurl}/exhibitors/

Query Parameters

Parameter Type required Default Description
fairid numeric false If set returns exhibitors from a specific fair.
exhibitorid numeric false
exhibitorfairid numeric false
mainexhibitorid numeric false
industryid numeric false
industryids list false
shop_categorie numeric false
interestcode String false
locked Boolean true false
external_id String false
exhibitortypeid numeric false
getBooths Boolean true false Adds booths to the exhibitors. If set to true, fairid is required.
getContacts Boolean true false Adds contacts to the exhibitors.

Create an Exhibitor

curl "{baseurl}/exhibitors/" \
  -H "x-api-key: {API-Key}" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{
    "company": "company",
    "sorttitle": "sorttitle",
    "street": "street",
    "postalcode": "postalcode",
    "city": "city",
    "country": "country",
    "additional_address": "additional_address",
    "latitude": "latitude",
    "longitude": "longitude",
    "telephone": "telephone",
    "email": "email",
    "homepage": "homepage",
    "customer_number": "customer_number",
    "vat_identification_number": "vat_identification_number",
    "remarks": "remarks",
    "username": "username",
    "password": "password",
    "address_verified": false,
    "lock": true,
    "newsletter": false,
    "external_id": "EID_123"
}'

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorid": 1337
}

This endpoint creates an exhibitor.

HTTP Request

POST {baseurl}/exhibitors/

Parameters

Parameter Type required Default Description
external_id string false
company string true
sorttitle string true
street string true
postalcode string true
city string true
additional_address string false
country string false
latitude string false
longitude string false
telephone string true
email string true
homepage string false
customer_number string false
vat_identification_number string false
remarks string false
username string false
password string false
address_verified boolean false
lock boolean false
newsletter boolean false
external_id String false

Delete an Exhibitor

curl "{baseurl}/exhibitors/{exhibitorid}" \
  -H "x-api-key: {API-Key}" \
  -X DELETE

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorid": 1337
}

This endpoint deletes an exhibitor.

HTTP Request

DELETE {baseurl}/exhibitors/{exhibitorid}

URL Parameters

Parameter Type required Default Description
exhibitorid numeric true

Query Parameters

Parameter Type required Default Description
forum_sync boolean true false

Update an Exhibitor

curl "{baseurl}/exhibitors/{exhibitorid}" \
  -H "x-api-key: {API-Key}" \
  -H "Content-Type: application/json" \
  -X PUT \
  -d '{
    "company": "company123",
    "sorttitle": "sorttitle",
    "street": "street",
    "postalcode": "postalcode",
    "city": "city",
    "country": "country",
    "additional_address": "additional_address",
    "latitude": "latitude",
    "longitude": "longitude",
    "telephone": "telephone",
    "email": "email",
    "homepage": "homepage",
    "customer_number": "customer_number",
    "vat_identification_number": "vat_identification_number",
    "remarks": "remarks",
    "username": "username",
    "password": "password",
    "address_verified": false,
    "lock": true,
    "external_id": "EID_123",
    "newsletter": false
}'

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorid": 1337
}

This endpoint updates an exhibitor.

HTTP Request

PUT {baseurl}/exhibitors/{exhibitorid}

URL Parameters

Parameter Type required Default Description
exhibitorid numeric true

Parameters

Parameter Type required Default Description
external_id string false
company string false
sorttitle string false
street string false
postalcode string false
city string false
additional_address string false
country string false
latitude string false
longitude string false
telephone string false
email string false
homepage string false
customer_number string false
vat_identification_number string false
remarks string false
username string false
password string false
address_verified boolean false
lock boolean false
newsletter boolean false
external_id String false

Generate access data

curl --location --request GET '{baseurl}/exhibitors/generate-access-data/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

This endpoint generates username and password for all exhibitors from a specific fair.

HTTP Request

GET {baseurl}/exhibitors/generate-access-data/

Query Parameters

Parameter Type required Default Description
fairid numeric true

Generate catchall code

curl --location --request GET '{baseurl}/exhibitors/generate-catchall-code/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP Request

GET {baseurl}/exhibitors/generate-catchall-code/

Query Parameters

Parameter Type required Default Description
fairid numeric true
code String false
exhibitorid String false required when code is set

Generate interest code

curl --location --request GET '{baseurl}/exhibitors/generate-access-data/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP Request

POST {baseurl}/exhibitors/generate-access-data/

Assign label to exhibitor

curl --location '{baseurl}/exhibitors/assign-label' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data '{
    "exhibitorid": {exhibitorid},
    "labelid": {labelid}
}'

The above command returns JSON structured like this:

{
    "error": false,
    "labelid": 13,
    "exhibitorid": 1
}

HTTP Request

POST {baseurl}/exhibitors/assign-label/

Parameters

Parameter Type required Default Description
labelid numeric true
exhibitorid numeric true

Set exhibitor-type assignment

curl --location '{baseurl}/exhibitors/exhibitor-type-assignment/' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data '{
    "exhibitorfairid": {exhibitorfairid},
    "exhibitortypeid": {exhibitortypeid}
}'

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitor_type_assignment": {
        "exhibitortypeid": 5,
        "exhibitorfairid": 1541
    }
}

HTTP Request

POST {baseurl}/exhibitors/exhibitor-type-assignment/

Parameters

Parameter Type required Default Description
exhibitortypeid numeric true
exhibitorfairid numeric true

Get exhibitor-type assignment

curl --location '{baseurl}/exhibitors/exhibitor-type-assignment/' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitortypes": {
        "exhibitortypeids": "1,2,3",
        "exhibitorfairid": "1234"
    }
}

HTTP Request

GET {baseurl}/exhibitors/exhibitor-type-assignment/

Query Parameters

Parameter Type required Default Description
exhibitorfairid numeric true

Get exhibitor-types

curl --location '{baseurl}/exhibitors/exhibitor-type' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitortypes": {
        "exhibitortypeids": "1,2,3",
        "exhibitorfairid": "1234"
    }
}

HTTP Request

GET {baseurl}/exhibitors/exhibitor-type/

Query Parameters

Parameter Type required Default Description
fairtypeid numeric false
exhibitortypeid numeric false

Get exhibitor-address-verification

curl --location '{baseurl}/exhibitors/{exhibitorid}/adress-verification/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "addressverifications": [
        {
            "date": "April, 20 2023 11:58:00 +0200",
            "fairid": 1,
            "exhibitorid": 1
        }
    ]
}

HTTP Request

GET {baseurl}/exhibitors/{exhibitorid}/adress-verification/

URL Parameters

Parameter Type required Default Description
exhibitorid numeric true

Query Parameters

Parameter Type required Default Description
fairid numeric true

Exhibitors fair assignment

Get exhibitor fair assignments

curl --location --request GET '{baseurl}/exhibitor-fair-assignments/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitor_fair_assignments": [
        {
            "create_date": "April, 11 2016 10:57:00",
            "terms_and_conditions_confirmed": "",
            "change_user": 999,
            "mail_order_confirmation": "",
            "create_user": 35,
            "fairid": 3,
            "exhibitorfairid": 7,
            "userid": "",
            "change_date": "February, 06 2021 19:46:47",
            "exhibitorid": 5
        },
        {
            "create_date": "June, 11 2016 13:33:57",
            "terms_and_conditions_confirmed": "",
            "change_user": 999,
            "mail_order_confirmation": "",
            "create_user": 999,
            "fairid": 3,
            "exhibitorfairid": 15,
            "userid": "",
            "change_date": "June, 11 2016 13:33:57",
            "exhibitorid": 10
        }
    ]
}

HTTP Request

GET {baseurl}/exhibitor-fair-assignments/

Query Parameters

Parameter Type required Default Description
fairtypeid numeric false
fairid numeric false
exhibitorid numeric false
exhibitorfairid numeric false

Create exhibitor fair assignment

curl --location --request POST '{baseurl}/exhibitor-fair-assignments/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "exhibitorid": 1337,
    "fairid": 10
}'

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorfairid": "2610"
}

HTTP Request

POST {baseurl}/exhibitor-fair-assignments/

Parameters

Parameter Type required Default Description
exhibitorid numeric true
fairid numeric true

Delete exhibitor fair assignment

curl --location --request DELETE '{baseurl}/exhibitor-fair-assignments/{exhibitorid}/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorid": "1337"
}

HTTP Request

DELETE {baseurl}/exhibitor-fair-assignments/{exhibitorid}/

URL Parameters

Parameter Type required Default Description
exhibitorid numeric true

Query Parameters

Parameter Type required Default Description
fairid numeric false

Get exhibitor-fair logins

curl --location --request GET '{baseurl}/exhibitor-fair-assignments/{exhibitorfairid}/track-login/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "exhibitorlogins": [
        {
            "date": "October, 27 2022 14:36:44 +0200",
            "id": 77,
            "exhibitorfairid": 1479
        }
    ]
}

HTTP Request

GET {baseurl}/exhibitor-fair-assignments/{exhibitorfairid}/track-login/

URL Parameters

Parameter Type required Default Description
exhibitorfairid numeric true

Exhibitors industry assignment

Get exhibitor industry assignments

curl --location --request GET '{baseurl}/exhibitor-industry/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "exhibitor_industry_assignments": [
        {
            "language": "de_DE",
            "create_date": "February, 25 2022 14:58:53",
            "change_user": 667,
            "industry": "Digital",
            "create_user": 667,
            "exhibitor": "12345",
            "industryid": 73,
            "change_date": "February, 25 2022 14:58:53",
            "exhibitorid": 2299
        },
        {
            "language": "de_DE",
            "create_date": "February, 25 2022 14:58:38",
            "change_user": 667,
            "industry": "Print",
            "create_user": 667,
            "exhibitor": "12345",
            "industryid": 72,
            "change_date": "February, 25 2022 14:58:38",
            "exhibitorid": 2299
        }
    ],
    "error": false
}

HTTP Request

GET {baseurl}/exhibitor-industry/

Query Parameters

Parameter Type required Default Description
exhibitorid numeric true
fairtypeid numeric false
industryid numeric false
language String true "de_DE"
showLockedIndustries Boolean true false

Create exhibitor industry assignment

curl --location --request POST '{baseurl}/exhibitor-industry/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "exhibitorid": 1337,
    "industryid": 20
}'

The above command returns JSON structured like this:

{
    "error": false,
    "industryid": 20,
    "exhibitorid": 1337
}

HTTP Request

POST {baseurl}/exhibitor-industry/

Parameters

Parameter Type required Default Description
exhibitorid numeric true
industryid numeric true

Delete exhibitor industry assignment

curl --location --request DELETE '{baseurl}/exhibitor-industry/{exhibitorid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "industryid": "20",
    "exhibitorid": "1337"
}

HTTP Request

DELETE {baseurl}/exhibitor-industry/{exhibitorid}

URL Parameters

Parameter Type required Default Description
exhibitorid numeric true

Query Parameters

Parameter Type required Default Description
industryid numeric true

Fairs

Get fairs

curl --location --request GET '{baseurl}/fairs/' \
--header '{API-Key}' \

The above command returns JSON structured like this:

{
    "fairs": [
        {
            "location": "",
            "fair": "Karrieremesse 2022",
            "date_from": "2023-11-30 12:00:00",
            "fairid": 2,
            "fair_type_id": 2,
            "shop_closes": "2023-04-30 12:00:00",
            "shop_no_cancellations": "2023-04-26 12:00:00",
            "date_to": "2023-11-30 12:00:00"
        },
        {
            "location": "Mittelerde",
            "fair": "Demofair 2022",
            "date_from": "2022-11-08 12:00:00",
            "fairid": 1,
            "fair_type_id": 1,
            "shop_closes": "2022-03-31 12:00:00",
            "shop_no_cancellations": "2022-03-16 12:00:00",
            "date_to": "2022-11-10 12:00:00"
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/fairs/

Get fair

curl --location --request GET '{baseurl}/fairs/{fairid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "fairs": [
        {
            "location": "",
            "fair": "Karrieremesse 2022",
            "date_from": "2023-11-30 12:00:00",
            "fairid": 2,
            "fair_type_id": 2,
            "shop_closes": "2023-04-30 12:00:00",
            "shop_no_cancellations": "2023-04-26 12:00:00",
            "date_to": "2023-11-30 12:00:00"
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/fairs/{fairid}

URL Parameters

Parameter Type required Default Description
fairid numeric true

Create fair

curl --location --request POST '{baseurl}/fairs/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fair": "Musterfair",
    "fairtypeid": "1",
    "location": "Pforzheim",
    "shop_no_cancellations": "2021-12-31 15:00:00",
    "shop_closes": "2022-01-31 15:00:00",
    "url_logout": "https://...",
    "css": "profairs-default",
    "price_per_voucher": "10.00",
    "date_from": "2022-02-13 00:00:00",
    "date_to": "2022-02-15 00:00:00"
}'

The above command returns JSON structured like this:

{
    "fairid": "27",
    "error": false
}

HTTP request

POST {baseurl}/fairs/

Parameters

Parameter Type required Default Description
fair string false
fairtypeid numeric true
location string false
shop_no_cancellations string false
shop_closes string false
css string true profairs-default
url_logout string false
price_per_voucher string false
date_from string false
date_to string false

Upload file

curl --location --request POST '{baseurl}/fairs/upload/' \
--header 'X-API-Key: {API-Key}' \
--form 'file=@"{img_path}"' \
--form 'fairid="26"' \
--form 'type="motion"'

The above command returns JSON structured like this:

{
    "fairid": "26",
    "error": false
}

HTTP request

POST {baseurl}/fairs/upload/

Parameters

Parameter Type required Default Description
type string true
file binary true
fairid numeric true

Update fair

curl --location --request POST '{baseurl}/fairs/{fairid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: text/plain' \
--data-raw '{
    "fair": "Musterfair2",
    "fairtypeid": "1",
    "location": "Pforzheim",
    "shop_no_cancellations": "2021-12-31 15:00:00",
    "shop_closes": "2022-01-31 15:00:00",
    "url_logout": "https://...",
    "css": "profairs-default",
    "price_per_voucher": "10.00",
    "date_from": "2022-02-13 00:00:00",
    "date_to": "2022-02-15 00:00:00"
}'

The above command returns JSON structured like this:

{
    "fairid": "25",
    "error": false
}

HTTP request

POST {baseurl}/fairs/{fairid}

URL Parameters

Parameter Type required Default Description
fairid string true

Parameters

Parameter Type required Default Description
fair string false
fairtypeid numeric false
location string false
shop_no_cancellations string false
shop_closes string false
css string true profairs-default
url_logout string false
price_per_voucher string false
date_from string false
date_to string false

Delete fair

curl --location --request DELETE '{baseurl}/fairs/{fairid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "fairid": 26,
    "error": false,
    "deleted": true
}

HTTP request

DELETE {baseurl}/fairs/{fairid}

URL Parameters

Parameter Type required Default Description
fairid numeric true

Fair types

Get fair types

curl --location --request GET '{baseurl}/fair_types/' \
--header 'X-API-Key: {API-Key}'

The above command returns JSON structured like this:

{
    "fair_types": [
       {
            "telephone": "+49 12345 6789",
            "fairtypeid": 1,
            "redirect_error": "http://",
            "contactid": "",
            "fair_type": "MyEvent",
            "redirect": "http://"
        },
        {
            "telephone": "",
            "fairtypeid": 4,
            "redirect_error": "http://",
            "contactid": "",
            "fair_type": "DemoFair",
            "redirect": "http://"
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/fair_types/

Query Parameters

Parameter Type required Default Description
fairid numeric false
fair_type_id numeric false
not_fair_type_id numeric false

Create new fair type

curl --location --request POST '{baseurl}/fair_types/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fair_type": "Messetyp",
    "email": "mustermann@musterfirma.com",
    "telephone": "+49 12345 6789",
    "redirect": "https://...",
    "redirect_error": "https://error...",
    "contactid": "1"
}'

The above command returns JSON structured like this:

{
    "fairtypeid": 3,
    "error": false
}

HTTP request

POST {baseurl}/fair_types/

Parameters

Parameter Type required Default Description
fair_type string true
email string true
telephone string true
redirect string true https://
redirect_error string true https://
contactid numeric false

Update fair type

curl --location --request PUT '{baseurl}/fair_types/{fairtypeid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fair_type": "Fairtype 123",
    "email": "mustermann@musterfirma.de",
    "telephone": "+49 12345 6789",
    "redirect": "https://...",
    "redirect_error": "https://error...",
    "contactid": "1"
}'

The above command returns JSON structured like this:

{
    "fairtypeid": 14,
    "error": false
}

HTTP request

PUT {baseurl}/fair_types/{fairtypeid}

URL Parameters

Parameter Type required Default Description
fairtypeid numeric true

Parameters

Parameter Type required Default Description
fair_type string false
email string false
telephone string false
redirect string false https://
redirect_error string false https://
contactid numeric false

Delete fair type

curl --location --request DELETE '{baseurl}/fair_types/{fairtypeid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "fairtypeid": 3,
    "error": false,
    "deleted": true
}

HTTP request

DELETE {baseurl}/fair_types/{fairtypeid}

URL Parameters

Parameter Type required Default Description
fairtypeid numeric true

Industries

Get focus industries

curl --location --request GET '{baseurl}/industries/?fairtypeid=2' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "industries": [
        {
            "language": "de_DE",
            "industry": "Architektur",
            "industryid": 34
        },
        {
            "language": "de_DE",
            "industry": "Betriebswirtschaftslehre",
            "industryid": 35
        },
        {
            "language": "de_DE",
            "industry": "Maschinenbau",
            "industryid": 45
        },
        {
            "language": "de_DE",
            "industry": "Mathematik",
            "industryid": 46
        },
        {
            "language": "de_DE",
            "industry": "Technik- und Management ",
            "industryid": 54
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/industries/

Query Parameters

Parameter Type required Default Description
fairtypeid numeric true
language string false
parentid numeric true 0
exhibitorid numeric false
showlocked boolean false

Get industrie

curl --location --request GET '{baseurl}/industries/2/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "industries": [
        {
            "language": "de_DE",
            "industry": "Webentwicklung",
            "industryid": 2
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/industries/{industryid}

URL Parameters

Parameter Type required Default Description
idustryid numeric true

Query Parameters

Parameter Type required Default Description
language string false />

Create industrie

curl --location --request POST '{baseurl}/industries/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "parentid": 1,
    "fairtypeid": 1,
    "languages": [
        {
            "industry": "Musterbranch",
            "language": "de_DE"
        },
        {
            "industry": "Musterbranch EN",
            "language": "en_GB"
        }
    ]
}'

The above command returns JSON structured like this:

{
    "error": false,
    "industryid": "68"
}

HTTP request

POST {baseurl}/industries/

Parameters

Parameter Type required Default Description
parentid numeric true
messetypid numeric true
languages array of objects true

Languages details

Parameter Type required Default Description
language string true
industry string true

Update industrie

curl --location --request PUT '{basepath}/industries/{idustryid}/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "parentid": 1,
    "fairtypeid": 1,
    "languages": [
        {
            "industry": "Musterbranch Updated",
            "language": "de_DE"
        },
        {
            "industry": "Musterbranch EN Updated",
            "language": "en_GB"
        }
    ]
}'

The above command returns JSON structured like this:

{
    "error": false,
    "industryid": 67
}

HTTP request

PUT {baseurl}/industries/{industryid}

URL Parameters

Parameter Type required Default Description
industryid numeric true

Parameters

Parameter Type required Default Description
parentid numeric true
messetypid numeric true
languages array of objects true

Languages details

Parameter Type required Default Description
language string true
industry string true

Delete industrie

curl --location --request DELETE '{baseurl}/industries/{industryid}/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "industryid": 66,
    "deleted": true
}

HTTP request

DELETE {baseurl}/industries/{industryid}

Parameters

Parameter Type required Default Description
industryid numeric true

Labels

Get labels

curl --location --request GET '{baseurl}/label/  ' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "labels": [
        {
            "de_DE": "Storniert",
            "module": "shop",
            "color": "#d62e2e",
            "en_GB": "Storniert",
            "id": 40
        },
        {
            "de_DE": "Erledigt",
            "module": "shop",
            "color": "#4fdf01",
            "en_GB": "Done",
            "id": 42
        }
    ]
}

HTTP request

GET {baseurl}/label/

Query Parameters

Parameter Type required Default Description
module String true Either "akquise" or "shop"

Set label

curl --location --request POST '{baseur}/label/' \
--header 'X-API-KEY: {baseurl}' \
--header 'Content-Type: text/plain' \
--data-raw '{
    "module": "shop",
    "de_DE": "Test DE",
    "en_GB": "Test EN",
    "color": "#000"
}'

The above command returns JSON structured like this:

{
    "error": false,
    "boothid": "70"
}

HTTP request

POST {baseurl}/label/

Parameters

Parameter Type required Default Description
module String true Either "akquise" or "shop"
de_DE String true
en_DE String true
color String true Color as Hex-Code

Delete label

curl --location --request DELETE '{baseurl}/label/{labelid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP request

DELETE {baseurl}/label/{labelid}

URL Parameters

Parameter Type required Default Description
labelid numeric true

Newsletter

Get newsletter

curl --location --request GET '{baseurl}/newsletter/  ' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "newsletter": [
        {
            "text_html": "<p>*ANREDE*<br />\r\n*VORNAME*<br />\r\n*NAME*<br />\r\n*ID*<br />\r\n*BENUTZERNAME*<br />\r\n*PASSWORT*<br />\r\n*INTERESSE_CODE*<br />\r\n*CATCHALL*</p>\r\n",
            "reciver_pool_type": "1",
            "change_user": 60,
            "regard": "sdds",
            "send_at": "",
            "create_user": 61,
            "sender": "yannick@webcontact.de",
            "text": "fff",
            "change_date": "January, 19 2021 14:59:20",
            "create_date": "February, 15 2018 13:40:47",
            "reciver_pool_contactperson": "",
            "fairid": 4,
            "istest": 0,
            "reciver_pool": "1",
            "id": 1,
            "email_type": "html",
            "reciver_pool_acquisition": ""
        },
        {
            "text_html": "",
            "reciver_pool_type": "1",
            "change_user": 50,
            "regard": "С 30 апреля будет поднята стоимость на доп услуги",
            "send_at": "",
            "create_user": 50,
            "sender": "messeleitung@myevent.de",
            "text": "Уважаемы участники выставки Kubex, с 30 апреля будет поднята цена на допуслуги. Успейте приобрести необходимые услуги в разделе Вашего личного кабинета \"Магазин\" по самой низкой цене.",
            "change_date": "April, 02 2018 09:03:09",
            "create_date": "April, 02 2018 08:35:32",
            "reciver_pool_contactperson": "",
            "fairid": 9,
            "istest": 0,
            "reciver_pool": "1",
            "id": 2,
            "email_type": "html",
            "reciver_pool_acquisition": ""
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/newsletter/

Query Parameters

Parameter Type required Default Description
fairid numeric false
newsletterid numeric false
sended Boolean false
pooltype String false
poolcontact String false
order String false
poolTyp String false

Set newsletter

curl --location --request POST '{baseurl}/newsletter/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairid": 7,
    "sender": "yannick@webcontact.de",
    "regard": "Newsletter über API",
    "text_html": "<h1>Text über API</h1><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>",
    "email_type": "html",
    "pool": "t_1, t_2, a_23, a_32, akquise_32, akquise_2"
}'

The above command returns JSON structured like this:

{
    "newsletter": "25",
    "error": false
}

HTTP request

POST {baseurl}/newsletter/

Parameters

Parameter Type required Default Description
fairid numeric true
sender String true
regard String true
text_html String false
text String false
email_type String true
istest Boolean true false

Delete newsletter

curl --location --request DELETE '{baseurl}/newsletter/{newsletterid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP request

DELETE {baseurl}/newsletter/

Query Parameters

Parameter Type required Default Description
newsletterid numeric true

Publications

Get online medias

curl --location --request GET '{baseurl}/publications/online/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "online_media": [
        {
            "language": "de_DE",
            "logo_preview": "sandbox.profairs2.tom.webcontact.de/downloads/get.cfm?component=com_publikation&method=getAusstellerMesseWebsite&fieldNameFile=logo_vorschau&fieldNameFileName=logo_name&fieldNameFileMimeType=logo_mimetype&aussteller_messen_id=7&type=attachment",
            "description": "Eintrag Onlinemedien (Ihr Text)",
            "video_url": "",
            "logo": "sandbox.profairs2.tom.webcontact.de/downloads/get.cfm?component=com_publikation&method=getAusstellerMesseWebsite&fieldNameFile=logo&fieldNameFileName=logo_name&fieldNameFileMimeType=logo_mimetype&aussteller_messen_id=7&type=attachment",
            "logo_name": "cms-640x640.jpg",
            "contactid": "",
            "logo_mimetype": "image/jpeg",
            "exhibitor_fairid": 7,
            "company_description": ""
        }
    ]
}

HTTP request

GET {baseurl}/publications/online/

Query Parameters

Parameter Type required Default Description
fairid numeric false

Get online media

curl --location --request GET '{baseurl}/publications/online/{exhibitor_fairid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "online_media": [
        {
            "language": "de_DE",
            "logo_preview": "sandbox.profairs2.tom.webcontact.de/downloads/get.cfm?component=com_publikation&method=getAusstellerMesseWebsite&fieldNameFile=logo_vorschau&fieldNameFileName=logo_name&fieldNameFileMimeType=logo_mimetype&aussteller_messen_id=766&type=attachment",
            "description": "ProFairs ist eine webbasierte Eventmanagement-Software für Messen, die die Kommunikation mit den Ausstellern vereinfacht. Das war's.",
            "video_url": "",
            "logo": "sandbox.profairs2.tom.webcontact.de/downloads/get.cfm?component=com_publikation&method=getAusstellerMesseWebsite&fieldNameFile=logo&fieldNameFileName=logo_name&fieldNameFileMimeType=logo_mimetype&aussteller_messen_id=766&type=attachment",
            "logo_name": "logo webcontact.jpg",
            "contactid": "",
            "logo_mimetype": "image/jpeg",
            "exhibitor_fairid": 766,
            "company_description": ""
        }
    ]
}

HTTP request

GET {baseurl}/publications/online/{exhibitor_fairid}

URL Parameters

Parameter Type required Default Description
exhibitor_fairid numeric true

Create online media

curl --location --request POST '{baseurl}/publications/online/' \
--header 'X-API-Key: {API-Key}' \
--form 'file=@"{file_path}"' \
--form 'file_preview=@"{file_path}"' \
--form 'exhibitor_fairid="1337"' \
--form 'language="de_DE"' \
--form 'description="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"' \
--form 'company_description="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"' \
--form 'file_name="{file_name}"' \
--form 'file_mimetype="{file_mimetype}"' \
--form 'video_url="https://..."' \
--form 'contactid="1337"'

The above command returns JSON structured like this:

{
    "language": "de_DE",
    "error": false,
    "exhibitor_fairid": "1337"
}

HTTP request

POST {baseurl}/publications/online/

Parameters

Parameter Type required Default Description
exhibitor_fairid numeric true
language string true
description string true
company_description string true
logo binary true
logo_name string false
video_url string false
contactid numeric true

Shop items

Get items

curl --location --request GET '{baseurl}/shop/items' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "items": [
       {
            "language": "de_DE",
            "locked": false,
            "unit": "",
            "booth-specific": true,
            "categoryid": 39,
            "remarks": "",
            "article_typ_id": 1,
            "description": "",
            "upload": false,
            "sort": 1,
            "introduction": "Buchbar pro Stromabschluss. Wird der Artikel nicht bestellt, wird der Strombverbrauch pauschal berechnet.",
            "title": "Stromverbrauch f&uuml;r einen bestellten Stromanschluss",
            "closedate": "",
            "itemid": 140
        },
        {
            "language": "de_DE",
            "locked": false,
            "unit": "",
            "booth-specific": false,
            "categoryid": 80,
            "remarks": "",
            "article_typ_id": 1,
            "description": "",
            "upload": false,
            "sort": 1,
            "introduction": "Buchbar pro Stromabschluss. Wird der Artikel nicht bestellt, wird der Strombverbrauch pauschal berechnet.",
            "title": "Stromverbrauch f&uuml;r einen bestellten Stromanschluss",
            "closedate": "",
            "itemid": 186
        }
    ]
}

HTTP request

GET {baseurl}/shop/items/

Query Parameters

Parameter Type required Default Description
categoryid numeric false
itemnr string false
language string true de_DE
itemid numeric false
fairid numeric false
enddate string false
showlocked boolean true true
showcoupon boolean false
showcatchall boolean false
showspecial_coupon boolean false
userroleadmin boolean false
userroles string false
exhibitortypes string false

Create item

curl --location --request POST '{baseurl}/shop/items' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type_id": 1,
    "categoryid": 2,
    "itemnr": "AR1234",
    "booth_specific": false,
    "comment": "optional",
    "sort": 10,
    "lock": false,
    "item_units": "10, 20, 30, 50",
    "unit_of_measurement": "cm",
    "upload": false,
    "recommended": true,
    "enddate": "2021-12-31",
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum",
            "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "comment": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum",
            "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "comment": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore"
        }
    ]
}'

The above command returns JSON structured like this:

{
    "error": false,
    "itemid": "371"
}

HTTP request

POST {baseurl}/shop/items/

Parameters

Parameter Type required Default Description
type_id numeric false
categoryid numeric false
itemnr string false
booth_specific boolean true false
comment string false
sort string false
lock boolean true false
end_date string false
item_units string true
unit_of_measurement string true
item_title string false
upload boolean true false
recommended boolean true false
languages array of objects true
crossselling string false
dependence string false
exhibitor_types string false

Languages details

Parameter Type required Default Description
language string true
title string true
introduction string true
description string true
comment string true

Update item

curl --location --request PUT '{baseurl}/shop/items/{itemid)' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type_id": 1,
    "categoryid": 2,
    "itemnr": "AR1234",
    "booth_specific": false,
    "comment": "optional",
    "sort": 10,
    "lock": false,
    "item_units": "10, 20, 30, 50",
    "unit_of_measurement": "cm",
    "upload": false,
    "recommended": true,
    "enddate": "2021-12-31",
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum 123",
            "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "comment": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum 123",
            "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore",
            "comment": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore"
        }
    ]
}'

The above command returns JSON structured like this:

{}

HTTP request

PUT {baseurl}/shop/items/{itemid}

URL Parameters

Parameter Type required Default Description
itemid numeric true

Parameters

Parameter Type required Default Description
type_id numeric false
categoryid numeric false
itemnr string false
booth_specific boolean true false
comment string false
sort string false
lock boolean true false
end_date string false
item_units string false
unit_of_measurement string false
item_title string false
upload boolean true false
recommended boolean true false
languages array ob objects true false
crossselling string false
dependence string false
exhibitor_types string false

Languages details

Parameter Type required Default Description
language string true
title string true
introduction string true
description string true
comment string true

Upload item file

curl --location --request POST '{baseurl}/shop/items/upload/' \
--header 'X-API-Key: {API-Key}' \
--form 'file=@"{file_path}"' \
--form 'file_name="{file_name}"' \
--form 'file_title="Lorum Ipsum"' \
--form 'language="de_DE"' \
--form 'itemid="{itemid}"' \
--form 'type="pdf"'

The above command returns JSON structured like this:

{
    "error": false,
    "itemid": "370"
}

HTTP request

POST {baseurl}/shop/items/upload/

Parameters

Parameter Type required Default Description
file binary true
file_name string true
file_title string true
itemid numeric true
language string true
type string true

Delete item

curl --location --request DELETE '{baseurl}/shop/items/{itemid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "itemid": 363,
    "deleted": true
}

HTTP request

DELETE {baseurl}/shop/items/{itemid}

URL Parameters

Parameter Type required Default Description
itemid numeric true

Copy items

curl --location --request GET '{baseurl}/shop/items/copy-items/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP request

GET {baseurl}/shop/items/copy-items/

Query Parameters

Parameter Type required Default Description
fairid numeric true
fairidTo numeric true
categories list true

Shop categories

Get categories

curl --location --request GET '{baseurl}/shop/categories?fairid={fairid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "categories": [
      {
            "language": "de_DE",
            "infobox_title": "",
            "locked": false,
            "description": "&lt;p&gt;Im Folgenden haben Sie die M&ouml;glichkeit &lt;strong&gt;Sonderwerbeformen &lt;&#x2f;strong&gt;zu bestellen.&amp;nbsp&#x3b;Alle Preise in Euro zuz&uuml;glich der gesetzlichen MwSt.&lt;&#x2f;p&gt;&#xd;&#xa;",
            "category": "Sonderwerbeformen",
            "contactid": "",
            "id": 42,
            "infobox_description": "",
            "parentid": 47
        },
        {
            "language": "de_DE",
            "infobox_title": "",
            "locked": false,
            "description": "&lt;p&gt;Die Standausstattung muss separat gebucht werden.&lt;&#x2f;p&gt;&#xd;&#xa;",
            "category": "Standausstattung",
            "contactid": "",
            "id": 27,
            "infobox_description": "",
            "parentid": 32
        }
    ]
}

HTTP request

GET {baseurl}/shop/categories/

Query Parameters

Parameter Type required Default Description
fairid numeric false
language string true de_DE
show_disabled boolean true false
hide_coupon boolean true true

Get categorie

curl --location --request GET '{baseurl}/shop/categories/{categoryid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "categories": [
        {
            "language": "de_DE",
            "infobox_title": "",
            "locked": false,
            "description": "&lt;p&gt;Die Standausstattung muss separat gebucht werden.&lt;/p&gt;\n",
            "category": "Standausstattung",
            "contactid": "",
            "id": 27,
            "infobox_description": "",
            "parentid": 32
        }
    ]
}

HTTP request

GET {baseurl}/shop/categories/{categoryid}

URL Parameters

Parameter Type required Default Description
categoryid string true

Query Parameters

Parameter Type required Default Description
language string false
fairid numeric false

Create categroie

curl --location --request POST '{baseurl}/shop/categories/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "parentid": 0,
    "contactid": 12,
    "permissions_group_id": 1,
    "fairid": 7,
    "show_coupons_link": true,
    "order": 10,
    "lock": false,
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum",
            "infobox_headline": "Lorem Ipsum",
            "infobox_description": "Lorem Ipsum"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum",
            "infobox_headline": "Lorem Ipsum",
            "infobox_description": "Lorem Ipsum"
        }
    ]
}
'

The above command returns JSON structured like this:

{
    "categoryid": "171",
    "error": false
}

HTTP request

POST {baseurl}/shop/categories/

Parameters

Parameter Type required Default Description
parentid numeric false 0
contactid numeric false
permissions_group_id numeric false
fairid numeric false
show_coupons_link boolean false false
order numeric false
lock boolean false false
languages array of objects false

Languages details

Parameter Type required Default Description
language string true
title string true
description string true
infobox_headline string true
infobox_description string true

Update categorie

curl --location --request PUT '{baseurl}/shop/categories/{categoryid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "parentid": 0,
    "contactid": 12,
    "permissions_group_id": 1,
    "fairid": 7,
    "show_coupons_link": true,
    "order": 10,
    "lock": false,
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum",
            "infobox_headline": "Lorem Ipsum",
            "infobox_description": "Lorem Ipsum"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum",
            "infobox_headline": "Lorem Ipsum",
            "infobox_description": "Lorem Ipsum"
        }
    ]
}
'

The above command returns JSON structured like this:

{
    "categoryid": 166,
    "error": false
}

HTTP request

PUT {baseurl}/shop/categories/{categoryid}

URL Parameters

Parameter Type required Default Description
categoryid numeric true

Parameters

Parameter Type required Default Description
parentid numeric false 0
contactid numeric false
permissions_group_id numeric false
fairid numeric false
show_coupons_link boolean false false
order numeric false
lock boolean false false
languages array of objects false

Languages details

Parameter Type required Default Description
language string false
title string false
description string false
infobox_headline string false
infobox_description string false

Delete categorie

curl --location --request DELETE '{baseurl}/shop/categories/{categoryid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "categoryid": 170,
    "error": false,
    "deleted": true
}

HTTP request

DELETE {baseurl}/shop/categories/{categoryid}

URL Parameters

Parameter Type required Default Description
categoryid numeric true

Shop variants

Get variants

curl --location --request GET '{baseurl}/shop/variants?itemid={itemid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "variants": [
        {
            "language": "de_DE",
            "variantid": 593,
            "price": 39.0,
            "amount": "",
            "orders": "",
            "title": "weiß - T06w",
            "text": "",
            "itemid": 337
        },
        {
            "language": "de_DE",
            "variantid": 594,
            "price": 39.0,
            "amount": "",
            "orders": "",
            "title": "schwarz - T06s",
            "text": "",
            "itemid": 337
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/shop/variants/

Query Parameters

Parameter Type required Default Description
itemid numeric true
locked boolean true false
ordered_variants boolean true false

Get variant

curl --location --request GET '{baseurl}/shop/variants/{variantid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "variants": [
        {
            "language": "de_DE",
            "price": 39.0,
            "amount": "",
            "orders": "",
            "title": "weiß - T06w",
            "text": "",
            "id": 593,
            "itemid": 337
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/shop/variants/{variantid}

URL Parameters

Parameter Type required Default Description
variants_id numeric true

Query Parameters

Parameter Type required Default Description
locked boolean true false
ordered_variants boolean true false

Create variant

curl --location --request POST '{baseurl}/shop/variants/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "itemid": 1337,
    "price": 100,
    "number_of_pieces": 999,
    "lock": false,
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum"
        }
    ]
}
'

The above command returns JSON structured like this:

{
    "variantid": "617",
    "error": false
}

HTTP request

POST {baseurl}/shop/variants/

Parameters

Parameter Type required Default Description
itemid numeric true
number_of_pieces numeric true
price numeric true
lock boolean true false
languages any true

Upload files

curl --location --request POST '{baseurl}/shop/variants/upload/' \
--header 'X-API-Key: {API-Key}' \
--form 'file=@"{file_path}"' \
--form 'file_name="{file_name"' \
--form 'file_title="{file_title}"' \
--form 'variantid="{variantid}"' \
--form 'language="de_DE"'

The above command returns JSON structured like this:

{
    "variantid": "616",
    "updated": true,
    "error": false
}

HTTP request

POST {baseurl}/shop/variants/upload/

Parameters

Parameter Type required Default Description
file binary true
file_name string true
file_title string true
variantsid numeric true
language string true

Update variant

curl --location --request PUT '{baseurl}/shop/variants/{variantid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "itemid": 1337,
    "price": 100,
    "number_of_pieces": 999,
    "lock": false,
    "languages": [
        {
            "language": "de_DE",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum"
        },
        {
            "language": "en_GB",
            "title": "Lorem Ipsum",
            "description": "Lorem Ipsum"
        }
    ]
}
'

The above command returns JSON structured like this:

{
    "variantid": 1337,
    "error": false
}

HTTP request

PUT {baseurl}/shop/variants/{variantid}

URL Parameters

Parameter Type required Default Description
variantid numeric true

Parameters

Parameter Type required Default Description
itemid numeric true
number_of_pieces numeric true
price numeric true
lock boolean true false
languages any true

Delete variant

curl --location --request DELETE '{baseurl}/shop/variants/{variantid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{}

HTTP request

DELETE {baseurl}/shop/variants/{variantid}

URL Parameters

Parameter Type required Default Description
variantid numeric true

Shop orders

Get orders

curl --location --request GET '{baseurl}/shop/orders/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "orders": [
        {
            "orderid": 2674,
            "variantid": 661,
            "price": 0.0,
            "amount": 20.0,
            "canceled": false,
            "labelid": "",
            "remarks": "",
            "shippingdate": "March, 28 2022 00:00:00",
            "boothid": 0,
            "exhibitorfairid": 2604
        },
        {
            "orderid": 2670,
            "variantid": 74,
            "price": 0.0,
            "amount": 1.0,
            "canceled": false,
            "labelid": "",
            "remarks": "CatchAllGutschein-Bestellung",
            "shippingdate": "March, 11 2022 00:00:00",
            "boothid": 0,
            "exhibitorfairid": 751
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/shop/orders/

Query Parameters

Parameter Type required Default Description
language string true
order boolean true true Sorts the orders by the modification date
hideVouchers boolean false Removes all ordered vouchers
fairid numeric false
usergroupid numeric false

Get order

curl --location --request GET '{baseurl}/shop/orders/{orderid}/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "orders": [
        {
            "orderid": 2674,
            "variantid": 661,
            "price": 0.0,
            "amount": 20.0,
            "canceled": false,
            "labelid": "",
            "remarks": "",
            "shippingdate": "March, 28 2022 00:00:00",
            "boothid": 0,
            "exhibitorfairid": 2604
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/shop/orders/{orderid}

URL Parameters

Parameter Type required Default Description
orderid numeric true

Query Parameters

Parameter Type required Default Description
language string true
order boolean true true Sorts the orders by the modification date
hideVouchers boolean false Removes all ordered vouchers
fairid numeric false
usergroupid numeric false

Create order

curl --location --request POST '{baseurl}/shop/orders/' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \\
--data-raw '{
    "variantid": 1337,
    "amount": 10,
    "price": "199.00",
    "exhibitorfairid": 2900,
    "boothid": 1337,
    "remarks": "Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ",
    "shippingdate": "2022-03-17 14:00:00",
    "canceled": 0
}'

The above command returns JSON structured like this:

{
    "orderid": "2677",
    "error": false
}

HTTP request

POST {baseurl}/shop/orders/

Parameters

Parameter Type required Default Description
variantid numeric true
amount numeric true
price numeric true
exhibitorfairid numeric true
boothid numeric false
remarks String false
shippingdate Date false
unhide boolean true true The order will be shown in the exhibitor area
canceled boolean true false

Update order

curl --location --request PUT '{baseurl}/shop/orders/{orderid}' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \\
--data-raw '{
    "amount": 5,
    "price": 1000,
    "boothid": 7331,
    "remarks": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna",
    "shippingdate": "2022-03-17 17:30:00",
    "unhide": false,
    "canceled": 0
}'

The above command returns JSON structured like this:

{
    "orderid": "2675",
    "error": false
}

HTTP request

PUT {baseurl}/shop/orders/

URL Parameters

Parameter Type required Default Description
orderid numeric true

Parameters

Parameter Type required Default Description
amount numeric false
price numeric false
boothid numeric false
remarks String false
shippingdate Date false
unhide boolean false The order will be shown in the exhibitor area
canceled boolean false

Delete order

curl --location --request DELETE '{baseurl}/shop/orders/{orderid}' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "orderid": "2676",
    "error": false
}

HTTP request

DELETE {baseurl}/shop/orders/{orderid}

URL Parameters

Parameter Type required Default Description
orderid numeric true

Assign label to order

curl --location '{baseurl}/shop/order/assign-label' \
--header 'X-API-KEY: {API-Key}' \
--header 'Content-Type: application/json' \
--data '{
    "labelid": {labelid},
    "orderid: {orderid}
}'

The above command returns JSON structured like this:

{
    "error": false,
    "orderid": 47,
    "labelid": "23, 3"
}

HTTP request

POST {baseurl}/shop/order/assign-label

Parameters

Parameter Type required Default Description
labelid list true empty to delete assigned labels
orderid list true

Shop discounts

Get discount

curl --location --request GET '{baseurl}/shop/discounts/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "discount": [
        {
            "exhibitorgroupid": 123,
            "variantid": 321,
            "discount": 50
        },
        {
            "exhibitorgroupid": 1337,
            "variantid": 7331,
            "discount": 100
        }
    ]
}

HTTP request

GET {baseurl}/shop/discounts/

Query Parameters

Parameter Type required Default Description
exhibitorgroupid numeric true
variantid numeric true

Create discount

curl --location --request POST '{baseurl}/shop/discounts/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \\

--data-raw '{
    "exhibitorgroupid": "1337",
    "variantid": "7331",
    "discount": "100"
}'

The above command returns JSON structured like this:

{
    "error": false
}

HTTP request

POST {baseurl}/shop/discounts/

Parameters

Parameter Type required Default Description
variantid numeric true
exhibitorgroupid numeric true
discount numeric true

Delete order

curl --location --request DELETE '{baseurl}/shop/discounts/' \
--header 'X-API-KEY: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false
}

HTTP request

DELETE {baseurl}/shop/discounts/

Query Parameters

Parameter Type required Default Description
exhibitorgroupid numeric true
variantid numeric true

Texts

Get text categories

curl --location --request GET '{baseurl}/text/categories/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "categories": [
        {
            "de_DE": "Automatischer Mailversand Bestellbestätigung",
            "en_GB": "Automatischer Mailversand Bestellbestätigung",
            "id": 64
        },
        {
            "de_DE": "Einstellungen Einleitung",
            "en_GB": "Einstellungen Einleitung",
            "id": 63
        }
    ]
}

HTTP request

GET {baseurl}/text/categories/

Get texts

curl --location --request GET '{baseurl}/text/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "texts": [
        {
            "language": "de_DE",
            "locked": false,
            "change_user": 667,
            "date_from": "February, 24 2022 00:00:00",
            "create_user": 667,
            "categorieid": 65,
            "change_date": "February, 24 2022 16:10:36",
            "create_date": "February, 24 2022 16:10:36",
            "fairtypeid": 1,
            "introduction": "<p>Danke für Ihre Anmeldung!</p>",
            "title": "Test web://contact",
            "id": 137,
            "date_to": "September, 21 2022 00:00:00"
        },
        {
            "language": "de_DE",
            "locked": false,
            "change_user": 666,
            "date_from": "July, 15 2020 00:00:00",
            "create_user": 666,
            "categorieid": 35,
            "change_date": "August, 27 2021 16:02:32",
            "create_date": "August, 27 2021 16:02:32",
            "fairtypeid": 1,
            "introduction": "<p>Hier könnte ein Einleitungstext für die Job-Wall stehen, u.a. auch was für Dateitypen hochgeladen werden und in welcher Auflösung (DPI, Farbraum, ...)</p>\r\n",
            "title": "Stellenausschreibungen Job-Wall",
            "id": 122,
            "date_to": "December, 31 2030 00:00:00"
        },
    ],
    "error": false
}

HTTP request

GET {baseurl}/text/

Query Parameters

Parameter Type required Default Description
fairtypeid numeric true
language string true
fairid numeric false
categorieid numeric false

Set text

curl --location --request POST '{baseurl}/text/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairtypeid": 1,
    "title": "Text über API",
    "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. ",
    "categorie": 1,
    "date_from": "2022-04-04 10:00:00",
    "date_to": "2023-04-04 10:00:00",
    "language": "de_DE",
    "locked": 0
}'

The above command returns JSON structured like this:

{
    "textid": "142",
    "error": false
}

HTTP request

POST {baseurl}/text/{textid}

Parameters

Parameter Type required Default Description
fairtypeid numeric true
title String true
introduction String true
categorie numeric true
date_from date true
date_to date true
language String true

Update text

curl --location --request PUT '{baseurl}/text/{textid}' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "fairtypeid": 1,
    "title": "Text über API",
    "introduction": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. ",
    "categorie": 1,
    "date_from": "2022-04-04 10:00:00",
    "date_to": "2023-04-04 10:00:00",
    "language": "en_GB",
    "locked": 0
}'

The above command returns JSON structured like this:

{
    "textid": "142",
    "error": false
}

HTTP request

PUT {baseurl}/text/{textid}

URL Parameters

Parameter Type required Default Description
textid numeric true

Parameters

Parameter Type required Default Description
fairtypeid numeric false
title String false
introduction String false
categorie numeric false
date_from date false
date_to date false
language String false

Delete text

curl --location --request DELETE '{baseurl}/text/{textid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "textid": "142",
    "error": false
}

HTTP request

DELETE {baseurl}/text/{textid}

URL Parameters

Parameter Type required Default Description
textid numeric true

Users

Get users

curl --location --request GET '{baseurl}/user/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "users": [
        {
            "group": "admin",
            "locked": false,
            "username": "alf",
            "firstname": "Thomas",
            "id": 59,
            "name": "Alf"
        },
        {
            "group": "scanner",
            "locked": false,
            "username": "scanner",
            "firstname": "scanner",
            "id": 42,
            "name": "barcode"
        }
    ]
}

HTTP request

GET {baseurl}/user/

Get user

curl --location --request GET '{baseurl}/user/{userid}' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "users": [
        {
            "group": "admin",
            "locked": false,
            "username": "alf",
            "firstname": "Thomas",
            "id": 59,
            "name": "Alf"
        }
    ]
}

HTTP request

GET {baseurl}/user/{userid}

URL Parameters

Parameter Type required Default Description
userid numeric true

Set user

curl --location --request POST '{baseurl}/user/' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "salutation": "Herr",
    "title": "Dr.",
    "firstname": "Max",
    "name": "Mustermann",
    "username": "username",
    "password": "password",
    "email": "max-mustermann@gmail.com",
    "telephone": "+49 12345 123",
    "address": "",
    "printnode_printer_id": "123456789",
    "printnode_api_key": "987654321",
    "group": 1
}'

The above command returns JSON structured like this:

{
    "error": false,
    "userid": 1337
}

HTTP request

POST {baseurl}/user/

Parameters

Parameter Type required Default Description
salutation String true
firstname String true
name String true
username String true
password String true
email String true
group numeric true
locked boolean true false
title String false
telephone String false
address String false
printnode_printer_id String false
printnode_api_key String false

Delete user

curl --location --request DELETE '{baseurl}/user/{userid}/' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "usersid": 1337
}

HTTP request

DELETE {baseurl}/user/{userid}

URL Parameters

Parameter Type required Default Description
userid numeric true

Get user-groups

curl --location --request GET '{baseurl}/groups' \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "error": false,
    "users": [
        {
            "group": "admin",
            "create_date": "March, 17 2016 11:02:15",
            "change_user": 999,
            "create_user": 999,
            "fairid": 0,
            "id": 1,
            "change_date": "March, 17 2016 11:02:15"
        },
        {
            "group": "Admin",
            "create_date": "March, 18 2016 14:49:36",
            "change_user": "",
            "create_user": 999,
            "fairid": 1,
            "id": 3,
            "change_date": ""
        }
    ]
}

HTTP request

GET {baseurl}/groups

Query Parameters

Parameter Type required Default Description
fairid numeric false

Set user-groups

curl --location --request POST '{baseurl}/groups' \
--header 'X-API-Key: {API-Key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "group": "API Group",
    "fairid": 7,
    "shipping": true
}'

The above command returns JSON structured like this:

{
    "users_group_id": "31",
    "error": false
}

HTTP request

POST {baseurl}/groups

Parameters

Parameter Type required Default Description
group String true
shipping Boolean true false
fairid numeric false

Get shop categories by user

curl --location --request GET '{baseurl}/user/{userid}/shop_categories/ \
--header 'X-API-Key: {API-Key}' \

The above command returns JSON structured like this:

{
    "shop_categories": [
        {
            "create_date": "February, 25 2022 15:29:30",
            "locked": false,
            "change_user": 666,
            "parentid": 0,
            "fair": "Testmesse 2022",
            "usergroupid": 28,
            "create_user": 666,
            "id": 194,
            "categorie": "Standmöbel",
            "change_date": "February, 25 2022 16:21:32",
            "contactid": ""
        }
    ],
    "error": false
}

HTTP request

GET {baseurl}/user/{userid}/shop_categories/

URL Parameters

Parameter Type required Default Description
userid numeric true

Query Parameters

Parameter Type required Default Description
language String true

Hall planning

Missing values

If a value in the database is optional and missing for a record requested via the API, then the key of the value is simply not returned instead of being null.

Get standrequest

curl --location '{baseurl}/hall_planning/standrequest?exhibitor_id=1&fair_id=5' \
--header 'x-API-Key: {API-Key}'

The above command returns JSON structured like this:

{
    "data": [
        {
            "booth_width": 10,
            "placement_request": {
                "test": "Some key value pair in the database regarding the placement."
            },
            "employee": {
                "id": 44,
                "first_name": "Hazel",
                "last_name": "Burger"
            },
            "booth_depth": 2,
            "status": "replanning",
            "stand_request": {
                "test": "Some key value pair in the database.",
                "A4444 (declined)": "This looks nice, but it is not mine.",
                "A2 (declined)": "I don't want any other proposals."
            },
            "booth_type": 3,
            "id": 3,
            "main_industry": {
                "name": "Andere Komponenten für Antriebstechnik",
                "id": 206
            },
            "exhibitor": {
                "exhibitor_id": 1,
                "fair_id": 5,
                "name": "web://contact GmbH"
            }
        }
    ],
    "error": false,
    "warning": {},
    "error_message": {}
}

This endpoint returns the data of the stand requests.

HTTP Request

GET {baseurl}/hall_planning/standrequest

Query Parameters

The exhibitor_id and fair_id are optional parameters. If they are set, the endpoint returns all stand requests that are assigned to the respective exhibitor and fair. If they are not set, all stand requests will be returned.

Parameter Type required Default Description
exhibitor_id numeric false If this is set, fair_id has to be set as well.
fair_id numeric false If this is set, exhibitor_id has to be set as well
location_id numeric false If this is set, only stand requests from this location will be returned.

Description

This data must be sent back to profairs in addition to the planned stand:

  1. stand_request_id, to which the planned stand refers to
  2. exhibitor_id
  3. fair_id

status

The status is an enum, which can have the following values:

status meaning
initial_planning The stand request is assigned to at least one stand proposal that is not locked.
replanning The stand request is not assigned to a stand proposal that is not locked.

In summary, if the status is set to initial_planning, the person planning has most likely never touched this standrequest. If the status is set to replanning, the person planning probably already touched this request, but still has to do something.

stand_request / placement_request

When planning the fair, you might encounter things, that cant be processed automatically. One example could be the reason, the exhibitor rejected your stand proposal. This kind of information is returned as key value pair in the keys placement_request and stand_request.

It is recommended to show these key value pairs in your interface as e.g. additional information. This enables the person planning everything to have all the information they need.

employee

If an employee in your company is assigned to the returned exhibitor, their first_name, last_name and id will be returned additionally to the exhibitor data. If no employee is assigned to the exhibitor, the field employee will not be returned.

"employee": {
    "id": 44,
    "first_name": "Hazel",
    "last_name": "Burger"
},

Response Codes

code meaning
200 The request was successful.
406 The request was not successful because probably the data was sent to the API incorrectly.

Get industrie

curl --location '{baseurl}/hall_planning/standrequest/industrie/4' \
--header 'x-API-Key: {API-Key}'

The above command returns JSON structured like this:

{
    "data": {
        "parent_industrie": {
            "name": "Onlinemarketing",
            "id": 5
        },
        "child_industrie_list": [
            {
                "name": "Hagelsalz",
                "id": 61
            }
        ]
    },
    "error": false
}

{baseurl}/hall_planning/standrequest/industrie/{branchen_id}

With this endpoint you can get the parent and child industries of an industry. It is meant that the main_industry_id from the stand requests is used here. Here the branchen_id is mandatory.

Response Codes

code meaning
200 The request was successful.
406 The request was not successful because probably the data was sent to the API incorrectly.

Get standstatus

curl --location '{baseurl}/hall_planning/standstatus/63' \
--header 'x-API-Key: {API-Key}'

The above command returns JSON structured like this:

{
    "data": [
        {
            "booth_number": "63",
            "status": "offen"
        }
    ],
    "error": false
}

{baseurl}/hall_planning/standstatus {baseurl}/hall_planning/standstatus/{booth_number}

The booth_number is optional as for the stand requests. If none is given, the booth status of each booth is returned.

Usually there is only one booth for each booth number. But it can also happen that there are several.

The status is an enum, which can have the following values:

status meaning
offen A stand object is not assigned to an exhibitor and there is no associated stand proposal for the stand object that is set to open.
zugestimmt A stand object is assigned to an exhibitor.
abgelehnt A stand object is not assigned to an exhibitor. There is no associated stand proposal for the stand object that is set to open or agreed, but there is at least one stand proposal that is set to rejected.

Response Codes

code meaning
200 The request was successful.
406 The request was not successful because probably the data was sent to the API incorrectly.

Make stand proposal

curl --location '{baseurl}/hall_planning/standproposal?debug' \
--header 'x-API-Key: {API-Key}' \
--data '{
    "booth_width": 10,
    "booth_depth": 2,
    "booth_number": "A4",
    "booth_type": 1,
    "stand_request_id": 1,
    "exhibitor_id": 1,
    "fair_id": 2,
    "stand_assignment": 1,
    "status": "open",
    "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."
}'

The above command returns JSON structured like this:

{
    "data": {
        "stand_proposal_id": 13,
        "internal_args": {
            "standwunsch": 1,
            "ausstellerid": 1,
            "beschreibung": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.",
            "standtyp": 1,
            "standnummer": "A4",
            "standgroesse": 20,
            "status": "open",
            "standzuordnung": 1,
            "standlaenge": 2,
            "standbreite": 10,
            "user": 1337,
            "messeid": 2
        }
    },
    "error": false,
    "warning": {}
}

{baseurl}/hall_planning/standproposal?debug

This endpoint creates a new stand proposal. One must specify:

Some of the values can be fetched from this endpoint.

In order for the associated stand request to disappear from the list of stand requests with the transfer of the scheduled stand, a getStandRequests would have to be executed again after the successful transfer of the stand to profairs.

The proposal was not made

It is possible that no stand proposal is made. In this case the response code 200 will be returned. This happens under the following conditions:

Request Body

key required type default
booth_width [x] numeric
booth_depth [x] numeric
booth_number [x] string
booth_type [x] integer
stand_request_id [x] integer
exhibitor_id [x] integer
fair_id [x] integer
stand_assignment [ ] integer
description [ ] string
status [ ] enum('accepted', 'declined', 'open', 'archived') open
location_id [ ] integer

Whether the values have the correct data type should be validated, with a meaningful error message.

Query Params

debug

If debug was set as a parameter, this endpoint additionally returns the arguments as they were used internally.

The endpoint runs checks before making the proposal, if both exhibitor_id and fair_id exist in the system. If not no proposal will be made. However, if debug is set to true, the proposal will be made regardless, and the error messages from the checks will be warnings instead.

Response Codes

code meaning
201 The request was successful and a stand proposal was made.
200 The request was successful, but for some reason no stand proposal was made.
406 The request was not successful because probably the data was sent to the API incorrectly.

Upload Floorplan

curl --location '{baseurl}/hall_planning/floorplan' -X POST \
--header 'x-API-Key: {API-Key}' \
--data '{
    "fairid": 1,
    "b64svg": fkhdfh73hf92fajkdfhaslkhfKLHHUIhjhh9h9,
}'

The above command returns JSON structured like this:

{
  "data": {
    "url": "https://sandbox.profairs.de/shared/sandbox/floorplans/svg/1.svg"
  },
  "error": false,
  "error_message": {}
}

HTTP request

POST {baseurl}/hall_planning/floorplan/

Request Body

key required type default
fairid [x] integer
b64svg or svgUrl [x] string
dryRun [ ] boolean false
location_id [ ] integer

Description

The b64svg is the base64 encoded svg file. The svg file should be a floorplan of the fair. The individual booths can be either a group or a path. If the booth is a group, it will be automatically converted to a path, to ensure the hover and fill functionality works. This will result in a potential loss of detail (e.g. multi colored fields inside the group of the booth). A workaround would be to overlay the structure that should be converted, with another group that is more detailed.

If the svg file is too big, the b64 encoded string could be error prone. In this case, the svg file can be uploaded to a server and the url can be sent as svgUrl instead of b64svg.

The booth should be marked with the booth number as an id. For this either use the custom attribute cvjs:roomId or data-stand-id. The booth number should be the same as the booth number in the database.

<?xml version="1.0" encoding="utf-8"?>
<svg width="920" height="750" viewBox="0 0 920 750">
      <g cvjs:roomId="A2498">
        <title>0000131</title>
        <line x1="290" y1="230" x2="340" y2="230" stroke="#ff0000" stroke-width="10.00mm" style="position:absolute; z-index:0.000000" />
        <line x1="340" y1="230" x2="340" y2="270" stroke="#ff0000" stroke-width="10.00mm" style="position:absolute; z-index:0.000000" />
        <line x1="340" y1="270" x2="290" y2="270" stroke="#ff0000" stroke-width="10.00mm" style="position:absolute; z-index:0.000000" />
        <line x1="290" y1="270" x2="290" y2="230" stroke="#ff0000" stroke-width="10.00mm" style="position:absolute; z-index:0.000000" />
      </g>
</svg>

This would be converted to:

<?xml version="1.0" encoding="utf-8"?>
<svg width="920" height="750" viewBox="0 0 920 750">
  <path cvjs:area="20" cvjs:node="1" cvjs:roomId="A2498" stroke="red" stroke-width=".616" d="M472.826 375h81.522v65.217h-81.522V375" class="ZW cvjs_nodes cvjs_A2498" />
  <text x="474.457" y="376.63" stroke="none" dominant-baseline="baseline" font-family="Arial" font-size="13.043" style="position:absolute;z-index:0" transform="matrix(1 0 0 -1 0 753.26)">A2498</text>
</svg>

The things this endpoint does are as follows:

  1. It sanitizes the svg file (for example removing all script tags).
  2. It scales the svg to an appropriate size (the default is 1500px).
  3. It fixes the closes the paths if possible, and converts groups to paths (only the booth groups and paths like described above).
  4. It uses svgo to minimize and optimize the svg.

Additional small things that are done are:

Important to keep in mind is, that the processing can break the svg. To check just go to the returned url and take a look if it is broken.