User Management via the API
The Users API allows integrations installed in Enterprise tenants to programmatically manage Benchling users. This includes basic CRUD operations like reading and writing user data, bulk create/update of users, and querying for specific user activity.
If you're new to the Benchling API, be sure to check out the Tutorial in our Overview page before proceeding.
Users API Overview
The Users API includes a number of endpoints for managing Benchling users:
Endpoint | Description |
---|---|
Returns a paginated list of Benchling users. Can filter based on userId and name. | |
Creates a single Benchling user. Accepts a user object including email, handle, and name. | |
Returns a single user by Benchling API ID. | |
Updates a single Benchling users. Supports suspending Benchling users via the | |
Returns activity metadata for a single user by Benchling API ID. Currently limited to | |
Creates a number of Benchling users. Accepts an array of user objects, each including email, handle, and name. | |
Updates a number of Benchling users. Accepts an array of user objects.
|
Permissions
User management is a highly privileged activity; for this reason, creating and updating Benchling users requires tenant admin privileges. Because apps cannot be made tenant admins, creating and updating Benchling users requires use of an API key generated by a tenant admin.
Reading Benchling user data (e.g. using the List users endpoint) doesn't require any specific privileges, but the users returned depends on their organization membership. An app can only read a user's information if they are both members of the same organization. The same principle applies when using an API key, based on the user who created the key.
Suspension
Suspending users can be accomplished using either the single or bulk update endpoints. In the body of user update object, setting the isSuspended
property to true
will suspend a user. Suspended users still exist on a tenant, but are logged out of Benchling and cannot re-authenticate. For example:
curl -X PUT https://$YOUR_DOMAIN/api/v2/users/$USERID
-H "Content-Type: application/json"
-u $YOUR_API_KEY:
-d '{"isSuspended": true}'
Updated about 1 month ago