List events, register and update participants, mark attendance, and finalise or correct it through Floral’s public API.
Use event operations to read a workspace’s events, keep a participant list in step with another system, and record attendance after the event. The API applies the same rules as the Floral app: capacity, waitlists, registration windows, and attendance finalisation behave identically.
The workspace has the Events add-on, and your token’s owner can use Work in that workspace.
The token has events:read to read events and participants, and events:write to change them. Each scope grants only its own access; a write token cannot read.
You can only see events that the token’s owner can see in Floral. An event or participant you cannot see returns 404 NOT_FOUND, exactly as if it did not exist.
If the Events add-on is not available to the workspace, every event operation returns 404 FEATURE_DISABLED.Set these values once in your shell before running the examples:
Use a personal access token created for this workspace. The examples use synthetic IDs and values; replace them with values returned by your workspace.
Keep FLORAL_TOKEN in a secret manager outside local development. Never commit it to source control or include it in logs.
Event collections use opaque cursor pagination with at most 50 items per page. Filter by planning status, attendance finalisation, owner, or a local date range.
Answers to fields marked as restricted, such as dietary or accessibility needs, are never part of the participant resource. Only the event organiser or a workspace admin can read them, from a separate operation:
A successful registration returns 201 with a Location header and the participant’s ETag. When the event is full and has a waitlist, the participant is created with WAITLISTED state and a waitlistPosition. When registration is closed, or the event is full without a waitlist, the operation returns 409 CONFLICT and creates nothing.
Only the event organiser or a workspace admin can change answers to restricted fields. A request from anyone else that includes a restricted field returns 403 FORBIDDEN and changes nothing.
Mark up to 500 registered participants in one request. Marking requires an Idempotency-Key but no If-Match, so several people can check guests in at the same time.
A batch is applied completely or not at all. It fails with 404 NOT_FOUND if any ID does not belong to the event, with 409 INVALID_STATE if any participant is not registered, and with 409 INVALID_STATE after attendance has been finalised. The response lists the participants whose state changed and those that already had it.
Finalising locks attendance for follow-up. It requires the event’s latest ETag and an Idempotency-Key. List the registered participants who did not attend; everyone else who is still unmarked stays UNKNOWN.
After finalisation, correct one participant at a time with a reason. Send the participant’s latest ETag.
export CORRECTION_KEY="01J5C7Q2S5U8W1Y4A7C0E3G6HJ"curl --request POST --fail-with-body --include \ --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c/attendance-correction" \ --header "Authorization: Bearer $FLORAL_TOKEN" \ --header "Content-Type: application/json" \ --header "Idempotency-Key: $CORRECTION_KEY" \ --header "If-Match: $PARTICIPANT_ETAG" \ --data '{"state": "ATTENDED", "reason": "Signed in at the side entrance."}'
Floral keeps the earlier attendance record and marks it as superseded, so the correction history stays auditable.Floral protects writes with two opaque values:
Send a unique Idempotency-Key when an operation requires one. Retrying the identical request with the same key replays its result for 24 hours. Within that operation, reusing the key with different canonical input returns 409 IDEMPOTENCY_CONFLICT.
Send the latest strong ETag as If-Match when an operation changes an existing resource. A stale value returns 412 VERSION_CONFLICT; a missing value returns 428 PRECONDITION_REQUIRED.
Keep the quote characters around an ETag, and replace your saved value after every successful write. See Reliability and retries for the complete retry rules.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Floral Docs","description":"Guides for using, administering, and integrating with Floral.","colors":{"primary":"#15803D","light":"#16A34A","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/floral-08c29d30/QuuNqYTtBGToH26B/images/floral-logo.png?fit=max\u0026auto=format\u0026n=QuuNqYTtBGToH26B\u0026q=85\u0026s=14c26f3a7759cd96b8e9990737a5d0a7","dark":"https://mintcdn.com/floral-08c29d30/QuuNqYTtBGToH26B/images/floral-logo.png?fit=max\u0026auto=format\u0026n=QuuNqYTtBGToH26B\u0026q=85\u0026s=14c26f3a7759cd96b8e9990737a5d0a7"},"favicon":"https://mintcdn.com/floral-08c29d30/QuuNqYTtBGToH26B/images/floral-logo.png?fit=max\u0026auto=format\u0026n=QuuNqYTtBGToH26B\u0026q=85\u0026s=14c26f3a7759cd96b8e9990737a5d0a7","api":{"playground":{"display":"simple","proxy":false},"examples":{"defaults":"required","languages":["curl","typescript"],"prefill":true},"url":"full"},"navbar":{"links":[{"href":"https://floral.so","label":"Floral.so"}],"primary":{"type":"button","label":"Open Floral","href":"https://app.floral.so"}},"contextual":{"options":["copy","view","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Floral","icon":"flower","href":"https://floral.so"}]},"languages":[{"language":"en","default":true,"href":""},{"language":"da","href":"da"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"floral-08c29d30","hasAudioNarration":false,"actualSubdomain":"floral-08c29d30","customDomains":["docs.floral.so"],"gitSource":{"type":"github","owner":"floralso","repo":"floral-app","deployBranch":"staging","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeb73a78a7cf180eba33871","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"da","tag":"Brug Floral","count":45},{"language":"en","tag":"Use Floral","count":45},{"language":"da","tag":"API-reference","count":32},{"language":"en","tag":"API reference","count":32},{"language":"da","tag":"Byg med Floral","count":16},{"language":"en","tag":"Build with Floral","count":16},{"language":"da","tag":"Start her","count":8},{"language":"da","tag":"Indstillinger","count":8},{"language":"en","tag":"Start here","count":8},{"language":"en","tag":"Settings","count":8},{"language":"en","tag":"Events","count":8},{"language":"da","tag":"Integrationer","count":7},{"language":"da","tag":"Event participants","count":7},{"language":"en","tag":"Integrations","count":7},{"language":"en","tag":"Event participants","count":7},{"language":"da","tag":"Personer","count":6},{"language":"da","tag":"Virksomheder","count":6},{"language":"en","tag":"Companies","count":6},{"language":"en","tag":"People","count":6},{"language":"da","tag":"Offentligt API","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"developers/api/events","slug":"/developers/api/events","pageMetadata":{"title":"Manage event participation","description":"List events, register and update participants, mark attendance, and finalise or correct it through Floral's public API.","icon":"calendar-check","articleId":"api-events","locale":"en","audience":"developer","plan":"Plus","href":"/developers/api/events"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"List events, register and update participants, mark attendance, and finalise or correct it through Floral’s public API.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use event operations to read a workspace’s events, keep a participant list in step with another system, and record attendance after the event. The API applies the same rules as the Floral app: capacity, waitlists, registration windows, and attendance finalisation behave identically.`}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The workspace has the Events add-on, and your token’s owner can use Work in that workspace.`}),`\n`,_jsxs(_components.li,{children:[`The token has `,_jsx(_components.code,{children:`events:read`}),` to read events and participants, and `,_jsx(_components.code,{children:`events:write`}),` to change them. Each scope grants only its own access; a write token cannot read.`]}),`\n`,_jsxs(_components.li,{children:[`You can only see events that the token’s owner can see in Floral. An event or participant you cannot see returns `,_jsx(_components.code,{children:`404 NOT_FOUND`}),`, exactly as if it did not exist.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If the Events add-on is not available to the workspace, every event operation returns `,_jsx(_components.code,{children:`404 FEATURE_DISABLED`}),`.`]}),`\n`,_jsx(_components.p,{children:`Set these values once in your shell before running the examples:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://app.floral.so/api/v1\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-workspace\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"floral_pat_...\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Use a personal access token created for this workspace. The examples use synthetic IDs and values; replace them with values returned by your workspace.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Keep `,_jsx(_components.code,{children:`FLORAL_TOKEN`}),` in a secret manager outside local development. Never commit it to source control or include it in logs.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`list-and-filter-events`,children:`List and filter events`}),`\n`,_jsx(_components.p,{children:`Event collections use opaque cursor pagination with at most 50 items per page. Filter by planning status, attendance finalisation, owner, or a local date range.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --get`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"planningStatus=READY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"from=2026-09-01\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"to=2026-09-30\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"sort=starts-asc\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"limit=20\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Pass a non-null `,_jsx(_components.code,{children:`nextCursor`}),` as `,_jsx(_components.code,{children:`cursor`}),` with the same filters and sort to get the next page.`]}),`\n`,_jsx(Heading,{level:`2`,id:`retrieve-an-event-and-its-version`,children:`Retrieve an event and its version`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The strong `,_jsx(_components.code,{children:`ETag`}),` header and the `,_jsx(_components.code,{children:`version`}),` field carry the event’s current version. You need it to finalise attendance.`]}),`\n`,_jsx(Heading,{level:`2`,id:`list-participants`,children:`List participants`}),`\n`,_jsx(_components.p,{children:`Participants are returned in registration order. Filter by registration state, attendance state, or CRM match status.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --get`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/participants\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"registrationState=REGISTERED\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"limit=50\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Each participant has a UUID `,_jsx(_components.code,{children:`id`}),` and its own `,_jsx(_components.code,{children:`version`}),`. The `,_jsx(_components.code,{children:`responses`}),` object holds ordinary registration answers only.`]}),`\n`,_jsx(Heading,{level:`2`,id:`read-restricted-answers`,children:`Read restricted answers`}),`\n`,_jsx(_components.p,{children:`Answers to fields marked as restricted, such as dietary or accessibility needs, are never part of the participant resource. Only the event organiser or a workspace admin can read them, from a separate operation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c/restricted-responses\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Anyone else receives `,_jsx(_components.code,{children:`403 FORBIDDEN`}),`. Store these answers only as long as you need them for the event’s logistics.`]}),`\n`,_jsx(Heading,{level:`2`,id:`register-a-participant`,children:`Register a participant`}),`\n`,_jsxs(_components.p,{children:[`Registration requires an `,_jsx(_components.code,{children:`Idempotency-Key`}),`. Answers are validated against the event’s registration form.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` REGISTRATION_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01J5C7A2B9M4K8T1Q6D3R0V5XZ\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/participants\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$REGISTRATION_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Ada Jensen\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"email\": \"ada@example.com\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"companyName\": \"Acme Nordic\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"responses\": { \"session_track\": \"Operations\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A successful registration returns `,_jsx(_components.code,{children:`201`}),` with a `,_jsx(_components.code,{children:`Location`}),` header and the participant’s `,_jsx(_components.code,{children:`ETag`}),`. When the event is full and has a waitlist, the participant is created with `,_jsx(_components.code,{children:`WAITLISTED`}),` state and a `,_jsx(_components.code,{children:`waitlistPosition`}),`. When registration is closed, or the event is full without a waitlist, the operation returns `,_jsx(_components.code,{children:`409 CONFLICT`}),` and creates nothing.`]}),`\n`,_jsx(Heading,{level:`2`,id:`update-a-participant`,children:`Update a participant`}),`\n`,_jsxs(_components.p,{children:[`Send only the fields you want to change, with the participant’s latest `,_jsx(_components.code,{children:`ETag`}),`. Sending `,_jsx(_components.code,{children:`null`}),` clears an optional field.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PARTICIPANT_ETAG`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\"v1.ZXhhbXBsZS1wYXJ0aWNpcGFudA\"'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PATCH`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"If-Match: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PARTICIPANT_ETAG`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"phone\": \"+45 12 34 56 78\"}'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Only the event organiser or a workspace admin can change answers to restricted fields. A request from anyone else that includes a restricted field returns `,_jsx(_components.code,{children:`403 FORBIDDEN`}),` and changes nothing.`]}),`\n`,_jsx(Heading,{level:`2`,id:`mark-attendance`,children:`Mark attendance`}),`\n`,_jsxs(_components.p,{children:[`Mark up to 500 registered participants in one request. Marking requires an `,_jsx(_components.code,{children:`Idempotency-Key`}),` but no `,_jsx(_components.code,{children:`If-Match`}),`, so several people can check guests in at the same time.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` CHECK_IN_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01J5C7F4H2N6P9R3S8T1V5W0YA\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/attendance\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$CHECK_IN_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"participantIds\": [\"0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"state\": \"ATTENDED\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A batch is applied completely or not at all. It fails with `,_jsx(_components.code,{children:`404 NOT_FOUND`}),` if any ID does not belong to the event, with `,_jsx(_components.code,{children:`409 INVALID_STATE`}),` if any participant is not registered, and with `,_jsx(_components.code,{children:`409 INVALID_STATE`}),` after attendance has been finalised. The response lists the participants whose state changed and those that already had it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`finalise-attendance`,children:`Finalise attendance`}),`\n`,_jsxs(_components.p,{children:[`Finalising locks attendance for follow-up. It requires the event’s latest `,_jsx(_components.code,{children:`ETag`}),` and an `,_jsx(_components.code,{children:`Idempotency-Key`}),`. List the registered participants who did not attend; everyone else who is still unmarked stays `,_jsx(_components.code,{children:`UNKNOWN`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` EVENT_ETAG`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\"v1.ZXhhbXBsZS1ldmVudA\"'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` FINALISE_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01J5C7K8M1P4R7T0V3X6Z9B2DC\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/attendance/finalise\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FINALISE_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"If-Match: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$EVENT_ETAG`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"noShowParticipantIds\": []}'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Finalising an event that is already finalised returns `,_jsx(_components.code,{children:`409 INVALID_STATE`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`correct-finalised-attendance`,children:`Correct finalised attendance`}),`\n`,_jsxs(_components.p,{children:[`After finalisation, correct one participant at a time with a reason. Send the participant’s latest `,_jsx(_components.code,{children:`ETag`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` CORRECTION_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01J5C7Q2S5U8W1Y4A7C0E3G6HJ\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/workspaces/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/events/42/participants/0f8b6c1e-3a52-4d6e-9b7a-2c4e5f6a7b8c/attendance-correction\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FLORAL_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$CORRECTION_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"If-Match: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PARTICIPANT_ETAG`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"state\": \"ATTENDED\", \"reason\": \"Signed in at the side entrance.\"}'`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Floral keeps the earlier attendance record and marks it as superseded, so the correction history stays auditable.`}),`\n`,_jsx(_components.p,{children:`Floral protects writes with two opaque values:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Send a unique `,_jsx(_components.code,{children:`Idempotency-Key`}),` when an operation requires one. Retrying the identical request with the same key replays its result for 24 hours. Within that operation, reusing the key with different canonical input returns `,_jsx(_components.code,{children:`409 IDEMPOTENCY_CONFLICT`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Send the latest strong `,_jsx(_components.code,{children:`ETag`}),` as `,_jsx(_components.code,{children:`If-Match`}),` when an operation changes an existing resource. A stale value returns `,_jsx(_components.code,{children:`412 VERSION_CONFLICT`}),`; a missing value returns `,_jsx(_components.code,{children:`428 PRECONDITION_REQUIRED`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Keep the quote characters around an `,_jsx(_components.code,{children:`ETag`}),`, and replace your saved value after every successful write. See `,_jsx(_components.a,{href:`/developers/api/reliability`,children:`Reliability and retries`}),` for the complete retry rules.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Manage event participation","description":"List events, register and update participants, mark attendance, and finalise or correct it through Floral's public API.","icon":"calendar-check","articleId":"api-events","locale":"en","audience":"developer","plan":"Plus","href":"/developers/api/events"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"List and filter events","slug":"list-and-filter-events","depth":2,"children":[]},{"title":"Retrieve an event and its version","slug":"retrieve-an-event-and-its-version","depth":2,"children":[]},{"title":"List participants","slug":"list-participants","depth":2,"children":[]},{"title":"Read restricted answers","slug":"read-restricted-answers","depth":2,"children":[]},{"title":"Register a participant","slug":"register-a-participant","depth":2,"children":[]},{"title":"Update a participant","slug":"update-a-participant","depth":2,"children":[]},{"title":"Mark attendance","slug":"mark-attendance","depth":2,"children":[]},{"title":"Finalise attendance","slug":"finalise-attendance","depth":2,"children":[]},{"title":"Correct finalised attendance","slug":"correct-finalised-attendance","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"floral-08c29d30","siteName":"Floral Docs","title":"Manage event participation - Floral Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/developers/api/events","matchLevel":0},"da":{"href":"/da/developers/api/events","matchLevel":1}}},"lastModified":"2026-11-04T18:04:38.156Z","originalFileLocation":"developers/api/events.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"List events, register and update participants, mark attendance, and finalise or correct it through Floral\u0026#x27;s public API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Floral Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Manage event participation - Floral Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"List events, register and update participants, mark attendance, and finalise or correct it through Floral\u0026#x27;s public API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Floral Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.floral.so/developers/api/events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://floral-08c29d30.mintlify.site/_mintlify/api/og/v2?division=API+guides\u0026amp;title=Manage+event+participation\u0026amp;description=List+events%2C+register+and+update+participants%2C+mark+attendance%2C+and+finalise+or+correct+it+through+Floral%27s+public+API.\u0026amp;theme=53fb0f422b0523da1ecc8705\u0026amp;signature=22d2a48787041d2ef6b28ef9e68a95ff4630c7ff296597e8f154676d467ef7ce\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Manage event participation - Floral Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"List events, register and update participants, mark attendance, and finalise or correct it through Floral\u0026#x27;s public API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://floral-08c29d30.mintlify.site/_mintlify/api/og/v2?division=API+guides\u0026amp;title=Manage+event+participation\u0026amp;description=List+events%2C+register+and+update+participants%2C+mark+attendance%2C+and+finalise+or+correct+it+through+Floral%27s+public+API.\u0026amp;theme=53fb0f422b0523da1ecc8705\u0026amp;signature=22d2a48787041d2ef6b28ef9e68a95ff4630c7ff296597e8f154676d467ef7ce\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/floral-08c29d30/83P1OZPA8MhrAFP6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Floral Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15803D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.floral.so/developers/api/events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/api/events.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.floral.so/developers/api/events\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"da\" href=\"https://docs.floral.so/da/developers/api/events\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.floral.so/developers/api/events\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.floral.so/#organization\",\"name\":\"Floral Docs\",\"url\":\"https://docs.floral.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/floral-08c29d30/QuuNqYTtBGToH26B/images/floral-logo.png?fit=max\u0026auto=format\u0026n=QuuNqYTtBGToH26B\u0026q=85\u0026s=14c26f3a7759cd96b8e9990737a5d0a7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.floral.so#website\",\"name\":\"Floral Docs\",\"url\":\"https://docs.floral.so\",\"publisher\":{\"@id\":\"https://docs.floral.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.floral.so/developers/api/events#webpage\",\"url\":\"https://docs.floral.so/developers/api/events\",\"name\":\"Manage event participation\",\"description\":\"List events, register and update participants, mark attendance, and finalise or correct it through Floral's public API.\",\"dateModified\":\"2026-11-04T18:04:38.156Z\",\"isPartOf\":{\"@id\":\"https://docs.floral.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.floral.so/developers/api/events#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.floral.so/developers/api/events#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API guides\",\"item\":\"https://docs.floral.so/developers/api/companies\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manage event participation\",\"item\":\"https://docs.floral.so/developers/api/events\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.floral.so/developers/api/events#article\",\"headline\":\"Manage event participation\",\"name\":\"Manage event participation\",\"description\":\"List events, register and update participants, mark attendance, and finalise or correct it through Floral's public API.\",\"url\":\"https://docs.floral.so/developers/api/events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.floral.so/developers/api/events#webpage\"},\"dateModified\":\"2026-11-04T18:04:38.156Z\",\"publisher\":{\"@id\":\"https://docs.floral.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.floral.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Floral Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Floral Docs","nav":{"global":{"anchors":[{"anchor":"Floral","icon":"flower","href":"https://floral.so"}]},"languages":[{"language":"en","default":true,"tabs":[{"tab":"Use Floral","pages":[{"title":"Use Floral","href":""}]},{"tab":"Build with Floral","pages":[{"group":"Start here","pages":[{"title":"Build with Floral","icon":"code","href":"/developers/overview"},{"title":"Quickstart","icon":"rocket","href":"/developers/quickstart"}]},{"group":"MCP","pages":[{"title":"MCP overview","icon":"plug","href":"/developers/mcp/overview"},{"title":"Connect an MCP client","icon":"link","href":"/developers/mcp/connect"},{"title":"MCP tool reference","icon":"screwdriver-wrench","href":"/developers/mcp/tools"},{"title":"MCP access and safety","icon":"shield-halved","href":"/developers/mcp/access-and-safety"}]},{"group":"Public API","pages":[{"title":"API overview","icon":"brackets-curly","href":"/developers/api/overview"},{"title":"Authentication","icon":"key","href":"/developers/api/authentication"},{"title":"Reliability and retries","icon":"rotate","href":"/developers/api/reliability"},{"title":"Errors","icon":"triangle-exclamation","href":"/developers/api/errors"},{"title":"Versioning and deprecation","icon":"code-branch","href":"/developers/api/versioning"}]},{"group":"API guides","pages":[{"title":"Work with companies","icon":"building","href":"/developers/api/companies"},{"title":"Work with people","icon":"users","href":"/developers/api/people"},{"title":"Generate and read briefings","icon":"file-lines","href":"/developers/api/briefings"},{"title":"Review and approve summaries","description":"List, retrieve, annotate, and approve meeting summaries through Floral's public API.","icon":"clipboard-check","href":"/developers/api/summaries"},{"title":"Manage event participation","icon":"calendar-check","href":"/developers/api/events"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/search/search-companies-and-people"}]}]},{"language":"da","pages":[{"title":"da","href":"/da/developers/api/events"}]}]},"basePath":"","title":"Manage event participation - Floral Docs","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}