Get project users
Retrieves information about a filtered subset of users in the specified project.
There are two primary reasons to do this:
- To verify that all users assigned to the project have been activated as members of the project.
- To check other information about users, such as their project user ID, roles, and products.
Note that if you want to retrieve information about users associated with a particular Autodesk hub, call the GET users endpoint.
Note: This operation is forward compatible. Autodesk may add attributes to the response without prior notice, so your app should ignore any attribute it does not recognize.
Authentication
OAuth 2.0 (2-legged) — application context required.
Client Credentials Flow
Token URL: https://developer.api.autodesk.com/authentication/v2/token
Scopes:
account:read— read account and project dataaccount:write— modify account and project datadata:read— read data the application can access
OAuth 2.0 (2-legged with impersonation) — application context with user impersonation
required. Send a User-Id header identifying the
member to act on behalf of; the token authorizes the application, while the operation is
evaluated against that member’s project permissions.
Client Credentials Flow
Token URL: https://developer.api.autodesk.com/authentication/v2/token
Scopes:
account:read— read account and project dataaccount:write— modify account and project data
OAuth 2.0 (3-legged) — user context required. Also accepts a Secure Service Account (SSA) token, which is headless like a two-legged flow but classified as three-legged because it preserves user context.
Authorization Code Flow
Authorization URL: https://developer.api.autodesk.com/authentication/v2/authorize
Token URL: https://developer.api.autodesk.com/authentication/v2/token
Refresh URL: https://developer.api.autodesk.com/authentication/v2/token
Scopes:
data:read— read your dataaccount:read— read account and project dataaccount:write— modify account and project data
Path parameters
The ID of the project. This corresponds to project ID in the Data Management API. To convert a project ID in the Data Management API into a project ID in the Forma API you need to remove the “b.” prefix. For example, a project ID of b.a4be0c34a-4ab7 translates to a project ID of a4be0c34a-4ab7.
Headers
Specifies the region where your request should be routed. If not set, the request is routed automatically, which may result in a slight increase in latency.
Possible values: US, EMEA. For a complete list of supported regions, see the Regions page.
The ID of a user on whose behalf your request is acting.
Your app has access to all users specified by the administrator in the SaaS integrations UI. Provide this header value to identify the user to be affected by the request.
You can use either the user’s Forma ID (id), or their Autodesk ID (autodeskId).
Note that this header is required for hub Admin POST, PATCH, and DELETE endpoints if you want to use a 2-legged authentication context. This header is optional for hub Admin GET endpoints.
Query parameters
A comma-separated list of the products that the returned users must have access to in the specified project. Only users that have access to one or more of the specified products are returned.
Note that every product in the same hub as the project is activated for the project, and a separate subset of these products is active for each user. This endpoint can retrieve users from Forma or BIM 360 projects.
Some products are exclusive to Forma or to BIM 360, others are available on both platforms. Specify only the products on the appropriate platform for the users you want to retrieve.
Possible Forma values: accountAdministration, autoSpecs, build, buildingConnected, capitalPlanning, cloudWorksharing, cost, designCollaboration, docs, financials, insight, modelCoordination, projectAdministration, takeoff, and workshopxr.
Possible BIM 360 values: accountAdministration, assets, cloudWorksharing, costManagement, designCollaboration, documentManagement, field, fieldManagement, glue, insight, modelCoordination, plan, projectAdministration, projectHome, projectManagement, and quantification.
A user name or name pattern that the returned users must have. Can be a partial match based on the value of filterTextMatch that you provide.
For example:
filter[name]=Sample filterTextMatch=startsWith
A user email address or address pattern that the returned users must have. This can be a partial match based on the value of filterTextMatch that you provide.
For example:
filter[email]=sample filterTextMatch=startsWith
A list of user access levels that the returned users must have.
Possible values: accountAdmin, projectAdmin, executive.
Filters users by the date they were added to the project (YYYY-MM-DD). Only users that were added on this date are returned.
The name of a company that returned users must be associated with. Can be a partial match based on the value of filterTextMatch that you provide.
For example: filter[companyName]=Sample filterTextMatch=startsWith
The ID of a user role that the returned users must have.
To obtain a role ID for this filter, you can inspect the roleId field in previous responses to this endpoint or to the GET projects/:projectId/users/:userId endpoint.
A list of the IDs of user roles that the returned users must have.
To obtain a role ID for this filter, you can inspect the roleId field in previous responses to this endpoint or to the GET projects/:projectId/users/:userId endpoint.
A list of statuses that the returned project users must be in. The default values are active and pending.
Possible values: active, pending, and deleted.
A list of fields to sort the returned users by. Multiple sort fields are applied in sequence order - each sort field produces groupings of projects with the same values of that field; the next sort field applies within the groupings produced by the previous sort field.
Each property can be followed by a direction modifier of either asc (ascending) or desc (descending). The default is asc.
Possible values: name, email, firstName, lastName, addressLine1, addressLine2, city, companyName, stateOrProvince, status, phone, postalCode, country and addedOn. Default value: name.
A list of the project fields to include in the response. Default value: all fields.
Possible values: name, email, firstName, lastName, autodeskId, analyticsId, addressLine1, addressLine2, city, stateOrProvince, postalCode, country, imageUrl, phone, jobTitle, industry, aboutMe, companyId, accessLevels, roleIds, roles, status, addedOn and products.
A list of user fields to combine with the SQL OR operator for filtering the returned project users. The OR is automatically incorporated between the fields; any one of them can produce a valid match.
Possible values: id, name, email, autodeskId, status and accessLevels.
Specifies how text-based filters should match values in supported fields.
This parameter can be used in any endpoint that supports text-based filtering (e.g., filter[name], filter[jobNumber], filter[companyName], etc.).
Possible values:
contains (default) – Matches if the field contains the specified text anywhere
startsWith – Matches if the field starts with the specified text
endsWith – Matches if the field ends with the specified text
equals – Matches only if the field exactly matches the specified text
Matching is case-insensitive.
Wildcards and regular expressions are not supported.
The maximum number of records to return in the response.
Default: 20
Minimum: 1
Maximum: 200 (If a larger value is provided, only 200 records are returned)
The index of the first record to return.
Used for pagination in combination with the limit parameter.
Example: limit=20 and offset=40 returns records 41–60.
Response headers
The number of requests remaining in the current rate-limit window.