curl --request POST \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/events/42/attendance/finalise' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'Idempotency-Key: finaliseEventAttendanceV1-20260816-001' \
--header 'If-Match: "v1.eyJpZCI6NDIsInJlc291cmNlIjoiZXZlbnQiLCJ2ZXJzaW9uIjoiNCJ9"' \
--header 'Content-Type: application/json' \
--data '{
"noShowParticipantIds": [
"0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c"
]
}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({noShowParticipantIds: ['0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c']})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/events/{eventId}/attendance/finalise', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"event": {
"archivedAt": null,
"cancellationReason": null,
"cancelledAt": null,
"capacity": 80,
"createdAt": "2026-08-01T08:00:00.000Z",
"endsAt": "2026-09-24T17:00:00.000Z",
"finalisationState": "FINALISED",
"finalisedAt": "2026-09-25T07:30:00.000Z",
"format": "IN_PERSON",
"id": 42,
"joinReference": null,
"language": "da",
"location": "Nordhavn Warehouse, Copenhagen",
"organiserUserId": "user_01J5N9CF9QY8T4M2A7W3R6K1P0",
"ownerUserIds": [
"user_01J5N9CF9QY8T4M2A7W3R6K1P0"
],
"planningStatus": "HELD",
"postponedAt": null,
"postponementReason": null,
"publicDescription": "An afternoon on hybrid workplace design.",
"publicSlug": "workplace-forum-2026",
"publicationState": "PUBLISHED",
"registrationClosesAt": "2026-09-22T22:00:00.000Z",
"registrationOpensAt": null,
"registrationState": "OPEN",
"startsAt": "2026-09-24T13:00:00.000Z",
"timezone": "Europe/Copenhagen",
"title": "Workplace Forum 2026",
"updatedAt": "2026-09-25T07:30:00.000Z",
"version": "v1.eyJpZCI6NDIsInJlc291cmNlIjoiZXZlbnQiLCJ2ZXJzaW9uIjoiNCJ9",
"waitlistEnabled": true
},
"finalisation": {
"finalisedAt": "2026-09-25T07:30:00.000Z",
"noShowParticipantIds": [
"0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c"
],
"unknownCount": 3
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Kaldet indeholder ugyldige værdier.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "En gyldig bearer-adgangsoplysning er påkrævet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Adgangsoplysningen giver ikke adgang til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Ressourcen blev ikke fundet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "Den ønskede ændring er i konflikt med ressourcens aktuelle tilstand.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "Ressourcen er ændret, siden den blev læst.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match er påkrævet til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "For mange kald. Prøv igen om lidt.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Der opstod en uventet fejl.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Finalise attendance
Freeze the event’s attendance. Exactly the named registered participants whose attendance is still unknown become no-shows; every other unknown participant stays unknown. Later changes are corrections.
curl --request POST \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/events/42/attendance/finalise' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'Idempotency-Key: finaliseEventAttendanceV1-20260816-001' \
--header 'If-Match: "v1.eyJpZCI6NDIsInJlc291cmNlIjoiZXZlbnQiLCJ2ZXJzaW9uIjoiNCJ9"' \
--header 'Content-Type: application/json' \
--data '{
"noShowParticipantIds": [
"0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c"
]
}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({noShowParticipantIds: ['0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c']})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/events/{eventId}/attendance/finalise', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"event": {
"archivedAt": null,
"cancellationReason": null,
"cancelledAt": null,
"capacity": 80,
"createdAt": "2026-08-01T08:00:00.000Z",
"endsAt": "2026-09-24T17:00:00.000Z",
"finalisationState": "FINALISED",
"finalisedAt": "2026-09-25T07:30:00.000Z",
"format": "IN_PERSON",
"id": 42,
"joinReference": null,
"language": "da",
"location": "Nordhavn Warehouse, Copenhagen",
"organiserUserId": "user_01J5N9CF9QY8T4M2A7W3R6K1P0",
"ownerUserIds": [
"user_01J5N9CF9QY8T4M2A7W3R6K1P0"
],
"planningStatus": "HELD",
"postponedAt": null,
"postponementReason": null,
"publicDescription": "An afternoon on hybrid workplace design.",
"publicSlug": "workplace-forum-2026",
"publicationState": "PUBLISHED",
"registrationClosesAt": "2026-09-22T22:00:00.000Z",
"registrationOpensAt": null,
"registrationState": "OPEN",
"startsAt": "2026-09-24T13:00:00.000Z",
"timezone": "Europe/Copenhagen",
"title": "Workplace Forum 2026",
"updatedAt": "2026-09-25T07:30:00.000Z",
"version": "v1.eyJpZCI6NDIsInJlc291cmNlIjoiZXZlbnQiLCJ2ZXJzaW9uIjoiNCJ9",
"waitlistEnabled": true
},
"finalisation": {
"finalisedAt": "2026-09-25T07:30:00.000Z",
"noShowParticipantIds": [
"0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c"
],
"unknownCount": 3
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Kaldet indeholder ugyldige værdier.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "En gyldig bearer-adgangsoplysning er påkrævet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Adgangsoplysningen giver ikke adgang til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Ressourcen blev ikke fundet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "Den ønskede ændring er i konflikt med ressourcens aktuelle tilstand.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "Ressourcen er ændret, siden den blev læst.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match er påkrævet til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "For mange kald. Prøv igen om lidt.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Der opstod en uventet fejl.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Autorisationer
Godkend med en personlig Floral-adgangsnøgle, der er bundet til ét arbejdsområde.
Overskrifter
Valgfrit korrelations-id fra kalderen. Floral returnerer den anvendte værdi i X-Request-ID.
1 - 128Påkrævet idempotensnøgle. Identiske nye forsøg på samme kanoniske kald gentager oprindelig status, body, ETag, Location og request-id i 24 timer.
1 - 255Stærk ETag fra seneste detalje- eller ændringssvar. En forældet værdi giver 412 VERSION_CONFLICT.
^"(?:[^"\\]|\\.)*"$Sti-parametre
Slug for det arbejdsområde, adgangsoplysningen er bundet til.
1 - 100^[a-z0-9]+(?:-[a-z0-9]+)*$Stable numeric event ID.
x >= 1Krop
Participants to classify as no-shows. Pass an empty list to leave every unknown participant unknown. Maximum 65536 bytes.
500^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$