cURL
curl --request PATCH \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'If-Match: "v1.eyJpZCI6IjBmOGI2YzFlLTNhNTItNGQ2ZS05YjdhLTJjNGU1ZjZhN2I4YyIsInJlc291cmNlIjoicGFydGljaXBhbnQiLCJ2ZXJzaW9uIjoiMyJ9"' \
--header 'Content-Type: application/json' \
--data '{
"phone": "+45 20 99 88 77"
}'const options = {
method: 'PATCH',
headers: {
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({phone: '+45 20 99 88 77'})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/events/{eventId}/participants/{participantId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"participant": {
"attendanceState": "UNKNOWN",
"company": {
"id": 42,
"name": "Acme Nordic"
},
"companyName": "Acme Nordic",
"createdAt": "2026-09-02T10:20:00.000Z",
"email": "ada@acme-nordic.example",
"eventId": 42,
"id": "0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c",
"matchStatus": "MATCHED",
"name": "Ada Jensen",
"person": {
"id": 84,
"name": "Ada Jensen"
},
"phone": "+45 20 99 88 77",
"registrationState": "REGISTERED",
"representedCompany": {
"establishmentNumber": null,
"id": 42,
"name": "Acme Nordic"
},
"responses": {
"session_track": {
"answeredAt": "2026-09-02T10:20:00.000Z",
"value": "Workplace strategy"
}
},
"source": "HOSTED",
"updatedAt": "2026-09-12T08:05:00.000Z",
"version": "v1.eyJpZCI6IjBmOGI2YzFlLTNhNTItNGQ2ZS05YjdhLTJjNGU1ZjZhN2I4YyIsInJlc291cmNlIjoicGFydGljaXBhbnQiLCJ2ZXJzaW9uIjoiMyJ9",
"waitlistPosition": null
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "The request contains invalid values.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid bearer credential is required.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "The credential does not grant this operation.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The resource was not found.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested change conflicts with the current resource state.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "The resource changed since it was read.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match is required for this operation.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry shortly.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Event participants
Update an event participant
Partially update a participant’s details and registration answers. Changing a restricted answer requires the event organiser or a workspace admin.
PATCH
https://app.floral.so
/
api
/
v1
/
workspaces
/
{workspaceSlug}
/
events
/
{eventId}
/
participants
/
{participantId}
cURL
curl --request PATCH \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'If-Match: "v1.eyJpZCI6IjBmOGI2YzFlLTNhNTItNGQ2ZS05YjdhLTJjNGU1ZjZhN2I4YyIsInJlc291cmNlIjoicGFydGljaXBhbnQiLCJ2ZXJzaW9uIjoiMyJ9"' \
--header 'Content-Type: application/json' \
--data '{
"phone": "+45 20 99 88 77"
}'const options = {
method: 'PATCH',
headers: {
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({phone: '+45 20 99 88 77'})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/events/{eventId}/participants/{participantId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"participant": {
"attendanceState": "UNKNOWN",
"company": {
"id": 42,
"name": "Acme Nordic"
},
"companyName": "Acme Nordic",
"createdAt": "2026-09-02T10:20:00.000Z",
"email": "ada@acme-nordic.example",
"eventId": 42,
"id": "0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c",
"matchStatus": "MATCHED",
"name": "Ada Jensen",
"person": {
"id": 84,
"name": "Ada Jensen"
},
"phone": "+45 20 99 88 77",
"registrationState": "REGISTERED",
"representedCompany": {
"establishmentNumber": null,
"id": 42,
"name": "Acme Nordic"
},
"responses": {
"session_track": {
"answeredAt": "2026-09-02T10:20:00.000Z",
"value": "Workplace strategy"
}
},
"source": "HOSTED",
"updatedAt": "2026-09-12T08:05:00.000Z",
"version": "v1.eyJpZCI6IjBmOGI2YzFlLTNhNTItNGQ2ZS05YjdhLTJjNGU1ZjZhN2I4YyIsInJlc291cmNlIjoicGFydGljaXBhbnQiLCJ2ZXJzaW9uIjoiMyJ9",
"waitlistPosition": null
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "The request contains invalid values.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid bearer credential is required.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "The credential does not grant this operation.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The resource was not found.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested change conflicts with the current resource state.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "The resource changed since it was read.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match is required for this operation.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry shortly.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Authorizations
Authenticate with a workspace-pinned Floral personal access token.
Headers
Optional caller-generated correlation ID. Floral returns the effective value in X-Request-ID.
Required string length:
1 - 128Strong ETag from the latest detail or mutation response. A stale value returns 412 VERSION_CONFLICT.
Pattern:
^"(?:[^"\\]|\\.)*"$Path Parameters
Slug of the workspace pinned to the credential.
Required string length:
1 - 100Pattern:
^[a-z0-9]+(?:-[a-z0-9]+)*$Stable numeric event ID.
Required range:
x >= 1Stable participant UUID.
Body
application/json
Omitted fields remain unchanged. responses contains only the answers to change; null clears an optional answer. Maximum 65536 bytes.
Maximum string length:
255Maximum string length:
320Pattern:
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Required string length:
1 - 255Maximum string length:
64Show child attributes
Show child attributes
Response
Participant updated
Show child attributes
Show child attributes
