openapi: 3.0.0
info:
title: Construction.Account.Admin Account Management User Projects API
version: '1.0'
contact:
name: Autodesk Plaform Services
url: https://aps.autodesk.com/
email: aps.help@autodesk.com
termsOfService: https://www.autodesk.com/company/legal-notices-trademarks/terms-of-service-autodesk360-web-services/forge-platform-web-services-api-terms-of-service
x-support: https://stackoverflow.com/questions/tagged/autodesk-platform-services
description: 'The Account Admin API automates creating and managing projects, assigning and managing project users, and managing member and partner company directories. You can also synchronize data with external systems.
'
servers:
- url: https://developer.api.autodesk.com
security:
- 2-legged: []
- 3-legged: []
tags:
- name: User Projects
paths:
/construction/admin/v1/accounts/{accountId}/users/{userId}/projects:
parameters:
- schema:
type: string
name: accountId
in: path
required: true
description: The ID of the ACC account that contains the project being created or the projects being retrieved. This corresponds to the hub ID in the Data Management API. To convert a hub ID into an account ID, remove the “b." prefix. For example, a hub ID of b.c8b0c73d-3ae9 translates to an account ID of c8b0c73d-3ae9.
- schema:
type: string
name: userId
in: path
required: true
description: The ID of the user. You can use either the ACC ID (id) or the Autodesk ID (autodeskId).
get:
summary: Get user projects
tags:
- User Projects
responses:
'200':
description: A list of requested user projects.
content:
application/json:
schema:
$ref: '#/components/schemas/UserProjectsPage'
'400':
description: The request could not be understood by the server due to malformed syntax.
'401':
description: Request has not been applied because it lacks valid authentication credentials for the target resource.
'403':
description: The server understood the request but refuses to authorize it.
'404':
description: The resource cannot be found.
'406':
description: The server cannot produce a response matching the list of acceptable values defined in the request.
'410':
description: Access to the target resource is no longer available.
'429':
description: User has sent too many requests in a given amount of time.
'500':
description: An unexpected error occurred on the server.
'503':
description: Server is not ready to handle the request.
operationId: getUserProjects
x-stoplight:
id: f6km4vaercy9d
description: Returns a list of projects for a specified user within an Autodesk Construction Cloud (ACC) or BIM 360 account. Only projects the user participates in will be returned. The calling user must be an account administrator.
security: []
parameters:
- schema:
$ref: '#/components/schemas/Region'
in: header
name: Region
description: '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, AUS, CAN, DEU, IND, JPN, GBR. For a complete list of supported regions, see the Regions page.'
- schema:
type: string
in: header
name: User-Id
description: 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 ACC ID (id), or their Autodesk ID (autodeskId). Note that this header is required for Account Admin POST, PATCH, and DELETE endpoints if you want to use a 2-legged authentication context. This header is optional for Account Admin GET endpoints.
- schema:
$ref: '#/components/schemas/filterID'
in: query
name: filter[id]
description: A list of project IDs to filter by.
- schema:
$ref: '#/components/schemas/userProjectFields_internal'
in: query
name: fields
description: '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, platform, postalCode, projectValue, sheetCount, startDate, stateOrProvince, status, thumbnailImageUrl, timezone, type, updatedAt, contractType and currentPhase.'
- schema:
$ref: '#/components/schemas/filterClassification_internal'
in: query
name: filter[classification]
description: '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 account. Known as a library in the ACC unified products UI. sample – The single sample project automatically created upon ACC trial setup. Only one sample project is permitted per account. Max length: 255'
- schema:
type: string
in: query
name: filter[name]
description: '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”. Max length: 255'
- schema:
$ref: '#/components/schemas/filterPlatform_internal'
in: query
name: filter[platform]
description: 'Filters by platform. Possible values: acc (Autodesk Construction Cloud) and bim360 (BIM 360). Max length: 255'
- schema:
$ref: '#/components/schemas/status_internal'
in: query
name: filter[status]
description: 'Filters projects by status. Possible values: active, pending, archived, suspended.'
- schema:
$ref: '#/components/schemas/filterType'
in: query
name: filter[type]
description: '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.'
- schema:
type: string
in: query
name: filter[jobNumber]
description: '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”. Max length: 255'
- schema:
type: string
in: query
name: filter[updatedAt]
description: '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. Max length: 100'
- schema:
$ref: '#/components/schemas/userProjectAccessLevels_internal'
in: query
name: filter[accessLevels]
description: 'Filters projects by user access level. Possible values: projectAdmin, projectMember. Max length: 255'
- schema:
$ref: '#/components/schemas/filterTextMatch'
in: query
name: filterTextMatch
description: 'Defines how text-based filters should match results. Possible values: contains (default) – Returns results where the text appears anywhere in the field. startsWith – Matches only if the field starts with the given value. endsWith – Matches only if the field ends with the given value. equals – Matches only if the field is an exact match.'
- schema:
$ref: '#/components/schemas/userProjectSortBy_internal'
in: query
name: sort
description: '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.'
- schema:
type: integer
in: query
name: limit
description: 'The maximum number of records per request. Default: 20. Minimum: 1, Maximum: 200. If a value greater than 200 is provided, only 200 records are returned.'
- schema:
type: integer
in: query
name: offset
description: The record number to start returning results from, used for pagination. For example, if limit=20 and offset=20, the request retrieves the second page of results.
components:
schemas:
filterID:
title: filterID
type: array
items:
type: string
status:
title: status
x-stoplight:
id: 7imcqgahx8744
type: string
enum:
- active
- pending
- archived
- suspended
filterType:
title: filterType
type: array
items:
type: string
UserProjectsPage:
title: UserProjectsPage
x-stoplight:
id: 21k3qjv4voxsj
type: object
properties:
pagination:
$ref: '#/components/schemas/Pagination'
results:
type: array
x-stoplight:
id: gfyprxttv09sa
items:
$ref: '#/components/schemas/UserProject'
classification:
title: classification
x-stoplight:
id: kiltb9wsm9iye
type: string
enum:
- production
- template
- component
- sample
filterPlatform_internal:
title: filterPlatform_internal
x-stoplight:
id: 07osm8uexhmzc
type: array
items:
$ref: '#/components/schemas/platform'
x-stoplight:
id: blbjael8tal1d
Pagination:
title: Pagination
x-stoplight:
id: q1bi13503pl18
type: object
properties:
limit:
type: integer
x-stoplight:
id: 8izi1f176ek68
offset:
type: integer
x-stoplight:
id: v1vdhhbk5vhtj
totalResults:
type: integer
x-stoplight:
id: o7y9s28pvovds
nextUrl:
type: string
x-stoplight:
id: egebyg74p2y51
previousUrl:
type: string
x-stoplight:
id: rhoc949ms1w0p
description: "\tContains pagination details for the records returned by the endpoint."
userProjectSortBy_internal:
title: userProjectSortBy_internal
x-stoplight:
id: lcab8shnq3bqn
type: array
items:
$ref: '#/components/schemas/userProjectSortBy'
Region:
title: Region
x-stoplight:
id: 5rz8jxdpgo4zq
type: string
enum:
- US
- EMEA
- AUS
- CAN
- DEU
- IND
- JPN
- GBR
description: 'Specifies the region where your request should be routed. Possible values are:
- ``US`` - Data center for the US region.
- ``EMEA`` - Data center for the European Union, Middle East, and Africa regions.
- ``AUS`` - Data center for the Australia region.
- ``CAN`` - Data center for the Canada region.
- ``DEU`` - Data center for the Germany region.
- ``IND`` - Data center for the India region.
- ``JPN`` - Data center for the Japan region.
- ``GBR`` - Data center for the United Kingdom region.'
userProjectAccessLevels_internal:
title: userProjectAccessLevels_internal
x-stoplight:
id: 6k9hozeod0uw9
type: array
items:
$ref: '#/components/schemas/filterUserProjectsAccessLevels'
userProjectFields:
title: userProjectFields
x-stoplight:
id: fy1b5tna99hlx
enum:
- accessLevels
- accountId
- addressLine1
- addressLine2
- city
- constructionType
- country
- createdAt
- classification
- deliveryMethod
- endDate
- imageUrl
- jobNumber
- latitude
- longitude
- name
- platform
- postalCode
- projectValue
- sheetCount
- startDate
- stateOrProvince
- status
- thumbnailImageUrl
- timezone
- type
- updatedAt
- contractType
- currentPhase
description: 'Possible values: accessLevels, accountId, addressLine1, addressLine2, city, constructionType, country, createdAt, classification, deliveryMethod, endDate, imageUrl, jobNumber, latitude, longitude, name, platform, postalCode, projectValue, sheetCount, startDate, stateOrProvince, status, thumbnailImageUrl, timezone, type, updatedAt, contractType and currentPhase.'
UserProject:
title: UserProjects
x-stoplight:
id: plmcgnhp47xzj
type: object
properties:
id:
type: string
x-stoplight:
id: 1c5qx7gynn1xb
name:
type: string
x-stoplight:
id: ksf91csdi2bww
startDate:
type: string
x-stoplight:
id: fvtfj8lc1z9zo
endDate:
type: string
x-stoplight:
id: h43bjx5szmsqe
type:
type: string
x-stoplight:
id: 8yoy6veksnyha
classification:
type: string
x-stoplight:
id: wpyl2maqv1tfw
projectValue:
type: object
x-stoplight:
id: 4azod9lx00sdp
properties:
value:
type: number
x-stoplight:
id: 2u8hoxbsk0y3j
currency:
type: string
x-stoplight:
id: om037w3a0htka
status:
type: string
x-stoplight:
id: dcz1h6o6olnfv
jobNumber:
type: string
x-stoplight:
id: vo6fawen0jm7i
addressLine1:
type: string
x-stoplight:
id: i007upy8nhu2r
addressLine2:
type: string
x-stoplight:
id: co6e1yvqifdn2
city:
type: string
x-stoplight:
id: tyvtrji3sdnbq
stateOrProvince:
type: string
x-stoplight:
id: ne8i2oguwq7w1
postalCode:
type: string
x-stoplight:
id: us6vbwa65sgdt
country:
type: string
x-stoplight:
id: blhaa4hafsk7m
latitude:
type: string
x-stoplight:
id: hcnrvm61cvtir
longitude:
type: string
x-stoplight:
id: wavhek4j0ji86
timezone:
type: string
x-stoplight:
id: r652g4e5s8iiz
constructiontype:
type: string
x-stoplight:
id: 72ssr45v7vf7r
deliveryMethod:
type: string
x-stoplight:
id: r9347swo3kufg
contractType:
type: string
x-stoplight:
id: n57ef17waubcc
currentPhase:
type: string
x-stoplight:
id: swkada61qtkp5
imageUrl:
type: string
x-stoplight:
id: s13853c7sqfxj
thumbnailImageUrl:
type: string
x-stoplight:
id: pt070foltwzzm
createdAt:
type: string
x-stoplight:
id: eor56akwbojpr
updatedAt:
type: string
x-stoplight:
id: 7f2h4747y0g3d
accountId:
type: string
x-stoplight:
id: imb1079oceczz
sheetCount:
type: integer
x-stoplight:
id: k12b5jfgzcv3k
platform:
type: string
x-stoplight:
id: 34qz3ermzcqll
accessLevels:
x-stoplight:
id: g6dygis0tn93s
type: object
properties:
projectAdmin:
type: boolean
x-stoplight:
id: 5mk3sjbuzvwbr
projectMember:
type: boolean
x-stoplight:
id: mpbt2fkkr3l82
status_internal:
title: status_internal
type: array
items:
$ref: '#/components/schemas/status'
x-stoplight:
id: 3sxoqp01jo0t2
filterClassification_internal:
title: filterClassification_internal
type: array
items:
$ref: '#/components/schemas/classification'
userProjectSortBy:
title: userProjectSortBy
x-stoplight:
id: daw62gto3pxxm
description: 'Possible values: name, email, firstName, lastName, addressLine1, addressLine2, city, companyName, stateOrProvince, status, phone, postalCode, country and addedOn. Default value: name.'
enum:
- name asc
- startDate asc
- endDate asc
- type asc
- status asc
- jobNumber asc
- constructionType asc
- deliveryMethod asc
- contractType asc
- currentPhase asc
- createdAt asc
- updatedAt asc
- platform asc
- name desc
- startDate desc
- endDate desc
- type desc
- status desc
- jobNumber desc
- constructionType desc
- deliveryMethod desc
- contractType desc
- currentPhase desc
- createdAt desc
- updatedAt desc
- platform desc
userProjectFields_internal:
title: userProjectFields_Internal
x-stoplight:
id: 05hzynqgt6ohg
type: array
items:
$ref: '#/components/schemas/userProjectFields'
filterUserProjectsAccessLevels:
title: filterUserProjectsAccessLevels
x-stoplight:
id: puy9b77q6msat
enum:
- projectMember
- projectAdmin
description: ' Possible values: projectAdmin, projectMember.'
platform:
title: platform
x-stoplight:
id: w4j4h1zy6fji2
type: string
enum:
- acc
- bim360
filterTextMatch:
title: filterTextMatch
x-stoplight:
id: l613i9qr8h8a6
type: string
enum:
- contains
- startsWith
- endsWith
- equals
securitySchemes:
2-legged:
type: oauth2
flows:
clientCredentials:
tokenUrl: ''
refreshUrl: ''
scopes: {}
3-legged-implicit:
type: oauth2
flows:
implicit:
authorizationUrl: ''
refreshUrl: ''
scopes: {}
3-legged:
type: oauth2
flows:
authorizationCode:
authorizationUrl: ''
tokenUrl: ''
refreshUrl: ''
scopes: {}
x-stoplight:
id: zm6m3b30rcbon