Guest Users

Last Edit: Nov 27 2020

Guest sessions can be created client-side and do not require any server-side authentication. Support and livestreams are common use cases for guests users because really often you want a visitor to be able to use chat on your application without (or before) they have a regular user account.

Guest users are not available to application using multi-tenancy (teams).

Unlike anonymous users, guest users are counted towards your MAU usage.

Guest users have a limited set of permissions. You can read more about how to configure permissions here. You can create a guest user session by using setGuestUser instead of setUser.

await client.setGuestUser({ id: 'tommaso' });

client.getGuestToken(userId, userName).enqueue(result -> {
    User user =;
    String token =;

    client.setUser(user, token, null);

    return Unit.INSTANCE;

let userExtraData = UserExtraData(name: "Bender", avatarURL: URL(string: "")!)
let user = User(id: "bender", extraData: userExtraData)
// Setup the current user and guest token.
Client.shared.setGuestUser(user: user)

val userId = "user-id"
val userName = "bender"
client.getGuestToken(userId, userName).enqueue {
    val token =
    val user =

    client.setUser(user, token)
The user object schema is the same as the one described in the Setting the user portion of the docs.