Update a contact
curl --request PUT \
--url https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"updated_at": "2023-11-07T05:31:56Z",
"first_name": "<string>",
"last_name": "<string>",
"email": "[email protected]",
"company": "<string>",
"title": "<string>",
"phone": "<string>",
"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}/contacts/{contactId}"
payload = {
"updated_at": "2023-11-07T05:31:56Z",
"first_name": "<string>",
"last_name": "<string>",
"email": "[email protected]",
"company": "<string>",
"title": "<string>",
"phone": "<string>",
"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.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updated_at: '2023-11-07T05:31:56Z',
first_name: '<string>',
last_name: '<string>',
email: '[email protected]',
company: '<string>',
title: '<string>',
phone: '<string>',
custom_fields: {},
translated_fields: [
{
parent_field_internal_name: '<string>',
translated_language: '<string>',
value: '<unknown>'
}
]
})
};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId}', 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}/contacts/{contactId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'updated_at' => '2023-11-07T05:31:56Z',
'first_name' => '<string>',
'last_name' => '<string>',
'email' => '[email protected]',
'company' => '<string>',
'title' => '<string>',
'phone' => '<string>',
'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}/contacts/{contactId}"
payload := strings.NewReader("{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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("PUT", 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.put("https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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}/contacts/{contactId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"friendly_id": "SPK-42",
"full_name": "Dr. Jane Smith",
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"created_at": "2023-11-01T10:00:00Z",
"updated_at": "2024-02-15T16:30:00Z",
"photo_url": "https://cdn.sessionboard.com/photos/jane-smith.jpg",
"company_name": "State University",
"title": "Professor of Computer Science",
"about": "Dr. Smith is a leading researcher in distributed systems.",
"address_city": "Austin",
"address_state": "TX",
"address_country": "US",
"honorific": "Dr.",
"pronouns": "she/her",
"topic_expertise": "Distributed Systems, Cloud Computing",
"custom_fields": [],
"translated_fields": []
}Event — Contacts
Update a contact
Update an existing contact. Requires the write:contacts scope. Optionally send updated_at for optimistic concurrency control.
PUT
/
v1
/
event
/
{eventId}
/
contacts
/
{contactId}
Update a contact
curl --request PUT \
--url https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"updated_at": "2023-11-07T05:31:56Z",
"first_name": "<string>",
"last_name": "<string>",
"email": "[email protected]",
"company": "<string>",
"title": "<string>",
"phone": "<string>",
"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}/contacts/{contactId}"
payload = {
"updated_at": "2023-11-07T05:31:56Z",
"first_name": "<string>",
"last_name": "<string>",
"email": "[email protected]",
"company": "<string>",
"title": "<string>",
"phone": "<string>",
"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.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updated_at: '2023-11-07T05:31:56Z',
first_name: '<string>',
last_name: '<string>',
email: '[email protected]',
company: '<string>',
title: '<string>',
phone: '<string>',
custom_fields: {},
translated_fields: [
{
parent_field_internal_name: '<string>',
translated_language: '<string>',
value: '<unknown>'
}
]
})
};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId}', 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}/contacts/{contactId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'updated_at' => '2023-11-07T05:31:56Z',
'first_name' => '<string>',
'last_name' => '<string>',
'email' => '[email protected]',
'company' => '<string>',
'title' => '<string>',
'phone' => '<string>',
'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}/contacts/{contactId}"
payload := strings.NewReader("{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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("PUT", 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.put("https://public-api.sessionboard.com/v1/event/{eventId}/contacts/{contactId}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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}/contacts/{contactId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updated_at\": \"2023-11-07T05:31:56Z\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"[email protected]\",\n \"company\": \"<string>\",\n \"title\": \"<string>\",\n \"phone\": \"<string>\",\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": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"friendly_id": "SPK-42",
"full_name": "Dr. Jane Smith",
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"created_at": "2023-11-01T10:00:00Z",
"updated_at": "2024-02-15T16:30:00Z",
"photo_url": "https://cdn.sessionboard.com/photos/jane-smith.jpg",
"company_name": "State University",
"title": "Professor of Computer Science",
"about": "Dr. Smith is a leading researcher in distributed systems.",
"address_city": "Austin",
"address_state": "TX",
"address_country": "US",
"honorific": "Dr.",
"pronouns": "she/her",
"topic_expertise": "Distributed Systems, Cloud Computing",
"custom_fields": [],
"translated_fields": []
}Authorizations
ApiKeyBearerToken
Organization API token. Generate from Organization Settings → API Tokens.
Body
application/json
Optional optimistic concurrency control. Send the updated_at value from the last-fetched contact.
Custom field values keyed by field internal name.
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
Contact updated
A contact (speaker, attendee, or organizational contact) in Sessionboard.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Deep link to this entity in the Sessionboard admin UI.

