curl --request POST \
--url https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"name": "<string>",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_fields": {},
"translated_fields": [
{
"parent_field_internal_name": "<string>",
"translated_language": "<string>",
"value": "<unknown>"
}
]
}
'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create"
payload = {
"name": "<string>",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_fields": {},
"translated_fields": [
{
"parent_field_internal_name": "<string>",
"translated_language": "<string>",
"value": "<unknown>"
}
]
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
account_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
custom_fields: {},
translated_fields: [
{
parent_field_internal_name: '<string>',
translated_language: '<string>',
value: '<unknown>'
}
]
})
};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'account_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'custom_fields' => [
],
'translated_fields' => [
[
'parent_field_internal_name' => '<string>',
'translated_language' => '<string>',
'value' => '<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"friendly_id": "EXH-7",
"friendly_id_raw": 7,
"name": "InnovateTech Labs",
"description": "Showcasing next-generation event technology solutions.",
"logo_image_url": "https://cdn.sessionboard.com/logos/innovatetech.png",
"address_city": "Chicago",
"address_state": "IL",
"address_coutnry": "US",
"website_url": "https://www.innovatetech.example.com",
"created_at": "2024-01-12T10:00:00Z",
"updated_at": "2024-03-01T14:00:00Z",
"custom_fields": [],
"translated_fields": [],
"contacts": []
}Create an exhibitor
Create a new exhibitor in an event. Requires the write:exhibitors scope. Subject to rate limiting (100 req/15min) and daily write quota (10,000/day per token).
curl --request POST \
--url https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"name": "<string>",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_fields": {},
"translated_fields": [
{
"parent_field_internal_name": "<string>",
"translated_language": "<string>",
"value": "<unknown>"
}
]
}
'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create"
payload = {
"name": "<string>",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_fields": {},
"translated_fields": [
{
"parent_field_internal_name": "<string>",
"translated_language": "<string>",
"value": "<unknown>"
}
]
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
account_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
custom_fields: {},
translated_fields: [
{
parent_field_internal_name: '<string>',
translated_language: '<string>',
value: '<unknown>'
}
]
})
};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'account_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'custom_fields' => [
],
'translated_fields' => [
[
'parent_field_internal_name' => '<string>',
'translated_language' => '<string>',
'value' => '<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/exhibitors/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"friendly_id": "EXH-7",
"friendly_id_raw": 7,
"name": "InnovateTech Labs",
"description": "Showcasing next-generation event technology solutions.",
"logo_image_url": "https://cdn.sessionboard.com/logos/innovatetech.png",
"address_city": "Chicago",
"address_state": "IL",
"address_coutnry": "US",
"website_url": "https://www.innovatetech.example.com",
"created_at": "2024-01-12T10:00:00Z",
"updated_at": "2024-03-01T14:00:00Z",
"custom_fields": [],
"translated_fields": [],
"contacts": []
}Authorizations
Organization API token. Generate from Organization Settings → API Tokens.
Path Parameters
The event ID.
Body
Exhibitor name. Required if account_id is not provided.
Existing account ID to link, instead of creating a new account. Required if name is not provided. This is also how a group takes its second role: pass the account_id of a record that is already a sponsor or an exhibitor and it holds both roles on this event, under the same id. Repeating a link it already holds is a no-op.
Custom field values keyed by field internal name.
For number, currency, and percent fields, an empty
string ("") clears the stored value — identical to
sending null. 0 and "0" store an actual zero.
For checkbox fields, send boolean true or false.
On read, a checked box serializes as the string "Yes", an
explicitly unchecked one as "No", and a box that was never
set as null.
Fields owned by an integration (for example
swoogo_session_id, cvent_session_id,
visit_session_id) are hydrated by the connector and
reject writes with 400 FIELD_READ_ONLY, naming the
field in details.field. Omit them from custom_fields.
Language variants to write using the same shape returned on reads. Omit this key on update to leave existing translations unchanged.
Show child attributes
Show child attributes
Response
Exhibitor created
An exhibitor associated with an event.
Country (note: field name contains a known typo preserved for backwards compatibility).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Deep link to this entity in the Sessionboard admin UI.

