The User object is the primary representation of a person’s account in Elements. The User is what helps connect Profiles, Inventory, Progress, and other collections inside of Elements.
User UID #
Each authentication method maps to a User UID internally, which in turn keeps a reference to the User. There can be any number of these User UIDs, but each scheme can only exist once per User. In other words, there can be any number of different ways to access the User, but that User can only have a single Google id, Apple id, Steam id, etc.

Profiles #
Many of the core features are associated directly with a Profile. Elements uses a one-to-many model for the User / Profile relationship. A Profile is linked directly to both one single Application and one single User.
One example might be a game where you might have your account login (User) and several characters that you can create with individual character attributes and story progress (Profile).

As Elements is a multi-Tenant system, there can be many Applications that allow for many Profiles per Application.
Some collections, such as Inventory, are associated directly with the User object, and can be accessed across multiple Profiles. However, other collections reference the individual Profile directly.
So how do I make a User…? #
Ah right! There are a few different ways to make a User, but without diving into a custom Element, here are the three simplest.
First, we can use the admin console as a SUPERUSER to create new users (see Users and Profiles).
Second, we can use the SignUp API from our frontend code for basic User id / password auth. Every field on the signup request is optional — name, email, and password can all be omitted, in which case Elements generates them for you (a random name, an <name>@anonymous.invalid placeholder email, and a random password). Because a generated password can’t be seen anywhere else, it’s returned once in the signup response. You can also pass a profiles array on the same request to create one or more Profiles for the new User in the same call, rather than creating them separately afterward.
(Elements 3.9+) Instead of (or in addition to) an explicit profiles entry, you can pass autoCreateProfileApplicationNameOrId (an Application name or id) on the User-create/signup request to have Elements automatically create the User’s primary Profile for that Application — but only if the Application is configured for it (see autoCreateProfile and maxProfiles in Applications); otherwise the field is a no-op. Naming the same Application in both autoCreateProfileApplicationNameOrId and profiles is a 400 Bad Request, since the two mechanisms conflict for that Application.
Lastly, we can use any OIDC, OAuth2, or Custom Auth to sign in, which will automatically create a User with the info in the token if one doesn’t exist yet.
Check out here for more info on User creation and authentication

