Participants
A participant (Teilnehmer:in) is the person who takes part in an offer, usually a child of a family account. Participants can also exist without an account, for example when a young person applies on their own.
All participant endpoints need ROLE_PARTICIPANTS_ADMIN. Retrieving, changing, deleting and pseudonymising a single participant also need ROLE_ADMIN; without it, the participant is a 404.
The participant model
- Name
uuid- Type
- string
- Description
The participant's identifier.
- Name
firstname- Type
- string
- Description
The first name.
- Name
lastname- Type
- string
- Description
The last name.
- Name
name- Type
- string
- Description
The full name.
- Name
dateOfBirth- Type
- timestamp
- Description
The date of birth (midnight of that day).
- Name
age- Type
- integer
- Description
The age in years, today.
- Name
email- Type
- string
- Description
The e-mail address in effect: the participant's own, or else the account's.
- Name
ownEmail- Type
- string
- Description
The participant's own e-mail address, if one was entered.
- Name
phone, mobile- Type
- string
- Description
The phone numbers in effect: the participant's own, or else the account's.
- Name
ownPhone, ownMobile- Type
- string
- Description
The participant's own phone numbers, if entered.
- Name
address- Type
- object
- Description
The postal address, with
street,postalCode,cityandcountry.
- Name
account- Type
- reference
- Description
The family account the participant belongs to. Missing for participants without an account.
- Name
attendances- Type
- object
- Description
How many applications the participant has, by state:
confirmed,waitlisted,waitingandrejected.totalcounts every application except withdrawn and unfulfilled ones.
- Name
createdAt- Type
- timestamp
- Description
When the participant was created.
- Name
piiMasked- Type
- boolean
- Description
Whether personal data was left out because you may not see it. See Masked personal data.
List all participants
Returns a page of participants, ordered by last name and first name.
Optional filters
- Name
q- Type
- string
- Description
Only participants whose name contains this text.
- Name
account- Type
- string
- Description
Only participants of this account (UUID or e-mail address).
- Name
edition- Type
- string
- Description
Only participants who applied for an offer of this edition (UUID or alias).
- Name
offer- Type
- string
- Description
Only participants who applied for this offer (UUID).
- Name
withoutAccount- Type
- boolean
- Description
truefor participants without an account,falsefor those with one.
- Name
createdSince- Type
- timestamp
- Description
Only participants created since this moment.
- Name
page, itemsPerPage- Type
- integer
- Description
See Pagination.
Request
curl -G https://ferienpass-musterstadt.de/api/participants \
-H "Authorization: Bearer $FEPLI_TOKEN" \
--data-urlencode "account=familie.mueller@example.org"
Response
[
{
"uuid": "0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06",
"firstname": "Lena",
"lastname": "Müller",
"name": "Lena Müller",
"dateOfBirth": "2015-04-12T00:00:00+02:00",
"age": 11,
"email": "familie.mueller@example.org",
"mobile": "0170 1234567",
"address": {
"street": "Lindenallee 12",
"postalCode": "12345",
"city": "Musterstadt",
"country": "de"
},
"account": {
"uuid": "0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05",
"name": "Anna Müller"
},
"attendances": {
"confirmed": 2,
"waitlisted": 1,
"waiting": 0,
"rejected": 0,
"total": 3
},
"createdAt": "2025-06-02T19:20:11+02:00",
"piiMasked": false
}
]
Retrieve a participant
Returns one participant. Their applications are listed with GET /attendances?participant={uuid}.
Request
curl https://ferienpass-musterstadt.de/api/participants/0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06 \
-H "Authorization: Bearer $FEPLI_TOKEN"
Create a participant
Creates a participant, with or without an account. A participant without an account needs their own email.
Required attributes
- Name
firstname- Type
- string
- Description
The first name, up to 255 characters.
- Name
lastname- Type
- string
- Description
The last name, up to 255 characters.
Optional attributes
- Name
dateOfBirth- Type
- date
- Description
The date of birth, such as
2015-04-12. Must be in the past.
- Name
account- Type
- string
- Description
The family account (UUID or e-mail address).
- Name
email- Type
- string
- Description
The participant's own e-mail address. Leave it out to use the account's.
- Name
phone, mobile- Type
- string
- Description
The participant's own phone numbers.
- Name
address- Type
- object
- Description
street,postalCode,cityandcountry(two letters, defaults tode).
Request
curl -X POST https://ferienpass-musterstadt.de/api/participants \
-H "Authorization: Bearer $FEPLI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"firstname": "Paul",
"lastname": "Müller",
"dateOfBirth": "2018-11-03",
"account": "familie.mueller@example.org"
}'
The response (201 Created) holds the new participant.
Update a participant
Changes a participant. The attributes are the same as for creating a participant; send only what you want to change.
account moves the participant to another family; "account": null detaches them from their account. email, phone and mobile set the participant's own contact details; null falls back to the account's.
Request
curl -X PATCH https://ferienpass-musterstadt.de/api/participants/0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06 \
-H "Authorization: Bearer $FEPLI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"dateOfBirth": "2015-04-21"}'
Delete a participant
Deletes a participant together with their applications. Responds with 204 No Content.
If a paid receipt refers to one of their applications, the participant can't be deleted (409). Pseudonymise them instead.
Request
curl -X DELETE https://ferienpass-musterstadt.de/api/participants/0191c7b3-2e3f-7a4b-9c5d-6e7f8a9b0c16 \
-H "Authorization: Bearer $FEPLI_TOKEN"
Pseudonymise a participant
Erases the participant's personal data. The participant record is deleted; their applications are kept under a random pseudonym, so receipts and statistics stay intact. Afterwards, the participant is a 404.
The request has no body, and the response is 204 No Content.
Request
curl -X POST https://ferienpass-musterstadt.de/api/participants/0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06/pseudonymize \
-H "Authorization: Bearer $FEPLI_TOKEN"