Events (Admin)

Update speaker (Admin)

PUT/manage/events/:eventId/speakers/:entryId

Update speaker metadata (pickedUp and display overrides). For guest speakers, guestProfile also updates the user's profile. Requires the speakersWrite permission.

AuthLogin required

Path parameters

eventIdstringrequired

Event ID or slug.

entryIdstringrequired

The speaker's registration ID.

Request body

pickedUpbooleanoptional

Whether to feature the speaker.

overridesSpeakerOverridesoptional

Display overrides (firstName / lastName / nativeName / avatarUrl / title / bio / languages). Null falls back to the user's profile, any string including an empty string overrides it (empty = intentionally blank), and omitted fields are unchanged.

guestProfileGuestProfileoptional

Guest speakers only: applies the edited profile (firstName / lastName / nativeName / email / lang / avatarUrl / title / bio) to the user itself; send avatarUrl null to clear the avatar. Guests hold no display overrides, so every override except the localized title / bio is cleared. ENTRY_NOT_GUEST for 4S-user speakers.

Notes

When accessed with an OAuth access token, `email` fields are recursively removed from the response JSON (they are retained for session-authenticated dashboard access).

Response

Returns Speaker.

Request
curl https://api.4s.link/manage/events/EVENT_ID/speakers/ENTRY_ID \
-X PUT \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"pickedUp": true,
"overrides": { "title": "Principal Engineer", "bio": null }
}'
Example response
{
"id": "en1a2b3-...",
"entryId": "en1a2b3-...",
"userId": "a1b2c3d4-...",
"firstName": "太郎",
"lastName": "山田",
"title": "Principal Engineer",
"pickedUp": true,
"overrides": { "firstName": null, "lastName": null, "nativeName": null, "avatarUrl": null, "title": "Principal Engineer", "bio": null, "languages": null },
"entry": { "id": "en1a2b3-...", "state": "CONFIRMED", "ticketId": null, "checkedInAt": null, "ticket": null },
"user": { "id": "a1b2c3d4-...", "slug": "taro", "guest": false }
}