Primeiros passos
Início rápido
Crie uma chave, faça a sua primeira chamada e liste os participantes do Beacon Summit, o evento de demonstração, em cinco minutos.
1. Criar uma chave
Na área de trabalho, abra Integrações › API & MCP e escolha Nova chave. Dê-lhe um nome que reconheça daqui a seis meses («Sincronização de participantes para o CRM»), escolha Painel como ponto de partida, marque Participantes: Ler e Dados pessoais, e mantenha a validade em 90 dias.
A chave é mostrada uma única vez. Copie-a agora: a AttendBeacon guarda apenas um hash, pelo que uma chave perdida é revogada e substituída, nunca recuperada. Guarde-a onde o seu código guarda os segredos, nunca no próprio código.
export ATTENDBEACON_KEY="abk_k7m2qx9vtw4p_..."$env:ATTENDBEACON_KEY = "abk_k7m2qx9vtw4p_..."2. Verificar a chave
GET /me responde com a área de trabalho da chave, os seus âmbitos, quando expira e o seu limite. Qualquer chave válida a pode chamar, por isso é a primeira pergunta que um conector ou um script faz.
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 }
}Um 401 com "code": "invalidKey" significa que a chave não chegou ou foi mal escrita; keyExpired e keyRevoked dizem o que o nome indica. Em Erros encontra todos os códigos.
3. Encontrar o evento
GET /events lista os eventos da área de trabalho, cada um com o seu id. O Beacon Summit é 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. Listar os participantes
GET /events/{eventId}/attendees responde com uma página de participantes, a alteração mais antiga primeiro, e nextCursor para a página seguinte. Com Dados pessoais na chave vê nomes, endereços e respostas; sem esse âmbito, cada participante é um id com um bilhete e um estado.
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..."
}Devolva nextCursor como cursor até ser null e terá lido cada participante uma vez. Paginação e sincronização mostra o ciclo, e como obter apenas o que mudou desde a última execução.
E agora
- Autenticação e âmbitos: que âmbitos uma chave precisa para quê.
- Webhooks: seja avisado no momento em que alguém se inscreve, em vez de perguntar.
- A referência da API: todas as operações, com um botão Experimentar que envia o pedido com a sua chave.
- Use a AttendBeacon com o seu assistente de IA: a mesma chave, no Claude, no ChatGPT ou no Copilot.