Dokumentacja 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.
- Uprawnienia
- cfp:read
- Moduł
cfpOdrzucane z kodem moduleOff, gdy organizator wydarzenia wyłączył ten moduł.
Parametry
ścieżka
eventIdstring (uuid)wymaganeThe event's id.
zapytanie
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.
Domyślnie:
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.
Jedno z:
draft,submitted,shortlisted,accepted,rejected,waitlisted,withdrawn
Odpowiedzi
- 200 A page of proposals. CfpSubmissionList
Pola
dataCfpSubmission[]The items of this page.
Pokaż pola
submissionIdstring (uuid)The proposal's id.
eventIdstring (uuid)The event's id.
titlestringIts title.
abstractstringIts abstract.
kindstringTalk, workshop, panel and so on.
trackIdstring (uuid) lub nullThe track it is for.
minutesinteger (int32)How long.
levelstring lub nullBeginner, intermediate or advanced.
languagestringThe language it is in.
statusstringSubmitted, shortlisted, accepted, rejected, waitlisted or withdrawn.
decidedUtcstring (date-time) lub nullWhen it was decided, in UTC.
notifiedstring lub nullThe decision the speaker was sent.
confirmationstring lub nullWhether the speakers confirmed an acceptance: pending, confirmed, declined or expired.
sessionIdstring (uuid) lub nullThe session it became.
speakersobject[] lub nullIts speakers. Null without people:read.
Pokaż pola
namestring lub nullTheir name.
emailstring lub nullTheir address.
companystring lub nullTheir company.
submitterEmailstring lub 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).
Jedno z:
included,withheld,erased
nextCursorstring lub 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.
Odmowy
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound invalidCursor invalidUpdatedSince invalidRequest
Żądanie
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 Przykładowa odpowiedź
{
"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."
}Przewodniki i ta witryna są w twoim języku. Opisy w samej dokumentacji API są po angielsku, tak jak mówi samo API.