Get a user's projects
Returns a list of projects for a specified user within a Forma or BIM 360 account. Only projects the user participates in will be returned. The calling user must be an account or hub administrator.
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 hub that contains the projects. This corresponds to the hub ID used in the Data Management API, with the “b.” prefix removed. For example, b.c8b0c73d-3ae9 becomes c8b0c73d-3ae9.
The ID of the user. To find the ID call GET users. You can use either the Forma ID (id) or the Autodesk ID (autodeskId).
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 user project fields to include in the response. If not specified, all available fields are included by default.
Possible values: accessLevels, accountId, addressLine1, addressLine2, city, constructionType, country, createdAt, classification, deliveryMethod, endDate, imageUrl, jobNumber, latitude, longitude, name, personalWorkspaceDetails, platform, postalCode, projectValue, sheetCount, startDate, stateOrProvince, status, thumbnailImageUrl, timezone, type, updatedAt, contractType and currentPhase.
Filters projects by classification. Possible values:
production – Standard production projects.
template – Project templates that can be cloned to create production projects.
component – Placeholder projects that contain standardized components (e.g., forms) for use across projects. Only one component project is permitted per hub. Known as a library in the Forma unified products UI.
sample – The single sample project automatically created upon Forma trial setup. Only one sample project is permitted per hub.
Filters projects by designation. Possible values: standard (non-personal projects, default) and personal (personal workspaces).
Filters projects by name. Supports partial matches when used with filterTextMatch. For example filter[name]=ABCco&filterTextMatch=startsWith returns projects whose names start with “ABCco”.
Filters by platform. Possible values: acc (Forma) and bim360 (BIM 360).
Filters projects by status. Possible values: active, pending, archived, suspended.
Filters by project type. To exclude a type, prefix it with - (e.g., -Bridge excludes bridge projects).
Possible values: Airport, Assisted Living / Nursing Home, Bridge, Canal / Waterway, Convention Center, Court House, Data Center, Dams / Flood Control / Reservoirs, Demonstration Project, Dormitory, Education Facility, Government Building, Harbor / River Development, Hospital, Hotel / Motel, Library, Manufacturing / Factory, Medical Laboratory, Medical Office, Military Facility, Mining Facility, Multi-Family Housing, Museum, Oil & Gas,Plant, Office, OutPatient Surgery Center, Parking Structure / Garage, Performing Arts, Power Plant, Prison / Correctional Facility, Rail, Recreation Building, Religious Building, Research Facility / Laboratory, Restaurant, Retail, Seaport, Single-Family Housing, Solar Farm, Stadium/Arena, Streets / Roads / Highways, Template Project, Theme Park, Training Project, Transportation Building, Tunnel, Utilities, Warehouse (non-manufacturing), Waste Water / Sewers, Water Supply, Wind Farm.
Filters by a user-defined project identifier. Supports partial matches when used with filterTextMatch. For example, filter[jobNumber]=HP-0002&filterTextMatch=equals returns projects where the job number is exactly “HP-0002”.
Filters projects updated within a specific date range in ISO 8601 format. For example:
Date range: 2023-03-02T00:00:00.000Z..2023-03-03T23:59:59 .999Z
Specific start date: 2023-03-02T00:00:00.000Z..
Specific end date: ..2023-03-02T23:59:59.999Z
For more details, see JSON API Filtering.
Filters projects by user access level. Possible values: projectAdmin, projectMember.
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.
A list of fields to sort the returned user projects 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 (the default), startDate, endDate, type, status, jobNumber, constructionType, deliveryMethod, contractType, currentPhase, createdAt, updatedAt and platform.
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.