Autodesk Construction Cloud Users API

Project and account user management

OpenAPI Specification

autodesk-construction-cloud-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Autodesk Construction Cloud Admin Companies Users API
  description: The Autodesk Construction Cloud (ACC) Admin API provides programmatic management of ACC accounts, projects, users, and company settings. REST APIs enable automation of project provisioning, user access control, and account-level administration across ACC and BIM 360 deployments.
  version: 1.0.0
  contact:
    name: Autodesk Platform Services
    url: https://aps.autodesk.com/en/docs/acc/v1/overview/
servers:
- url: https://developer.api.autodesk.com
  description: Autodesk Platform Services API
security:
- oauth2ThreeLegged: []
- oauth2TwoLegged: []
tags:
- name: Users
  description: Project and account user management
paths:
  /construction/admin/v1/accounts/{accountId}/projects/{projectId}/users:
    get:
      operationId: getProjectUsers
      summary: Get project users
      description: Retrieve all users assigned to a specific ACC project with their roles.
      tags:
      - Users
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: List of project users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectUsersResponse'
    post:
      operationId: addProjectUser
      summary: Add user to project
      description: Add a user to an ACC project with a specified role.
      tags:
      - Users
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUserRequest'
      responses:
        '201':
          description: User added to project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectUser'
  /construction/admin/v1/accounts/{accountId}/users:
    get:
      operationId: getAccountUsers
      summary: Get account users
      description: Retrieve all users in the ACC account.
      tags:
      - Users
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      - name: filter[status]
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
          - pending
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: Account users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountUsersResponse'
components:
  schemas:
    ProjectUserRequest:
      type: object
      required:
      - email
      - roleIds
      properties:
        email:
          type: string
          format: email
        roleIds:
          type: array
          items:
            type: string
        companyId:
          type: string
    Pagination:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        totalResults:
          type: integer
        nextUrl:
          type: string
    ProjectUsersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ProjectUser'
        pagination:
          $ref: '#/components/schemas/Pagination'
    AccountUsersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                type: string
              name:
                type: string
              status:
                type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    ProjectUser:
      type: object
      properties:
        id:
          type: string
        userId:
          type: string
        email:
          type: string
        name:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        status:
          type: string
          enum:
          - active
          - inactive
          - pending
        roleIds:
          type: array
          items:
            type: string
        companyId:
          type: string
        createdAt:
          type: string
          format: date-time
  securitySchemes:
    oauth2ThreeLegged:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://developer.api.autodesk.com/authentication/v2/authorize
          tokenUrl: https://developer.api.autodesk.com/authentication/v2/token
          scopes:
            account:read: Read account data
            account:write: Modify account data
            data:read: Read project data
            data:write: Write project data
    oauth2TwoLegged:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://developer.api.autodesk.com/authentication/v2/token
          scopes:
            account:read: Read account data
            data:read: Read project data