Skip to content
Warning:
You are viewing the Feeds v2 documentation. Feeds v2 is in maintenance mode and no longer receives new features. New projects should use Feeds v3, a major upgrade in performance, capabilities, and developer experience. To move an existing app, follow the migration guide.

Users

Stream allows you to store user information and embed them inside activities or use them for personalization. When stored in activities, users are automatically enriched by Stream.

# The Go API client exposes users methods on Client.Users.
# When adding reactions, collections or reading feeds with enrichment
# you can provide `user_id` as an argument

Adding Users

This endpoint allows you to insert a new user.

Name Type Description
id string The unique identifier for the new user (eg. username, user id, etc.). The value is restricted to alphanumeric characters, dashes and underscore symbols.
data object The data related to the user.
// create a new user, if the user already exist an error is returned
	userData := stream.User{
		ID: "123",
		Data: map[string]any{
			"name":    "John Doe",
			"occupation": "Software Engineer",
			"gender":   "male",
		},
	}
	resp, err := client.Users().Add(context.TODO(), userData, false)
	if err != nil {
		panic(err)
	}

	// get or create a new user, if the user already exist the user is returned
	resp, err := client.Users().Add(context.TODO(), userData, true)
	if err != nil {
		panic(err)
	}
Info:

The size of a user object can not exceed 10kB

Retrieving Users

The retrieving users endpoint allows you to retrieve a user by their ID.

resp, err := client.Users().Get(context.TODO(), "123")
	if err != nil {
		panic(err)
	}

Removing Users

The delete endpoint removes a user by their ID.

resp, err := client.Users().Delete(context.TODO(), "123")
	if err != nil {
		panic(err)
	}
Info:

When you delete a user it will be converted to a missing reference and throw an error when enriching.

Updating Users

This endpoint allows you to update a user by their ID.

Parameters

name type description default optional
id string The ID of the user to update -
data object The data related to the user -
data := map[string]any{
		"name":    "John Doe",
		"occupation": "Software Engineer",
		"gender":   "female",
	}
	resp, err := client.Users().Update(context.TODO(), "123", data)
	if err != nil {
		panic(err)
	}