Premiers pas
Démarrage rapide
Créez une clé, faites votre premier appel et listez les participants de Beacon Summit, l’événement de démonstration, en cinq minutes.
1. Créer une clé
Dans l’espace de travail, ouvrez Intégrations › API & MCP et choisissez Nouvelle clé. Donnez-lui un nom que vous reconnaîtrez dans six mois (« Synchronisation des participants vers le CRM »), partez de Tableau de bord, cochez Participants : Lecture et Données personnelles, et laissez l’expiration à 90 jours.
La clé ne s’affiche qu’une fois. Copiez-la tout de suite : AttendBeacon n’en conserve qu’un hachage, si bien qu’une clé perdue est révoquée et remplacée, jamais retrouvée. Rangez-la là où votre code garde ses secrets, jamais dans le code lui-même.
export ATTENDBEACON_KEY="abk_k7m2qx9vtw4p_..."$env:ATTENDBEACON_KEY = "abk_k7m2qx9vtw4p_..."2. Vérifier la clé
GET /me répond avec l’espace de travail de la clé, ses autorisations, sa date d’expiration et sa limite. Toute clé valide peut l’appeler : c’est donc la première question que pose un connecteur ou un script.
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 }
}Un 401 avec "code": "invalidKey" signifie que la clé n’est pas arrivée ou qu’elle a été mal saisie ; keyExpired et keyRevoked parlent d’eux-mêmes. La page Erreurs liste tous les codes.
3. Trouver l’événement
GET /events liste les événements de l’espace de travail, chacun avec son identifiant. Celui de Beacon Summit est 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. Lister les participants
GET /events/{eventId}/attendees renvoie une page de participants, en commençant par la modification la plus ancienne, et nextCursor pour la page suivante. Avec Données personnelles sur la clé, vous voyez les noms, les adresses et les réponses ; sans elle, chaque participant n’est qu’un identifiant avec un billet et un statut.
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..."
}Renvoyez nextCursor comme cursor jusqu’à ce qu’il vaille null : vous aurez alors lu chaque participant une fois. Pagination et synchronisation montre la boucle, et comment ne récupérer que ce qui a changé depuis votre dernier passage.
Et ensuite
- Authentification et autorisations : les autorisations dont une clé a besoin, et pour quoi.
- Webhooks : soyez prévenu dès que quelqu’un s’inscrit, au lieu de demander.
- La référence de l’API : chaque opération, avec un bouton Essayer qui envoie la requête avec votre clé.
- Utiliser AttendBeacon avec votre assistant IA : la même clé, dans Claude, ChatGPT ou Copilot.