API-reference
Crew
Crew, volunteers and shifts.
List crew
GET/events/{eventId}/crew
Lists the event's crew and volunteers with their roles and shifts. Names, addresses and phone numbers need people:read.
- Scopes
- crew:read
- Modul
crewAfvises med moduleOff, så længe eventets arrangør har slået det fra.
Parametre
sti
eventIdstring (uuid)påkrævetThe event's id.
forespørgsel
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.
Standard:
100
Svar
- 200 A page of crew. CrewMemberList
Felter
dataCrewMember[]The items of this page.
Vis felterne
crewMemberIdstring (uuid)Their id.
eventIdstring (uuid)The event's id.
namestring eller nullTheir name. Null without people:read.
emailstring eller nullTheir address. Null without people:read.
phonestring eller nullA number to reach them on the day. Null without people:read.
rolesstring[]The roles they may do: door, infoDesk, room and others.
attendeeIdstring (uuid) eller nullTheir crew ticket.
hasTicketbooleanWhether their crew ticket works.
shiftIdsstring (uuid)[]The shifts they are on.
invitedUtcstring (date-time)When they were invited, in UTC.
lastSeenUtcstring (date-time) eller nullWhen they last opened the crew app, in UTC.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
En af:
included,withheld,erased
nextCursorstring eller 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.
- 409 moduleOff.
- 429 rateLimited.
Afvisninger
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound invalidCursor
Forespørgsel
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/crew?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/crew?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/crew?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/crew", 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/crew?limit=2" -Headers $headers200 Eksempel på svar
{
"data": [
{
"crewMemberId": "b3ac0020-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Femke de Wit",
"email": "femke.dewit@example.com",
"phone": "+31 6 1234 5601",
"roles": [
"greeter",
"infoDesk"
],
"attendeeId": "b3ac001f-0000-4000-8000-000000000000",
"hasTicket": true,
"shiftIds": [
"b3ac0021-0000-4000-8000-000000000002",
"b3ac0021-0000-4000-8000-00000000000a"
],
"invitedUtc": "2026-09-24T21:40:47.963Z",
"lastSeenUtc": "2026-10-13T21:40:47.963Z",
"erased": false,
"personalData": "included"
},
{
"crewMemberId": "b3ac0020-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"name": "Joris van Dam",
"email": "joris.vandam@example.com",
"phone": "+31 6 1234 5602",
"roles": [
"door",
"swag"
],
"attendeeId": "b3ac001f-0000-4000-8000-000000000001",
"hasTicket": true,
"shiftIds": [
"b3ac0021-0000-4000-8000-000000000000",
"b3ac0021-0000-4000-8000-000000000001"
],
"invitedUtc": "2026-09-25T21:40:47.963Z",
"lastSeenUtc": "2026-10-12T20:40:47.963Z",
"erased": false,
"personalData": "included"
}
],
"nextCursor": "YzE6MDYzOTI1OTY5MjQ3OTYzMDAwMHxiM2FjMDAyMDAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMQ",
"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/crew",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}List shifts
GET/events/{eventId}/shifts
Lists crew and volunteer shifts in time order: where, when, how many are needed and how many are on it.
- Scopes
- crew:read
- Modul
crewAfvises med moduleOff, så længe eventets arrangør har slået det fra.
Parametre
sti
eventIdstring (uuid)påkrævetThe event's id.
forespørgsel
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.
Standard:
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.
Svar
- 200 A page of shifts. ShiftList
Felter
dataShift[]The items of this page.
Vis felterne
shiftIdstring (uuid)The shift's id.
eventIdstring (uuid)The event's id.
rolestringWhat it is: door, infoDesk, room and others.
placeobjectWhere.
Vis felterne
kindstringDoor, room, area or other.
idstring (uuid) eller nullThe door or room.
namestring eller nullIts name.
startsUtcstring (date-time)When it starts, in UTC.
endsUtcstring (date-time)When it ends, in UTC.
startsLocalstringWhen it starts, in the venue's time.
endsLocalstringWhen it ends, in the venue's time.
timeZonestringThe venue's time zone.
neededinteger (int32)How many it needs.
assignedinteger (int32)How many are on it.
openinteger (int32)Places still open.
crewMemberIdsstring (uuid)[]Who is on it.
updatedUtcstring (date-time) eller nullWhen it last changed, in UTC.
nextCursorstring eller 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.
- 409 moduleOff.
- 429 rateLimited.
Afvisninger
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound invalidCursor invalidUpdatedSince invalidRequest
Forespørgsel
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/shifts?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/shifts?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/shifts?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/shifts", 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/shifts?limit=2" -Headers $headers200 Eksempel på svar
{
"data": [
{
"shiftId": "b3ac6705-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"role": "infoDesk",
"place": {
"kind": "area",
"id": null,
"name": "Registration desk"
},
"startsUtc": "2026-11-12T06:30:00.000Z",
"endsUtc": "2026-11-12T09:00:00.000Z",
"startsLocal": "2026-11-12T07:30",
"endsLocal": "2026-11-12T10:00",
"timeZone": "Europe/Amsterdam",
"needed": 3,
"assigned": 2,
"open": 1,
"crewMemberIds": [
"b3ac6703-0000-4000-8000-000000000000",
"b3ac6703-0000-4000-8000-000000000001"
],
"updatedUtc": "2026-10-06T21:40:47.963Z"
},
{
"shiftId": "b3ac0021-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"role": "door",
"place": {
"kind": "door",
"id": "b3ac0010-0000-4000-8000-000000000000",
"name": null
},
"startsUtc": "2026-11-12T07:00:00.000Z",
"endsUtc": "2026-11-12T10:00:00.000Z",
"startsLocal": "2026-11-12T08:00",
"endsLocal": "2026-11-12T11:00",
"timeZone": "Europe/Amsterdam",
"needed": 2,
"assigned": 2,
"open": 0,
"crewMemberIds": [
"b3ac0020-0000-4000-8000-000000000001",
"b3ac0020-0000-4000-8000-000000000005"
],
"updatedUtc": "2026-10-14T21:40:49.222Z"
}
],
"nextCursor": "YzE6MDYzOTMwMDYzNjAwMDAwMDAwMHxiM2FjMDAyMTAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMA",
"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/shifts",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}Guiderne og dette site er på dit sprog. API-referencens egne beskrivelser er på engelsk, ligesom API'et selv.