Skip to main content
Version: 2.0.0


This function is used to sync (save) a user's information to the cloud and PDP (Policy Decision Point) upon user creation.


This function should be used for the initial creation of the user. This means that when you need to have the user synced between your authentication solution and Permit, this is the function you need to use.

Once the user has been synced with Permit, you should not use this sdk call to update the user's role.

Instead, you should use the assignRole function.


ctx - The context of the request. user - An object that contains the information about the user. The payload is defined below.



Same as user object in createUser function.

key - A unique id by which Permit will identify the user for permission checks.

You will later pass this Key to the permit.check() API. You can use anything for this Key - the user email, a UUID or anything else as long as it's unique on your end. The user key must be url-friendly (slugified).

Email - optional - The email of the user. If synced, will be unique inside the environment.
FirstName - optional - First name of the user.
LastName - optional - Last name of the user.
Attributes - optional - Arbitrary user attributes that will be used to enforce attribute-based access control policies.

user := models.NewUserCreate("user-key")
"age": "26",


newUser, err := Permit.Api.Users.SyncUser(ctx, *user)