curl --request GET \
--url https://public-api.sessionboard.com/v1/event/{eventId}/attendees \
--header 'x-access-token: <api-key>'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/attendees"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/attendees', 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}/attendees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/event/{eventId}/attendees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.sessionboard.com/v1/event/{eventId}/attendees")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/attendees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"status": "confirmed",
"first_name": "Priya",
"last_name": "Raman",
"email": "priya.raman@example.org",
"company": "Northwind Health",
"job_title": "Clinical Director",
"ticket_type_id": "0b9d6a3c-2e1f-4a5b-9c8d-7e6f5a4b3c2d",
"registrant_type_id": null,
"account_id": null,
"checked_in_at": null,
"updated_at": "2026-10-02T16:21:41.000Z"
}
],
"pagination": {
"current_page": 1,
"page_size": 50,
"total_pages": 8,
"total_results": 397
}
}List attendees
Who is coming: registrations that are confirmed or checked_in, sorted by last
name, then first name. A short shape meant for badge printers, door lists and
lead-retrieval apps — use List registrations
for answers, orders and every other status.
Takes the same filters as List registrations except status.
Paginated (page, page_size up to 200). Requires read:registrations (legacy
tokens with no scopes pass).
curl --request GET \
--url https://public-api.sessionboard.com/v1/event/{eventId}/attendees \
--header 'x-access-token: <api-key>'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/attendees"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/attendees', 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}/attendees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/event/{eventId}/attendees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.sessionboard.com/v1/event/{eventId}/attendees")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/attendees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"status": "confirmed",
"first_name": "Priya",
"last_name": "Raman",
"email": "priya.raman@example.org",
"company": "Northwind Health",
"job_title": "Clinical Director",
"ticket_type_id": "0b9d6a3c-2e1f-4a5b-9c8d-7e6f5a4b3c2d",
"registrant_type_id": null,
"account_id": null,
"checked_in_at": null,
"updated_at": "2026-10-02T16:21:41.000Z"
}
],
"pagination": {
"current_page": 1,
"page_size": 50,
"total_pages": 8,
"total_results": 397
}
}Authorizations
Organization API token. Generate from Organization Settings → API Tokens.
Path Parameters
Event ID
Query Parameters
Page number, from 1. A value that is not a positive integer is read as 1.
x >= 1Results per page. Values above 200 are read as 200; a value that is not a positive integer is read as 50.
1 <= x <= 200Only attendees registered through this form.
Only attendees holding this ticket type.
Only attendees of this registrant type.
Only attendees attached to this exhibitor or sponsor account (booth staff).
Only attendees with this email (case-insensitive, exact match).
Only attendees changed at or after this time (ISO 8601). A value that is not a date is ignored.
Response
OK
Show child attributes
Show child attributes
Pagination metadata returned by the event-settings GET lists (tags, tracks, levels, formats, rooms, languages, statuses). Same numbers as Pagination, snake_case keys — these endpoints are served by a different layer, and the casing is longstanding.
Show child attributes
Show child attributes

