Erste Schritte
Schnellstart
Erstellen Sie einen Schlüssel, senden Sie Ihren ersten Aufruf und listen Sie die Teilnehmenden von Beacon Summit auf, der Demo-Veranstaltung. In fünf Minuten.
1. Einen Schlüssel erstellen
Öffnen Sie im Arbeitsbereich Integrationen › API & MCP und wählen Sie Neuer Schlüssel. Geben Sie ihm einen Namen, den Sie auch in sechs Monaten noch verstehen („Teilnehmer-Sync für das CRM“), wählen Sie Dashboard als Ausgangspunkt, kreuzen Sie Teilnehmende: Lesen und Personenbezogene Daten an und lassen Sie die Gültigkeit bei 90 Tagen.
Der Schlüssel wird nur einmal angezeigt. Kopieren Sie ihn sofort: AttendBeacon speichert nur einen Hash davon. Ein verlorener Schlüssel wird deshalb widerrufen und ersetzt, nie nachgeschlagen. Bewahren Sie ihn dort auf, wo Ihr Code seine Geheimnisse aufbewahrt, nie im Code selbst.
export ATTENDBEACON_KEY="abk_k7m2qx9vtw4p_..."$env:ATTENDBEACON_KEY = "abk_k7m2qx9vtw4p_..."2. Den Schlüssel prüfen
GET /me antwortet mit dem Arbeitsbereich des Schlüssels, seinen Scopes, seinem Ablaufdatum und seinem Limit. Jeder gültige Schlüssel darf diesen Aufruf senden. Deshalb ist er das Erste, was ein Konnektor oder ein Skript fragt.
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 }
}Ein 401 mit "code": "invalidKey" bedeutet, dass der Schlüssel nicht angekommen ist oder falsch geschrieben wurde. keyExpired und keyRevoked sagen, was sie sagen. Unter Fehler finden Sie alle Codes.
3. Die Veranstaltung finden
GET /events listet die Veranstaltungen des Arbeitsbereichs auf, jede mit ihrer ID. Beacon Summit hat die ID 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. Die Teilnehmenden auflisten
GET /events/{eventId}/attendees antwortet mit einer Seite Teilnehmender, die älteste Änderung zuerst, und mit nextCursor für die nächste Seite. Hat der Schlüssel Personenbezogene Daten, sehen Sie Namen, Adressen und Antworten. Ohne diesen Scope ist jede teilnehmende Person nur eine ID mit Ticket und 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..."
}Geben Sie nextCursor als cursor zurück, bis er null ist. Dann haben Sie jede teilnehmende Person genau einmal gelesen. Paginierung und Synchronisierung zeigt die Schleife und wie Sie nur abrufen, was sich seit dem letzten Lauf geändert hat.
Wie es weitergeht
- Authentifizierung und Scopes: welche Scopes ein Schlüssel wofür braucht.
- Webhooks: erfahren Sie sofort, wenn sich jemand anmeldet, statt nachzufragen.
- Die API-Referenz: jede Operation, mit einer Schaltfläche Ausprobieren, die die Anfrage mit Ihrem Schlüssel sendet.
- AttendBeacon mit Ihrem KI-Assistenten nutzen: derselbe Schlüssel, in Claude, ChatGPT oder Copilot.