Update a member

Updates a member in the community associated with your API key. The response is a Member object, the same one returned by GET /members/{member_id}.

How fields are updated

  • Omitted fields are left unchanged.
  • Fields set to a value are updated.
  • Fields set to null are cleared.

custom_data is merged into the member’s existing custom data rather than replaced. Keys you include are added or updated, keys you omit stay as they are, and a key set to null is removed.

Fields you can’t change

These fields are set when a member is created and can’t be updated. Including them returns a field_immutable error:

  • communication_channel
  • communication_channel_id
  • activation_mode
  • external_source_name

date_of_birth can be updated, but it can’t be cleared.

Errors and retries

All validation runs before anything is written, so any 4xx response means the member wasn’t changed.

Updates are idempotent: sending the same request again leaves the member in the same state, so retries are safe.

A 500 response can mean the profile fields were updated but custom_data wasn’t saved. If you get a 500, send the same request again.

Path Params
uuid
required

The member's identifier.

Body Params

The fields to change.

Fields accepted when updating a member. Absent leaves a field untouched, null clears it.

string | null

City.

string | null

Country name.

string | null

ISO country code.

custom_data
object

Merges into the member's existing custom data. A null value clears that one key, and other keys stay unchanged.

Each key is key:source.

  • key is the field's key, such as favorite_color for a field named "Favorite Color". It is not the display name.
  • source is client for a field your community fills, or fan for a field the member fills on the sign-up form.

The keys a member already holds come back in custom_data on GET /members/{member_id}.

Every value is a string, whatever the field's type:

Field typeExample value
string"blue"
integer"42"
decimal"9.99", with at most 2 or 4 decimal places, as the field defines
boolean"true" or "false"
date"2026-10-21", as YYYY-MM-DD
datetime"2026-10-21T14:30:00Z", as ISO 8601 in UTC

A value holds at most 100 characters. A key that is not a field of your community is refused with
custom_field_not_found. A value that its field's type cannot hold is refused with invalid_value.

date

Date of birth. Updatable but not clearable: null returns field_not_nullable.

string | null

Email address.

string | null

Given name.

string | null

Gender, from the closed set configured on the sign-up form.

string | null

Family name.

string | null

Abbreviated state or province code.

string | null

Geographic state or province.

string | null

Postal code.

Headers
string

Pins the API version for this request as YYYY-MM-DD. Defaults to the version pinned to your
credential.

Responses

Callback
Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json