Users can be added to an existing Project using their emails. You can specify the role of the users being added using the ProjectUserRole enum. ProjectUserRole can take the following values:

  • ADMIN = 0
  • ANNOTATOR = 1
  • REVIEWER = 2
  • ANNOTATOR_REVIEWER = 3
  • TEAM_MANAGER = 4

The Project hash can be found within the URL once a Project has been selected:

app.encord.com/projects/view/\<project_hash>/summary or app.us.encord.com/projects/view/\<project_hash>/summary

For collaborative teams using our SDK, we recommend creating shared service accounts and creating SSH keys for those shared accounts. For example, to have several people create Ontologies, datasets, and projects programmatically, create an email account for use with Encord (for example, encord-admins@mycompany.com) and generate an SSH for that email account.

The following script shows how to add two new annotators to the project. Note how all users get assigned the same role.

Global

# Import dependencies
from encord import EncordUserClient, Project
from encord.utilities.project_user import ProjectUserRole

SSH_PATH = "<private-key-path>"

#Authenticate using the path to your private key
user_client = EncordUserClient.create_with_ssh_private_key(
    ssh_private_key_path=SSH_PATH
)

# Specify the project you'd like to add users to
project = user_client.get_project("<project_hash>")

# Add users by specifying their email addresses, as well as the role these users should have.
added_users = project.add_users(
    ["example1@encord.com", "example2@encord.com"],
    ProjectUserRole.ANNOTATOR,
)

# Print the new users added to the project
print(added_users)

US

# Import dependencies
from encord import EncordUserClient, Project
from encord.utilities.project_user import ProjectUserRole

SSH_PATH = "<private-key-path>"

#Authenticate using the path to your private key
user_client = EncordUserClient.create_with_ssh_private_key(
    ssh_private_key_path=SSH_PATH,
    domain="https://api.us.encord.com"
)

# Specify the project you'd like to add users to
project = user_client.get_project("<project_hash>")

# Add users by specifying their email addresses, as well as the role these users should have.
added_users = project.add_users(
    ["example1@encord.com", "example2@encord.com"],
    ProjectUserRole.ANNOTATOR,
)

# Print the new users added to the project
print(added_users)