Référence de l’API
Call for speakers
Proposals sent to the call for speakers.
List proposals
GET/events/{eventId}/cfp/submissions
Lists proposals sent to the call for speakers, oldest change first, with their status and whether the speakers confirmed. Speakers' names need people:read; reviews stay in the workspace.
- Autorisations
- cfp:read
- Module
cfpRefusée avec moduleOff tant que l’organisateur de l’événement l’a désactivé.
Paramètres
chemin
eventIdstring (uuid)obligatoireThe event's id.
requête
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Par défaut :
100updatedSincestring (date-time)Only what changed at or after this moment, in UTC unless it says otherwise. Pass the newest updatedUtc your last sync saw.
statusstringOnly proposals with this status.
Valeurs possibles :
draft,submitted,shortlisted,accepted,rejected,waitlisted,withdrawn
Réponses
- 200 A page of proposals. CfpSubmissionList
Champs
dataCfpSubmission[]The items of this page.
Afficher les champs
submissionIdstring (uuid)The proposal's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
abstractstringIts abstract.
kindstringTalk, workshop, panel and so on.
trackIdstring (uuid) ou nullThe track it is for.
minutesinteger (int32)How long.
levelstring ou nullBeginner, intermediate or advanced.
languagestringThe language it is in.
statusstringSubmitted, shortlisted, accepted, rejected, waitlisted or withdrawn.
decidedUtcstring (date-time) ou nullWhen it was decided, in UTC.
notifiedstring ou nullThe decision the speaker was sent.
confirmationstring ou nullWhether the speakers confirmed an acceptance: pending, confirmed, declined or expired.
sessionIdstring (uuid) ou nullThe session it became.
speakersobject[] ou nullIts speakers. Null without people:read.
Afficher les champs
namestring ou nullTheir name.
emailstring ou nullTheir address.
companystring ou nullTheir company.
submitterEmailstring ou nullWho sent it. Null without people:read.
submittedUtcstring (date-time)When it was sent, in UTC.
updatedUtcstring (date-time)When it last changed, in UTC.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
Valeurs possibles :
included,withheld,erased
nextCursorstring ou nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor, invalidUpdatedSince, invalidRequest.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 409 moduleOff.
- 429 rateLimited.
Refus
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound invalidCursor invalidUpdatedSince invalidRequest
Requête
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions?limit=2" -Headers $headers200 Exemple de réponse
{
"data": [
{
"submissionId": "b3ac0015-0000-4000-8000-000000000008",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Kubernetes bills, explained to finance",
"abstract": "Our cloud bill doubled in a quarter. How we explained it to the finance team with three charts, and what we switched off the week after.",
"kind": "talk",
"trackId": "b3ac0002-0000-4000-8000-000000000000",
"minutes": 25,
"level": "intermediate",
"language": "en",
"status": "accepted",
"decidedUtc": "2026-10-05T21:40:47.963Z",
"notified": "accepted",
"confirmation": "pending",
"sessionId": null,
"speakers": [
{
"name": "Jonas Peeters",
"email": "jonas.peeters@example.com",
"company": "Fabrikam"
},
{
"name": "Fleur de Vries",
"email": "fleur.devries@example.com",
"company": "Fabrikam"
}
],
"submitterEmail": "jonas.peeters@example.com",
"submittedUtc": "2026-09-27T21:40:47.963Z",
"updatedUtc": "2026-09-27T21:40:47.963Z",
"personalData": "included"
},
{
"submissionId": "b3ac0015-0000-4000-8000-000000000009",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"title": "Live-coding a design system in ten minutes",
"abstract": "From an empty file to buttons, colours and type that hold together, typed live, with the audience choosing the brand.",
"kind": "talk",
"trackId": "b3ac0002-0000-4000-8000-000000000001",
"minutes": 10,
"level": "beginner",
"language": "en",
"status": "accepted",
"decidedUtc": "2026-10-05T21:40:47.963Z",
"notified": "accepted",
"confirmation": "declined",
"sessionId": null,
"speakers": [
{
"name": "Marit Koster",
"email": "marit.koster@example.com",
"company": "Proseware"
}
],
"submitterEmail": "marit.koster@example.com",
"submittedUtc": "2026-09-28T21:40:47.963Z",
"updatedUtc": "2026-09-28T21:40:47.963Z",
"personalData": "included"
}
],
"nextCursor": "YzE6MDYzOTI2MjI4NDQ3OTYzMDAwMHxiM2FjMDAxNTAwMDA0MDAwODAwMDAwMDAwMDAwMDAwOQ",
"hasMore": true
}400 invalidCursor, invalidUpdatedSince, invalidRequest.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/cfp/submissions",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}Les guides et ce site sont dans votre langue. Les descriptions propres à la référence de l’API restent en anglais, la langue de l’API elle-même.