Update a contact in a session

Update a contact's registration data for a specific session. This endpoint allows updating UTM tracking data (referrer, utm_source, utm_medium, etc.) and custom registration fields. Protected fields like email cannot be modified. For a team member, it also sets their role on this session (session_role). The role adds to the event's default roles, the member's event-level role and their workspace role: a lower session role does not remove what those already allow, so an event organizer set to session viewer stays an organizer. The event owner's session role cannot be set.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
📘

This endpoint requires the events:write scope.

How to use this endpoint

This endpoint lets you update someone who is already registered for one of your event sessions: their UTM tracking data, their custom fields and, for a team member, their role on the session. Only the attributes you send are changed. Protected fields, like the email, can't be modified.

How to set a team member's session role

A team member registered for a session can be given a role on that session with the session_role attribute: organizer, moderator, speaker or viewer. Here's an example of a payload:

{
  "data": {
    "type": "people",
    "attributes": {
      "session_role": "speaker"
    }
  }
}

The new role is applied right away, including in a session room that is already open, and the response returns it in registrant_detail.session_role. Keep in mind that:

  • Only team members can be given a session role. Setting one for a participant, a guest speaker or the event owner returns a 422 error.
  • A session role adds to the roles the team member already has on the event and in the workspace. It never removes them: an event organizer set as viewer on a session remains an organizer.

How to fill custom fields

Custom fields need to be provided as an array of id / value pairs, using the fields configured for the session's event in its "Registration" settings page.
Single-select custom field values need to be sent as regular strings, whereas multi-select custom fields need to be sent as an array of strings. Here's an example of a payload that also updates UTM data:

{
  "data": {
    "type": "people",
    "attributes": {
      "fields": [
        {
          "id": "company",
          "value": "Acme"
        },
        {
          "id": "favorite_colors",
          "value": ["green"]
        }
      ],
      "utm_source": "Twitter",
      "utm_medium": "Feed",
      "utm_campaign": "Summer"
    }
  }
}
🚧

Beware of rate limits

If you're using this endpoint to update multiple registrants at the same time, don't forget that Livestorm's API rate limits you to send up to 5 requests per second. In this case, we advise you to limit the number of calls per second.

Path Params
string
required

Session ID

string
required

Contact (Person) ID

Body Params
data
object
Responses

403

Workspace blocked

404

Contact not found

422

Session role set on someone who is not a team member

Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/vnd.api+json
*/*