Update speaker

PUT/manage/events/:eventId/speakers/:id

Update a speaker. Requires the speakersWrite permission.

AuthLogin required

Path parameters

eventIdstringrequired

Event ID or slug.

idstringrequired

Speaker ID.

Request body

userIdstring

User ID, when linking to a 4S user.

firstName / lastName / nativeNamestring

Name; firstName and lastName are required on create. No length limit.

titlestring

Session title (required); no length limit.

biostring

Bio.

avatarUrlstring

Avatar image URL; must be a valid URL.

languagesobject

Localized profile.

langstring

Primary language code; up to 10 characters. Defaults to "ja".

ticketIdstring

Ticket ID assigned to the speaker; must belong to the same event.

pickedUpboolean

Whether to feature the speaker.

statusstring

One of DRAFT / COMPLETED / CANCELLED.

Object structures

languages

Keyed by language code; each entry overrides the title / description shown for that language. Languages you omit fall back to the default fields.

<lang>object

Language code (ja, en, …)

<lang>.titlestring

Title shown in that language.

<lang>.descriptionstring

Description shown in that language.

{
  "ja": { "title": "オープニング基調講演", "description": "..." },
  "en": { "title": "Opening Keynote", "description": "..." }
}

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).

Request
curl https://api.4s.link/manage/events/EVENT_ID/speakers/ID \
-X PUT \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"title": "Principal Engineer",
"pickedUp": true
}'
Example response
{
"id": "sp1a2b3-...",
"userId": "a1b2c3d4-...",
"firstName": "太郎",
"lastName": "山田",
"nativeName": "山田 太郎",
"title": "Engineer",
"bio": "...",
"avatarUrl": "https://.../avatar.png",
"status": "PUBLISHED",
"pickedUp": false,
"checkInStatus": "NOT_CHECKED_IN",
"order": 0
}