Aan de slag
Snel aan de slag
Maak een sleutel, doe je eerste aanroep en toon de deelnemers van Beacon Summit, het demonstratie-evenement, in vijf minuten.
1. Maak een sleutel
Open in de werkruimte Integraties › API & MCP en kies Nieuwe sleutel. Geef hem een naam die je over een half jaar nog herkent ("Deelnemers synchroniseren met het CRM"), kies Dashboard als begin, vink Deelnemers: Lezen en Persoonsgegevens aan en laat de vervaltermijn op 90 dagen staan.
Je ziet de sleutel één keer. Kopieer hem nu: AttendBeacon bewaart alleen een hash ervan, dus een kwijtgeraakte sleutel trek je in en vervang je; opzoeken kan niet. Bewaar hem waar je code geheimen bewaart, nooit in de code zelf.
export ATTENDBEACON_KEY="abk_k7m2qx9vtw4p_..."$env:ATTENDBEACON_KEY = "abk_k7m2qx9vtw4p_..."2. Controleer de sleutel
GET /me antwoordt met de werkruimte van de sleutel, de scopes, wanneer hij verloopt en de limiet. Elke werkende sleutel mag deze aanroep doen, dus het is het eerste wat een connector of een script vraagt.
curl https://attendbeacon.com/api/v1/me \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/me", {
headers: { Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}` }
});
console.log(await response.json());using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
using var client = new HttpClient { BaseAddress = new Uri("https://attendbeacon.com/api/v1/") };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
Console.WriteLine(await client.GetStringAsync("me"));import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/me",
headers={"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"},
)
print(response.json())$headers = @{ Authorization = "Bearer $env:ATTENDBEACON_KEY" }
Invoke-RestMethod -Uri "https://attendbeacon.com/api/v1/me" -Headers $headers{
"workspaceId": "3d9a5c1e-7b2f-4e8a-a6d4-0c1b9e7f5a23",
"workspaceName": "Beacon Events",
"keyName": "Attendee sync for the CRM",
"keyPrefix": "abk_k7m2qx9vtw4p",
"scopes": ["events:read", "tickets:read", "orders:read", "attendees:read", "checkins:read", "program:read", "people:read"],
"expiresUtc": "2027-01-12T09:00:00.000Z",
"rateLimit": { "perMinute": 120, "windowSeconds": 60 }
}Een 401 met "code": "invalidKey" betekent dat de sleutel niet is aangekomen of verkeerd is overgenomen; keyExpired en keyRevoked zeggen wat ze zeggen. Fouten toont elke code.
3. Zoek het evenement
GET /events toont de evenementen van de werkruimte, elk met een id. Beacon Summit is b3ac0000-0000-4000-8000-000000000001.
curl "https://attendbeacon.com/api/v1/events?status=published" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const events = await fetch("https://attendbeacon.com/api/v1/events?status=published", {
headers: { Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}` }
}).then((response) => response.json());
for (const event of events.data) console.log(event.eventId, event.name, event.startDate);var events = await client.GetFromJsonAsync<JsonElement>("events?status=published");
foreach (var ev in events.GetProperty("data").EnumerateArray())
Console.WriteLine($"{ev.GetProperty("eventId")} {ev.GetProperty("name")} {ev.GetProperty("startDate")}");events = requests.get(
"https://attendbeacon.com/api/v1/events",
params={"status": "published"},
headers={"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"},
).json()
for event in events["data"]:
print(event["eventId"], event["name"], event["startDate"])$events = Invoke-RestMethod -Uri "https://attendbeacon.com/api/v1/events?status=published" -Headers $headers
$events.data | Select-Object eventId, name, startDate4. Toon de deelnemers
GET /events/{eventId}/attendees antwoordt met een pagina deelnemers, de oudste wijziging eerst, en nextCursor voor de volgende pagina. Met Persoonsgegevens op de sleutel zie je namen, adressen en antwoorden; zonder is elke deelnemer een id met een ticket en een status.
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/attendees?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const url = "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/attendees?limit=2";
const page = await fetch(url, { headers: { Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}` } }).then((r) => r.json());
for (const attendee of page.data) console.log(attendee.firstName, attendee.lastName, attendee.ticketTypeName);var page = await client.GetFromJsonAsync<JsonElement>("events/b3ac0000-0000-4000-8000-000000000001/attendees?limit=2");
foreach (var attendee in page.GetProperty("data").EnumerateArray())
Console.WriteLine($"{attendee.GetProperty("firstName")} {attendee.GetProperty("lastName")}: {attendee.GetProperty("ticketTypeName")}");page = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/attendees",
params={"limit": 2},
headers={"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"},
).json()
for attendee in page["data"]:
print(attendee["firstName"], attendee["lastName"], attendee["ticketTypeName"])$page = Invoke-RestMethod -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/attendees?limit=2" -Headers $headers
$page.data | Select-Object firstName, lastName, ticketTypeName, status{
"data": [
{
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"answers": { "dietary": "none", "terms": true, "photos": true },
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"updatedUtc": "2026-10-14T21:40:48.226Z",
"personalData": "included"
}
],
"hasMore": true,
"nextCursor": "YzE6MDYzOTI3NjEwODQ4MjgyMDAwMHxiM2Fj..."
}Geef nextCursor terug als cursor tot hij null is, en je hebt elke deelnemer één keer gelezen. Paginering en synchronisatie laat de lus zien, en hoe je alleen ophaalt wat er sinds je vorige keer is veranderd.
Hoe verder
- Authenticatie en scopes: welke scopes een sleutel waarvoor nodig heeft.
- Webhooks: hoor het zodra iemand zich registreert, in plaats van het steeds te vragen.
- De API-referentie: elke bewerking, met een knop Probeer het die het verzoek met je sleutel verstuurt.
- AttendBeacon gebruiken met je AI-assistent: dezelfde sleutel, in Claude, ChatGPT of Copilot.