Pierwsze kroki
Szybki start
Utwórz klucz, wykonaj pierwsze wywołanie i pobierz listę uczestników Beacon Summit, wydarzenia demonstracyjnego. Wszystko w pięć minut.
1. Utwórz klucz
W przestrzeni roboczej otwórz Integracje › API & MCP i wybierz Nowy klucz. Nadaj mu nazwę, którą rozpoznasz za pół roku („Synchronizacja uczestników z CRM”), jako punkt wyjścia wybierz Pulpit, zaznacz Uczestnicy: Odczyt oraz Dane osobowe i pozostaw ważność 90 dni.
Klucz jest wyświetlany tylko raz. Skopiuj go od razu: AttendBeacon przechowuje wyłącznie jego skrót, więc zgubionego klucza nie da się odczytać – trzeba go unieważnić i zastąpić nowym. Trzymaj go tam, gdzie twój kod przechowuje sekrety, nigdy w samym kodzie.
export ATTENDBEACON_KEY="abk_k7m2qx9vtw4p_..."$env:ATTENDBEACON_KEY = "abk_k7m2qx9vtw4p_..."2. Sprawdź klucz
GET /me zwraca przestrzeń roboczą klucza, jego uprawnienia, datę wygaśnięcia i limit. Może je wywołać każdy działający klucz, dlatego to pierwsze pytanie, jakie zadaje łącznik lub skrypt.
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 }
}401 z "code": "invalidKey" oznacza, że klucz nie dotarł albo zawiera literówkę. keyExpired i keyRevoked mówią same za siebie. Wszystkie kody znajdziesz w sekcji Błędy.
3. Znajdź wydarzenie
GET /events zwraca listę wydarzeń przestrzeni roboczej, każde z identyfikatorem. Beacon Summit ma identyfikator 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. Pobierz listę uczestników
GET /events/{eventId}/attendees zwraca stronę uczestników, zaczynając od najdawniej zmienionych, oraz nextCursor do pobrania następnej strony. Jeśli klucz ma uprawnienie Dane osobowe, widzisz imiona i nazwiska, adresy i odpowiedzi. Bez niego każdy uczestnik to tylko identyfikator z biletem i statusem.
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..."
}Przekazuj nextCursor z powrotem jako cursor, dopóki nie przyjmie wartości null. Wtedy każdego uczestnika odczytasz dokładnie raz. W przewodniku Stronicowanie i synchronizacja znajdziesz gotową pętlę oraz sposób, by pobierać tylko to, co zmieniło się od ostatniego uruchomienia.
Co dalej
- Uwierzytelnianie i uprawnienia: jakich uprawnień klucz potrzebuje do czego.
- Webhooki: dowiedz się o rejestracji w chwili, gdy nastąpi, zamiast o nią pytać.
- Dokumentacja API: każda operacja z przyciskiem Wypróbuj, który wysyła żądanie z twoim kluczem.
- AttendBeacon w twoim asystencie AI: ten sam klucz w Claude, ChatGPT lub Copilot.