API-viiteopas
Programme
Sessions, rooms, tracks and speakers.
List sessions
GET/events/{eventId}/sessions
Lists an event's sessions, oldest change first, each in UTC and in the venue's local time, with its room, track and speakers.
- Käyttöoikeudet
- program:read
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
kysely
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Oletus:
100updatedSincestring (date-time)Only what changed at or after this moment, in UTC unless it says otherwise. Pass the newest updatedUtc your last sync saw.
Vastaukset
- 200 A page of sessions. SessionList
Kentät
dataSession[]The items of this page.
Näytä kentät
sessionIdstring (uuid)The session's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
summarystring tai nullWhat it is about, in Markdown.
kindstringTalk, keynote, workshop, panel, break, meal, networking or other.
Jokin seuraavista:
talk,keynote,workshop,panel,break,meal,networking,otherroomIdstring (uuid) tai nullIts room.
trackIdstring (uuid) tai nullIts track.
startsUtcstring (date-time)When it starts, in UTC.
endsUtcstring (date-time)When it ends, in UTC.
startsLocalstringWhen it starts, in the venue's time: what the agenda shows.
endsLocalstringWhen it ends, in the venue's time.
timeZonestringThe venue's time zone.
minutesinteger (int32)How long it is.
capacityinteger (int32) tai nullSeats, when fewer than the room's.
languagestring tai nullThe language it is given in.
joinProviderstring tai nullFor an online session, which service it streams on: zoom, teams, youtube and so on. Never the link.
speakerIdsstring (uuid)[]Its speakers, in order.
updatedUtcstring (date-time) tai nullWhen it last changed, in UTC.
nextCursorstring tai nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor, invalidUpdatedSince, invalidRequest.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound invalidCursor invalidUpdatedSince invalidRequest
Pyyntö
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions?limit=2" -Headers $headers200 Esimerkkivastaus
{
"data": [
{
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Registration and coffee",
"summary": null,
"kind": "other",
"roomId": null,
"trackId": null,
"startsUtc": "2026-11-12T07:30:00.000Z",
"endsUtc": "2026-11-12T08:30:00.000Z",
"startsLocal": "2026-11-12T08:30",
"endsLocal": "2026-11-12T09:30",
"timeZone": "Europe/Amsterdam",
"minutes": 60,
"capacity": null,
"language": null,
"joinProvider": null,
"speakerIds": [],
"updatedUtc": "2026-10-14T21:40:48.084Z"
},
{
"sessionId": "b3ac0004-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Opening keynote: software that finds its way",
"summary": "Opening keynote: software that finds its way. What worked, what did not, and what to try on Monday.",
"kind": "keynote",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"trackId": null,
"startsUtc": "2026-11-12T08:30:00.000Z",
"endsUtc": "2026-11-12T09:15:00.000Z",
"startsLocal": "2026-11-12T09:30",
"endsLocal": "2026-11-12T10:15",
"timeZone": "Europe/Amsterdam",
"minutes": 45,
"capacity": null,
"language": null,
"joinProvider": null,
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000009"
],
"updatedUtc": "2026-10-14T21:40:48.086Z"
}
],
"nextCursor": "YzE6MDYzOTI3NjEwODQ4MDg2MDAwMHxiM2FjMDAwNDAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMQ",
"hasMore": true
}400 invalidCursor, invalidUpdatedSince, invalidRequest.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}Add a session Muuttaa tietoja
POST/events/{eventId}/sessions
Adds a session to the agenda by the agenda's rules: a room holds one session at a time unless allowClash is set, and the room, track and speakers are the event's own. When the event is published attendees see it at once.
- Käyttöoikeudet
- program:write
- Lähetä Idempotency-Key, niin uudelleenyritykset ovat turvallisia. →
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
otsake
Idempotency-KeystringA key of your own, such as a UUID, so a retry after a lost connection is answered with the first answer instead of doing it twice. Kept 24 hours.
Runko NewSession
The session.
titlestringpakollinenIts title, at most 300 characters.
kindstringTalk (the default), keynote, workshop, panel, break, meal, networking or other.
Jokin seuraavista:
talk,keynote,workshop,panel,break,meal,networking,otherstartsLocalstringWhen it starts, in the venue's time.
endsLocalstringWhen it ends, in the venue's time.
startsUtcstring (date-time)Or when it starts, in UTC.
endsUtcstring (date-time)Or when it ends, in UTC.
roomIdstring (uuid) tai nullA room of the event.
trackIdstring (uuid) tai nullA track of the event.
summarystring tai nullWhat it is about, in Markdown.
capacityinteger (int32) tai nullSeats, when fewer than the room's.
languagestring tai nullThe language it is given in.
speakerIdsstring (uuid)[]Speakers of the event.
allowClashbooleanPlace it even when another session has the room then.
Vastaukset
- 201 The session. Session
Kentät
sessionIdstring (uuid)The session's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
summarystring tai nullWhat it is about, in Markdown.
kindstringTalk, keynote, workshop, panel, break, meal, networking or other.
Jokin seuraavista:
talk,keynote,workshop,panel,break,meal,networking,otherroomIdstring (uuid) tai nullIts room.
trackIdstring (uuid) tai nullIts track.
startsUtcstring (date-time)When it starts, in UTC.
endsUtcstring (date-time)When it ends, in UTC.
startsLocalstringWhen it starts, in the venue's time: what the agenda shows.
endsLocalstringWhen it ends, in the venue's time.
timeZonestringThe venue's time zone.
minutesinteger (int32)How long it is.
capacityinteger (int32) tai nullSeats, when fewer than the room's.
languagestring tai nullThe language it is given in.
joinProviderstring tai nullFor an online session, which service it streams on: zoom, teams, youtube and so on. Never the link.
speakerIdsstring (uuid)[]Its speakers, in order.
updatedUtcstring (date-time) tai nullWhen it last changed, in UTC.
- 400 invalidBody, invalidRequest, invalidIdempotencyKey.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope, demoWorkspace.
- 404 eventNotFound.
- 409 idempotencyKeyInUse, clash.
- 422 idempotencyKeyReused.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound invalidBody invalidRequest demoWorkspace idempotencyKeyInUse idempotencyKeyReused invalidIdempotencyKey clash
Pyyntö
curl -X POST "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions" \
-H "Authorization: Bearer $ATTENDBEACON_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"title": "Closing keynote: what we learned",
"kind": "keynote",
"startsLocal": "2026-11-13T16:30",
"endsLocal": "2026-11-13T17:15",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000000"
]
}'const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`,
"Idempotency-Key": crypto.randomUUID(),
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "Closing keynote: what we learned",
"kind": "keynote",
"startsLocal": "2026-11-13T16:30",
"endsLocal": "2026-11-13T17:15",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000000"
]
})
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Post, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions");
request.Headers.Add("Idempotency-Key", Guid.NewGuid().ToString());
request.Content = new StringContent("""
{
"title": "Closing keynote: what we learned",
"kind": "keynote",
"startsLocal": "2026-11-13T16:30",
"endsLocal": "2026-11-13T17:15",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000000"
]
}
""", Encoding.UTF8, "application/json");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os, uuid
import requests
response = requests.post(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions",
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}",
"Idempotency-Key": str(uuid.uuid4())
},
json={
"title": "Closing keynote: what we learned",
"kind": "keynote",
"startsLocal": "2026-11-13T16:30",
"endsLocal": "2026-11-13T17:15",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000000"
]
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
"Idempotency-Key" = [guid]::NewGuid().ToString()
}
$body = @'
{
"title": "Closing keynote: what we learned",
"kind": "keynote",
"startsLocal": "2026-11-13T16:30",
"endsLocal": "2026-11-13T17:15",
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"speakerIds": [
"b3ac0003-0000-4000-8000-000000000000"
]
}
'@
$data = Invoke-RestMethod -Method Post -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions" -Headers $headers -ContentType "application/json" -Body $body201 Esimerkkivastaus
{
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Registration and coffee",
"summary": null,
"kind": "other",
"roomId": null,
"trackId": null,
"startsUtc": "2026-11-12T07:30:00.000Z",
"endsUtc": "2026-11-12T08:30:00.000Z",
"startsLocal": "2026-11-12T08:30",
"endsLocal": "2026-11-12T09:30",
"timeZone": "Europe/Amsterdam",
"minutes": 60,
"capacity": null,
"language": null,
"joinProvider": null,
"speakerIds": [],
"updatedUtc": "2026-10-14T21:40:48.084Z"
}400 invalidBody, invalidRequest, invalidIdempotencyKey.
{
"type": "https://attendbeacon.com/developers/errors#invalidBody",
"title": "The body is not readable",
"status": 400,
"detail": "The body is not JSON, or a field has the wrong type.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions",
"code": "invalidBody",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "The body is not JSON, or a field has the wrong type."
}Get a session
GET/events/{eventId}/sessions/{sessionId}
Gets one session, in UTC and in the venue's local time.
- Käyttöoikeudet
- program:read
- Vastaa ETagilla; lähetä If-None-Match, niin vältät turhan latauksen.
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
sessionIdstring (uuid)pakollinenThe session's id.
otsake
If-None-MatchstringThe ETag you have: when it is still current the answer is 304 with no body.
Vastaukset
- 200 The session. Session
Kentät
sessionIdstring (uuid)The session's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
summarystring tai nullWhat it is about, in Markdown.
kindstringTalk, keynote, workshop, panel, break, meal, networking or other.
Jokin seuraavista:
talk,keynote,workshop,panel,break,meal,networking,otherroomIdstring (uuid) tai nullIts room.
trackIdstring (uuid) tai nullIts track.
startsUtcstring (date-time)When it starts, in UTC.
endsUtcstring (date-time)When it ends, in UTC.
startsLocalstringWhen it starts, in the venue's time: what the agenda shows.
endsLocalstringWhen it ends, in the venue's time.
timeZonestringThe venue's time zone.
minutesinteger (int32)How long it is.
capacityinteger (int32) tai nullSeats, when fewer than the room's.
languagestring tai nullThe language it is given in.
joinProviderstring tai nullFor an online session, which service it streams on: zoom, teams, youtube and so on. Never the link.
speakerIdsstring (uuid)[]Its speakers, in order.
updatedUtcstring (date-time) tai nullWhen it last changed, in UTC.
- 304 Not modified: If-None-Match named the representation as it is.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound, notFound.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound notFound
Pyyntö
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000",
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000" -Headers $headers200 Esimerkkivastaus
{
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Registration and coffee",
"summary": null,
"kind": "other",
"roomId": null,
"trackId": null,
"startsUtc": "2026-11-12T07:30:00.000Z",
"endsUtc": "2026-11-12T08:30:00.000Z",
"startsLocal": "2026-11-12T08:30",
"endsLocal": "2026-11-12T09:30",
"timeZone": "Europe/Amsterdam",
"minutes": 60,
"capacity": null,
"language": null,
"joinProvider": null,
"speakerIds": [],
"updatedUtc": "2026-10-14T21:40:48.084Z"
}401 invalidKey, keyExpired, keyRevoked.
{
"type": "https://attendbeacon.com/developers/errors#invalidKey",
"title": "No working API key",
"status": 401,
"detail": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/{sessionId}",
"code": "invalidKey",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key."
}Change a session Muuttaa tietoja
PATCH/events/{eventId}/sessions/{sessionId}
Changes a session as a JSON merge patch. Those who saved it in the app hear when it moves, as when the organiser moves it in the workspace.
- Käyttöoikeudet
- program:write
- Lähetä If-Match lukemasi ETagin kanssa, jotta välissä tehtyä muutosta ei kirjoiteta yli.
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
sessionIdstring (uuid)pakollinenThe session's id.
otsake
If-MatchstringThe ETag you read, so a change made since is refused (412) rather than overwritten.
Runko SessionPatch
The fields to change.
titlestringIts title.
kindstringIts kind.
startsLocalstringWhen it starts, in the venue's time.
endsLocalstringWhen it ends, in the venue's time.
startsUtcstring (date-time)Or when it starts, in UTC.
endsUtcstring (date-time)Or when it ends, in UTC.
roomIdstring (uuid) tai nullA room of the event, or null for none.
trackIdstring (uuid) tai nullA track of the event, or null for none.
summarystring tai nullWhat it is about.
capacityinteger (int32) tai nullSeats, or null for the room's.
languagestring tai nullIts language.
speakerIdsstring (uuid)[]Its speakers: the whole list.
allowClashbooleanPlace it even when another session has the room then.
Vastaukset
- 200 The session as it is now. Session
Kentät
sessionIdstring (uuid)The session's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
summarystring tai nullWhat it is about, in Markdown.
kindstringTalk, keynote, workshop, panel, break, meal, networking or other.
Jokin seuraavista:
talk,keynote,workshop,panel,break,meal,networking,otherroomIdstring (uuid) tai nullIts room.
trackIdstring (uuid) tai nullIts track.
startsUtcstring (date-time)When it starts, in UTC.
endsUtcstring (date-time)When it ends, in UTC.
startsLocalstringWhen it starts, in the venue's time: what the agenda shows.
endsLocalstringWhen it ends, in the venue's time.
timeZonestringThe venue's time zone.
minutesinteger (int32)How long it is.
capacityinteger (int32) tai nullSeats, when fewer than the room's.
languagestring tai nullThe language it is given in.
joinProviderstring tai nullFor an online session, which service it streams on: zoom, teams, youtube and so on. Never the link.
speakerIdsstring (uuid)[]Its speakers, in order.
updatedUtcstring (date-time) tai nullWhen it last changed, in UTC.
- 400 invalidBody, invalidRequest.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope, demoWorkspace.
- 404 eventNotFound, notFound.
- 409 clash.
- 412 preconditionFailed.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound notFound invalidBody invalidRequest demoWorkspace preconditionFailed clash
Pyyntö
curl -X PATCH "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000" \
-H "Authorization: Bearer $ATTENDBEACON_KEY" \
-H "If-Match: $ETAG" \
-H "Content-Type: application/json" \
-d '{
"startsLocal": "2026-11-12T11:15",
"endsLocal": "2026-11-12T12:00"
}'const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`,
"If-Match": etag,
"Content-Type": "application/json"
},
body: JSON.stringify({
"startsLocal": "2026-11-12T11:15",
"endsLocal": "2026-11-12T12:00"
})
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Patch, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000");
request.Headers.IfMatch.Add(new EntityTagHeaderValue(etag));
request.Content = new StringContent("""
{
"startsLocal": "2026-11-12T11:15",
"endsLocal": "2026-11-12T12:00"
}
""", Encoding.UTF8, "application/json");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.patch(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000",
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}",
"If-Match": etag
},
json={
"startsLocal": "2026-11-12T11:15",
"endsLocal": "2026-11-12T12:00"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
"If-Match" = $etag
}
$body = @'
{
"startsLocal": "2026-11-12T11:15",
"endsLocal": "2026-11-12T12:00"
}
'@
$data = Invoke-RestMethod -Method Patch -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/b3ac0004-0000-4000-8000-000000000000" -Headers $headers -ContentType "application/json" -Body $body200 Esimerkkivastaus
{
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Registration and coffee",
"summary": null,
"kind": "other",
"roomId": null,
"trackId": null,
"startsUtc": "2026-11-12T07:30:00.000Z",
"endsUtc": "2026-11-12T08:30:00.000Z",
"startsLocal": "2026-11-12T08:30",
"endsLocal": "2026-11-12T09:30",
"timeZone": "Europe/Amsterdam",
"minutes": 60,
"capacity": null,
"language": null,
"joinProvider": null,
"speakerIds": [],
"updatedUtc": "2026-10-14T21:40:48.084Z"
}400 invalidBody, invalidRequest.
{
"type": "https://attendbeacon.com/developers/errors#invalidBody",
"title": "The body is not readable",
"status": 400,
"detail": "The body is not JSON, or a field has the wrong type.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/sessions/{sessionId}",
"code": "invalidBody",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "The body is not JSON, or a field has the wrong type."
}List rooms
GET/events/{eventId}/rooms
Lists an event's rooms in the agenda's order, left to right.
- Käyttöoikeudet
- program:read
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
kysely
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Oletus:
100
Vastaukset
- 200 A page of rooms. RoomList
Kentät
dataRoom[]The items of this page.
Näytä kentät
roomIdstring (uuid)The room's id.
eventIdstring (uuid)The event's id.
namestringIts name.
locationstring tai nullHow to find it.
capacityinteger (int32) tai nullSeats.
sortOrderinteger (int32)Its place on the agenda, left to right.
nextCursorstring tai nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound invalidCursor
Pyyntö
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms?limit=2" -Headers $headers200 Esimerkkivastaus
{
"data": [
{
"roomId": "b3ac0001-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Main Hall",
"location": "Ground floor, straight ahead",
"capacity": 600,
"sortOrder": 0
},
{
"roomId": "b3ac0001-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Graanbeurs",
"location": "Ground floor, left wing",
"capacity": 220,
"sortOrder": 1
}
],
"nextCursor": "YzE6MDAwMDAwMTAwMDAwMDAwMDAwMXxiM2FjMDAwMTAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMQ",
"hasMore": true
}400 invalidCursor.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/rooms",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}List tracks
GET/events/{eventId}/tracks
Lists an event's tracks: the themes through its agenda.
- Käyttöoikeudet
- program:read
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
kysely
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Oletus:
100
Vastaukset
- 200 A page of tracks. TrackList
Kentät
dataTrack[]The items of this page.
Näytä kentät
trackIdstring (uuid)The track's id.
eventIdstring (uuid)The event's id.
namestringIts name.
colourstringIts colour on the agenda, as #rrggbb.
sortOrderinteger (int32)Its place in the filter.
nextCursorstring tai nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound invalidCursor
Pyyntö
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks?limit=2" -Headers $headers200 Esimerkkivastaus
{
"data": [
{
"trackId": "b3ac0002-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Cloud & AI",
"colour": "#2b8fd0",
"sortOrder": 0
},
{
"trackId": "b3ac0002-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Product",
"colour": "#c2410c",
"sortOrder": 1
}
],
"nextCursor": "YzE6MDAwMDAwMTAwMDAwMDAwMDAwMXxiM2FjMDAwMjAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMQ",
"hasMore": true
}400 invalidCursor.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/tracks",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}List speakers
GET/events/{eventId}/speakers
Lists an event's speakers as its page shows them, with the sessions they speak at. Their email address only with people:read.
- Käyttöoikeudet
- program:read
Parametrit
polku
eventIdstring (uuid)pakollinenThe event's id.
kysely
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Oletus:
100
Vastaukset
- 200 A page of speakers. SpeakerList
Kentät
dataSpeaker[]The items of this page.
Näytä kentät
speakerIdstring (uuid)The speaker's id.
eventIdstring (uuid)The event's id.
namestringTheir name.
jobTitlestring tai nullTheir job.
companystring tai nullTheir company.
biostring tai nullAbout them, in Markdown.
photoUrlstring tai nullTheir photo.
emailstring tai nullTheir address: only with people:read.
linksstring (uri)[]Their links.
sessionIdsstring (uuid)[]The sessions they speak at.
sortOrderinteger (int32)Their place on the speakers page.
nextCursorstring tai nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 429 rateLimited.
Hylkäykset
invalidKey keyExpired keyRevoked rateLimited missingScope eventNotFound invalidCursor
Pyyntö
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers?limit=2" -Headers $headers200 Esimerkkivastaus
{
"data": [
{
"speakerId": "b3ac0003-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Ada Verhoeven",
"jobTitle": "Principal Engineer",
"company": "Northwind Cloud",
"bio": "Ada builds the platforms other engineers build on, and writes about what breaks.",
"photoUrl": "/media/f0de0000000040008000000000000001/b3ac00fa000040008000000000000000.jpg",
"email": "ada@speakers.example",
"links": [],
"sessionIds": [
"b3ac0004-0000-4000-8000-000000000002",
"b3ac0004-0000-4000-8000-000000000015"
],
"sortOrder": 0
},
{
"speakerId": "b3ac0003-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Malik Osei",
"jobTitle": "VP Product",
"company": "Contoso",
"bio": "Malik has shipped products in four countries and still reads every support ticket.",
"photoUrl": "/media/f0de0000000040008000000000000001/b3ac00fa000040008000000000000001.jpg",
"email": "malik@speakers.example",
"links": [],
"sessionIds": [
"b3ac0004-0000-4000-8000-000000000010",
"b3ac0004-0000-4000-8000-000000000003"
],
"sortOrder": 1
}
],
"nextCursor": "YzE6MDAwMDAwMTAwMDAwMDAwMDAwMXxiM2FjMDAwMzAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMQ",
"hasMore": true
}400 invalidCursor.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/speakers",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}Oppaat ja tämä sivusto ovat omalla kielelläsi. API-viiteoppaan omat kuvaukset ovat englanniksi, kuten itse rajapintakin.