openapi: 3.0.0
info:
title: Construction.Account.Admin Account Management 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: Projects
paths:
/construction/admin/v1/accounts/{accountId}/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.
get:
summary: Get Project in account
responses:
'200':
description: A list of requested projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectsPage'
'400':
description: The request could not be understood by the server due to malformed syntax.
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Resource Not Found
'406':
description: Not Acceptable
'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: Internal Server Error
'503':
description: Service Unavailable
operationId: getProjects
description: Retrieves a list of the projects in the specified account.
parameters:
- schema:
type: string
in: header
name: Accept-Language
description: This header is not currently supported in the Account Admin API.
- schema:
$ref: '#/components/schemas/Region'
in: header
name: Region
description: 'The region where the bucket resides. Acceptable values: US, EMEA, AUS, CAN, DEU, IND, JPN, GBR.'
- schema:
type: string
in: header
name: User-Id
description: Note that this header is not relevant for Account Admin GET endpoints. The ID of a user on whose behalf your API request is acting. Required if you’re using a 2-legged authentication context, which must be 2-legged OAuth2 security with user impersonation. 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).
- schema:
$ref: '#/components/schemas/fields_internal'
in: query
name: fields
description: 'A comma-separated list of the project fields to include in the response. Default value: all fields.'
- schema:
$ref: '#/components/schemas/filterClassification_internal'
in: query
name: filter[classification]
description: 'A list of the classifications of projects to include in the response. Possible values: production, template, component, sample.'
- schema:
$ref: '#/components/schemas/filterPlatform_internal'
in: query
name: filter[platform]
description: 'Filter resource by platform. Possible values: acc and bim360.'
- schema:
$ref: '#/components/schemas/products_internal'
in: query
name: filter[products]
description: A comma-separated list of the products that the returned projects must use. Only projects that use one or more of the listed products are returned.
- schema:
type: string
in: query
name: filter[name]
description: 'A project name or name pattern to filter projects by. Can be a partial match based on the value of filterTextMatch that you provide; for example: filter[name]=ABCco filterTextMatch=startsWith. Max length: 255'
- schema:
$ref: '#/components/schemas/filterType'
in: query
name: filter[type]
description: A list of project types to filter projects by. To exclude a project type from the response, prefix it with - (a hyphen); for example, -Bridge excludes bridge projects.
- schema:
$ref: '#/components/schemas/status_internal'
in: query
name: filter[status]
description: 'A list of the statuses of projects to include in the response. Possible values: active pending archived suspended'
- schema:
type: string
in: query
name: filter[businessUnitId]
description: The ID of the business unit that returned projects must be associated with.
- schema:
type: string
in: query
name: filter[jobNumber]
description: The user-defined identifier for a project to be returned. This ID was defined when the project was created. This filter accepts a partial match based on the value of filterTextMatch that you provide.
- schema:
type: string
in: query
name: filter[updatedAt]
description: A range of dates during which the desired projects were updated. The range must be specified with dates in ISO 8601 format with time required. Separate multiple values with commas.
- schema:
$ref: '#/components/schemas/filterTextMatch'
in: query
name: filterTextMatch
description: 'When filtering on a text-based field, this value indicates how to do the matching. Default value: contains. Possible values: contains, startsWith, endsWith and equals.'
- schema:
$ref: '#/components/schemas/sort_internal'
in: query
name: sort
description: A list of fields to sort the returned 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.
- schema:
type: integer
in: query
name: limit
description: 'The maximum number of records to return in a single request. Possible range: 1-200. Default value: 20.'
- schema:
type: integer
in: query
name: offset
description: The record number that the returned page should start with. When the total number of records exceeds the value of limit, increase the offset value in subsequent requests to continue getting the remaining results.
security:
- 2-legged: []
- 3-legged-implicit: []
- 3-legged: []
tags:
- Projects
post:
summary: Create new Project
responses:
'202':
description: APS has received the request but not yet completed it.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
description: The request could not be understood by the server due to malformed syntax.
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Resource Not Found
'406':
description: Not Acceptable
'410':
description: Access to the target resource is no longer available.
'415':
description: The server refuses to accept the request because the payload format is in an unsupported format.
'429':
description: User has sent too many requests in a given amount of time.
'500':
description: Internal Server Error
'503':
description: Service Unavailable
operationId: createProject
description: Creates a new project in the specified account. You can create the project directly, or clone the project from a project template.
parameters:
- schema:
type: string
in: header
name: Accept-Language
description: This header is not currently supported in the Account Admin API.
- schema:
$ref: '#/components/schemas/Region'
in: header
name: Region
description: 'The region where the bucket resides. Acceptable values: US, EMEA, AUS, CAN, DEU, IND, JPN, GBR.'
- schema:
type: string
in: header
name: User-Id
description: Note that this header is not relevant for Account Admin GET endpoints. The ID of a user on whose behalf your API request is acting. Required if you’re using a 2-legged authentication context, which must be 2-legged OAuth2 security with user impersonation. 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).
security:
- 2-legged: []
- 3-legged-implicit: []
- 3-legged: []
tags:
- Projects
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectPayload'
/construction/admin/v1/projects/{projectId}:
parameters:
- schema:
type: string
name: projectId
in: path
required: true
get:
summary: Get a project by ID
responses:
'200':
description: A list of requested projects.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
description: The request could not be understood by the server due to malformed syntax.
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Resource Not Found
'406':
description: Not Acceptable
'407':
description: Proxy Authentication Required
'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: Internal Server Error
'503':
description: Service Unavailable
operationId: getProject
description: Retrieves a project specified by project ID.
parameters:
- schema:
type: string
in: header
name: Accept-Language
description: This header is not currently supported in the Account Admin API.
- schema:
$ref: '#/components/schemas/Region'
in: header
name: Region
description: 'The region where the bucket resides. Acceptable values: US, EMEA, AUS, CAN, DEU, IND, JPN, GBR.'
- schema:
type: string
in: header
name: User-Id
description: Note that this header is not relevant for Account Admin GET endpoints. The ID of a user on whose behalf your API request is acting. Required if you’re using a 2-legged authentication context, which must be 2-legged OAuth2 security with user impersonation. 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).
- in: query
name: fields
description: 'A comma-separated list of the project fields to include in the response. Default value: all fields.'
schema:
$ref: '#/components/schemas/fields_internal'
security:
- 2-legged: []
- 3-legged: []
- 3-legged-implicit: []
tags:
- Projects
/hq/v1/accounts/{account_id}/projects/{project_id}/image:
parameters:
- schema:
type: string
name: project_id
in: path
required: true
description: The account ID of the project. This corresponds to hub ID in the Data Management API. To convert a hub ID into an account ID you need to 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: account_id
in: path
required: true
description: 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 BIM 360 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.
patch:
summary: Create or update a project’s image
operationId: createProjectImage
responses:
'200':
description: A list of requested projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectPatch'
'400':
description: The request could not be understood by the server due to malformed syntax.
'403':
description: Forbidden
'404':
description: Resource Not Found
'409':
description: Conflict
'422':
description: The request was unable to be followed due to restrictions.
'500':
description: Internal Server Error
description: Create or update a project’s image.
security:
- 2-legged: []
- 3-legged: []
- 3-legged-implicit: []
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- body
properties:
body:
type: string
description: The file to be uploaded as HTTP multipart (chunk) data. Supported MIME types are image/png, image/jpeg, image/jpg, image/bmp, and image/gif.
format: binary
tags:
- Projects
parameters:
- schema:
$ref: '#/components/schemas/Region'
in: header
name: Region
description: 'The geographic area where the data is stored. Acceptable values: US, EMEA, AUS, CAN, DEU, IND, JPN, GBR. By default, it is set to US.'
/project/v1/hubs/{hub_id}/projects:
parameters:
- $ref: '#/components/parameters/hub_id'
get:
tags:
- Projects
operationId: getHubProjects
summary: Get Projects
description: "Returns a collection of active projects within the specified hub. The returned projects can be Autodesk Construction Cloud (ACC), BIM 360, BIM 360 Team, Fusion Team, and A360 Personal projects. \n\nFor BIM 360 and ACC projects a hub ID corresponds to an Account ID. To convert an Account ID to a hub ID, prefix the account ID with ``b.``. For example, a BIM 360 account ID of ```c8b0c73d-3ae9``` translates to a hub ID of ``b.c8b0c73d-3ae9``.\n\nSimilarly, to convert a BIM 360 and ACC project IDs to Data Management project IDs prefix the BIM 360 or ACC Project ID with ``b.``. For example, a project ID of ``c8b0c73d-3ae9`` translates to a project ID of ``b.c8b0c73d-3ae9``.\n\n**Note:** This operation supports Autodesk Construction Cloud (ACC) Projects. For more information, see the [ACC Platform API documentation](https://en.docs.acc.v1/overview/introduction/). "
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
- $ref: '#/components/parameters/filter_id'
- $ref: '#/components/parameters/filter_extension_type'
- $ref: '#/components/parameters/page_number'
- $ref: '#/components/parameters/page_limit'
responses:
'200':
description: 'The list of projects was successfully retrieved. '
content:
application/json:
schema:
$ref: '#/components/schemas/Projects'
'400':
$ref: '#/components/responses/400-general'
'401':
$ref: '#/components/responses/401-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
/project/v1/hubs/{hub_id}/projects/{project_id}:
parameters:
- $ref: '#/components/parameters/hub_id'
- $ref: '#/components/parameters/project_id'
get:
tags:
- Projects
operationId: getProject
summary: Get a Project
description: 'Returns the specified project from within the specified hub.
For BIM 360 Docs, a hub ID corresponds to a BIM 360 account ID. To convert a BIM 360 account ID to a hub ID, prefix the account ID with ``b.``. For example, an account ID of ```c8b0c73d-3ae9``` translates to a hub ID of ``b.c8b0c73d-3ae9``.
Similarly, to convert a BIM 360 project ID to a Data Management project ID prefix the BIM 360 Project ID with ``b.``. For example, a project ID of ``c8b0c73d-3ae9`` translates to a project ID of ``b.c8b0c73d-3ae9``.
**Note:** This operation supports Autodesk Construction Cloud (ACC) Projects. For more information, see the [ACC Platform API documentation](https://en.docs.acc.v1/overview/introduction/). '
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'200':
description: The project was successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/Project_2'
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
/project/v1/hubs/{hub_id}/projects/{project_id}/hub:
parameters:
- $ref: '#/components/parameters/hub_id'
- $ref: '#/components/parameters/project_id'
get:
tags:
- Projects
operationId: getProjectHub
summary: Get Hub for Project
description: 'Returns the hub that contains the project specified by the ``project_id`` parameter.
**Note:** This operation supports Autodesk Construction Cloud (ACC) Projects. For more information, see the [ACC Platform API documentation](https://en.docs.acc.v1/overview/introduction/). '
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'200':
description: Information about the hub was successfully returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Hub'
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
/project/v1/hubs/{hub_id}/projects/{project_id}/topFolders:
parameters:
- $ref: '#/components/parameters/hub_id'
- $ref: '#/components/parameters/project_id'
get:
tags:
- Projects
operationId: getProjectTopFolders
summary: List Top-level Project Folders
description: 'Returns the details of the highest level folders within a project that the user calling this operation has access to. The user must have at least read access to the folders.
If the user is a Project Admin, it returns all top-level folders in the project. Otherwise, it returns all the highest level folders in the folder hierarchy the user has access to.
Users with access permission to a folder has access permission to all its subfolders.
**Note:** This operation supports Autodesk Construction Cloud (ACC) Projects. For more information, see the [ACC Platform API documentation](https://en.docs.acc.v1/overview/introduction/). '
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
- $ref: '#/components/parameters/excludeDeleted'
- $ref: '#/components/parameters/projectFilesOnly'
responses:
'200':
description: The top-level folders of the specified project were returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/TopFolders'
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
/data/v1/projects/{project_id}/storage:
parameters:
- $ref: '#/components/parameters/project_id'
post:
tags:
- Projects
operationId: createStorage
summary: Create a Storage Location in OSS
description: 'Creates a placeholder for an item or a version of an item in the OSS. Later, you can upload the binary content for the item or version to this storage location.
**Note:** This operation supports Autodesk Construction Cloud (ACC) Projects. For more information, see the [ACC Platform API documentation](https://en.docs.acc.v1/overview/introduction/). '
security:
- 2-legged:
- data:create
- 3-legged:
- data:create
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'201':
description: The storage location was created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Storage'
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/StoragePayload'
description: ''
/data/v1/projects/{project_id}/downloads/{download_id}:
parameters:
- $ref: '#/components/parameters/project_id'
- $ref: '#/components/parameters/download_id'
get:
tags:
- Projects
operationId: getDownload
summary: Get Download Details
description: 'Returns the details of a downloadable format of a version of an item.
'
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'200':
description: The details of the specified download were retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Download'
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
/data/v1/projects/{project_id}/downloads:
parameters:
- $ref: '#/components/parameters/project_id'
post:
tags:
- Projects
operationId: createDownload
summary: Create Download
description: "Kicks off a job to generate the specified download format of the version. Once the job completes, the specified format becomes available for download. \n"
security:
- 2-legged:
- data:create
- 3-legged:
- data:create
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'202':
description: A job to generate the download format was successfully started.
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedDownload'
requestBody:
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/DownloadPayload'
description: ''
/data/v1/projects/{project_id}/jobs/{job_id}:
parameters:
- $ref: '#/components/parameters/project_id'
- $ref: '#/components/parameters/job_id'
get:
tags:
- Projects
operationId: getDownloadJob
summary: Check Download Creation Progress
description: "Checks the status of a job that generates a downloadable format of a version of an item. \n\n**Note**: If the job has finished, this operation returns a HTTP status 303, with the ``location`` return header set to the URI that returns the details of the download.\n"
security:
- 2-legged:
- data:read
- 3-legged:
- data:read
parameters:
- $ref: '#/components/parameters/x-user-id'
responses:
'200':
description: Details of the specified job was returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'303':
description: The request has been redirected to a new location.
'400':
$ref: '#/components/responses/400-general'
'403':
$ref: '#/components/responses/403-general'
'404':
$ref: '#/components/responses/404-general'
components:
schemas:
json_api_meta_link:
title: json_api_meta_link
x-stoplight:
id: 6c1450io6o3zx
type: object
description: Meta-information on links to this resource.
properties:
link:
$ref: '#/components/schemas/json_api_link'
x-stoplight:
id: haazb0d04arzm
web_view_link:
title: web_view_link
x-stoplight:
id: b0lyf514eksq4
type: object
description: An object containing a link that opens the resource in a browser.
properties:
href:
type: string
x-stoplight:
id: j0xj0hp05wo0l
description: The location (URL) of the resource the link points to.
required:
- href
type_folder:
type: string
enum:
- folders
description: The type of the resource. Possible values are ``folders``.
type_version:
type: string
x-stoplight:
id: f8e280dd63a5b
enum:
- versions
description: The type of the resource. Possible values are ``versions``.
TopFolderData:
title: 'Top-level Folder Data:'
x-stoplight:
id: 0crrh7a4rnsne
type: object
description: An object containing information about a top-level folder.
properties:
type:
$ref: '#/components/schemas/type_folder'
id:
type: string
minLength: 1
description: The unique identifier of the folder.
attributes:
$ref: '#/components/schemas/TopFolderAttributesWithExtensions'
links:
$ref: '#/components/schemas/json_api_links_self_and_web_view'
relationships:
type: object
required:
- parent
- refs
- links
- contents
properties:
parent:
$ref: '#/components/schemas/json_api_relationships_links_folder_parent'
refs:
$ref: '#/components/schemas/json_api_relationships_links_refs'
links:
$ref: '#/components/schemas/json_api_relationships_links_links'
contents:
$ref: '#/components/schemas/json_api_relationships_links_internal'
required:
- type
- id
- attributes
- links
- relationships
downloads_status:
title: downloads status
x-stoplight:
id: nhgyywqzurg06
description: 'The type of this resource. Possible values: queued, finished, failed, processing
'
enum:
- queued
- finished
- failed
- processing
Job:
description: Details of the specified job was returned successfully.
type: object
x-examples:
example-1:
jsonapi:
version: '1.0'
links:
self:
href: /data/v1/projects/{project_id}/jobs/{job_id}
data:
type: jobs
id: '{job_id}'
attributes:
status: queued
links:
self:
href: /data/v1/projects/{project_id}/jobs/{job_id}
title: Job
properties:
jsonapi:
$ref: '#/components/schemas/json_api_version'
links:
$ref: '#/components/schemas/json_api_links_self'
data:
type: object
description: Contains information about the download creation job.
properties:
type:
$ref: '#/components/schemas/type_job'
id:
type: string
minLength: 1
description: The Job ID of the job creating the download.
attributes:
type: object
description: Contains the properties that indicate the current status of the job.
properties:
status:
type: string
minLength: 1
description: Indicates the current status of the job, while the job is ``queued``, ``processing``, or ``failed``. If the job is finished, the server returns a HTTP 303 status with the ``location`` header set to the URI to use to fetch the details of the download.
links:
$ref: '#/components/schemas/json_api_links_self'
PaginationInfo:
title: PaginationInfo
x-stoplight:
id: izgy4eslaw38w
type: object
description: An object that is returned with responses that can be split across multiple pages. "Next," "Previous," and "First" are available only if the response is split across multiple pages.
properties:
self:
type: object
x-stoplight:
id: dc46tnxbc2ulb
description: A container for the link to the current page of the response.
properties:
href:
type: string
x-stoplight:
id: ljxuu5c8q9luz
description: A hypertext reference to the location of the referenced resource.
first:
type: object
x-stoplight:
id: hnog0slu3ma0c
description: A container for the link to the first page of the response.
properties:
href:
type: string
x-stoplight:
id: g7npt0viv619d
description: A hypertext reference to the location of the referenced resource.
next:
type: object
x-stoplight:
id: dc46tnxbc2ulb
description: A container for the link to the next page of the response.
properties:
href:
type: string
x-stoplight:
id: ljxuu5c8q9luz
description: A hypertext reference to the location of the referenced resource.
prev:
type: object
x-stoplight:
id: dc46tnxbc2ulb
description: A container for the link to the previous page of the response.
properties:
href:
type: string
x-stoplight:
id: ljxuu5c8q9luz
description: A hypertext reference to the location of the referenced resource.
required:
- self
json_api_relationships_links_only_bim:
title: json_api_relationships_links_only_bim
x-stoplight:
id: 60tg8iovfggh5
type: object
description: Contains links to resources that are external to the data domain service. This is available only with BIM360.
properties:
meta:
$ref: '#/components/schemas/json_api_meta_link'
x-stoplight:
id: xm7qe4jjv1djj
data:
$ref: '#/components/schemas/json_api_type_id'
x-stoplight:
id: fcoobatm4empf
requi
# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/autodesk-fusion/refs/heads/main/openapi/autodesk-fusion-projects-api-openapi.yml