openapi: 3.1.0 info: title: Autodesk ACC Account Admin Account Users Projects API description: The ACC Account Admin API automates the creation and management of projects, assignment and management of project users, and management of member and partner company directories within Autodesk Construction Cloud. It supports bulk operations for enterprise-scale administration. version: 1.0.0 termsOfService: https://www.autodesk.com/company/legal-notices-trademarks/terms-of-service-autodesk360-web-services/autodesk-web-services-api-terms-of-service contact: name: Autodesk Platform Services url: https://aps.autodesk.com email: aps.help@autodesk.com license: name: Autodesk API Terms of Service url: https://www.autodesk.com/company/legal-notices-trademarks/terms-of-service-autodesk360-web-services/autodesk-web-services-api-terms-of-service servers: - url: https://developer.api.autodesk.com description: Production security: - OAuth2ThreeLegged: - account:read tags: - name: Projects paths: /construction/admin/v1/accounts/{accountId}/projects: get: operationId: getProjects summary: Autodesk List Projects description: Returns a paginated list of projects in the specified account. tags: - Projects parameters: - name: accountId in: path required: true schema: type: string - name: filter[status] in: query required: false schema: type: string enum: - active - inactive - archived - suspended - name: filter[name] in: query required: false schema: type: string - name: filter[platform] in: query required: false schema: type: string enum: - acc - bim360 - name: sort in: query required: false description: Sort field and direction (e.g., name asc, startDate desc). schema: type: string - name: limit in: query required: false schema: type: integer maximum: 200 - name: offset in: query required: false schema: type: integer responses: '200': description: Successfully retrieved projects. content: application/json: schema: $ref: '#/components/schemas/ProjectsResponse' '401': description: Unauthorized. post: operationId: createProject summary: Autodesk Create Project description: Creates a new project in the account. tags: - Projects security: - OAuth2ThreeLegged: - account:write parameters: - name: accountId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateProjectRequest' responses: '201': description: Project created. content: application/json: schema: $ref: '#/components/schemas/Project' '400': description: Bad request. /construction/admin/v1/accounts/{accountId}/projects/{projectId}: get: operationId: getProject summary: Autodesk Get Project description: Returns details of a specific project. tags: - Projects parameters: - name: accountId in: path required: true schema: type: string - name: projectId in: path required: true schema: type: string responses: '200': description: Successfully retrieved project. content: application/json: schema: $ref: '#/components/schemas/Project' patch: operationId: updateProject summary: Autodesk Update Project description: Updates project details. tags: - Projects security: - OAuth2ThreeLegged: - account:write 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/UpdateProjectRequest' responses: '200': description: Project updated. content: application/json: schema: $ref: '#/components/schemas/Project' /project/v1/hubs/{hub_id}/projects: get: operationId: getHubProjects summary: Autodesk List Projects description: Returns a collection of projects for a given hub. tags: - Projects parameters: - name: hub_id in: path required: true description: The unique identifier of the hub. schema: type: string - name: filter[id] in: query required: false description: Filter by project ID. schema: type: string - name: page[number] in: query required: false description: Page number for pagination. schema: type: integer - name: page[limit] in: query required: false description: Number of results per page (max 200). schema: type: integer maximum: 200 responses: '200': description: Successfully retrieved projects. content: application/vnd.api+json: schema: $ref: '#/components/schemas/ProjectsResponse_2' '401': description: Unauthorized. '403': description: Forbidden. /project/v1/hubs/{hub_id}/projects/{project_id}: get: operationId: getProject summary: Autodesk Get Project description: Returns a specific project within a hub. tags: - Projects parameters: - name: hub_id in: path required: true schema: type: string - name: project_id in: path required: true schema: type: string responses: '200': description: Successfully retrieved project. content: application/vnd.api+json: schema: $ref: '#/components/schemas/ProjectResponse' '401': description: Unauthorized. '404': description: Project not found. /project/v1/hubs/{hub_id}/projects/{project_id}/topFolders: get: operationId: getProjectTopFolders summary: Autodesk List Top Folders description: Returns the top-level folders for a project. tags: - Projects parameters: - name: hub_id in: path required: true schema: type: string - name: project_id in: path required: true schema: type: string responses: '200': description: Successfully retrieved top folders. content: application/vnd.api+json: schema: $ref: '#/components/schemas/FoldersResponse' '401': description: Unauthorized. '404': description: Project not found. components: schemas: Folder: type: object properties: type: type: string example: folders id: type: string attributes: type: object properties: name: type: string displayName: type: string createTime: type: string format: date-time createUserId: type: string createUserName: type: string lastModifiedTime: type: string format: date-time lastModifiedUserId: type: string lastModifiedUserName: type: string objectCount: type: integer extension: $ref: '#/components/schemas/Extension' hidden: type: boolean JsonApiVersion: type: object properties: version: type: string example: '1.0' FoldersResponse: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiVersion' data: type: array items: $ref: '#/components/schemas/Folder' ProjectsResponse_2: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiVersion' data: type: array items: $ref: '#/components/schemas/Project_2' links: $ref: '#/components/schemas/PaginationLinks' Project_2: type: object properties: type: type: string example: projects id: type: string attributes: type: object properties: name: type: string extension: $ref: '#/components/schemas/Extension' relationships: type: object properties: hub: type: object properties: data: type: object properties: type: type: string id: type: string rootFolder: type: object properties: data: type: object properties: type: type: string id: type: string topFolders: type: object properties: links: type: object properties: related: type: object properties: href: type: string format: uri ProjectsResponse: type: object properties: results: type: array items: $ref: '#/components/schemas/Project' pagination: $ref: '#/components/schemas/Pagination' PaginationLinks: type: object properties: self: type: object properties: href: type: string format: uri first: type: object properties: href: type: string format: uri prev: type: object properties: href: type: string format: uri next: type: object properties: href: type: string format: uri Extension: type: object properties: type: type: string version: type: string data: type: object Project: type: object properties: id: type: string name: type: string status: type: string enum: - active - inactive - archived - suspended type: type: string description: Project type. platform: type: string enum: - acc - bim360 jobNumber: type: string addressLine1: type: string addressLine2: type: string city: type: string stateOrProvince: type: string postalCode: type: string country: type: string timezone: type: string constructionType: type: string deliveryMethod: type: string contractType: type: string currentPhase: type: string value: type: number description: Project value. currency: type: string startDate: type: string format: date endDate: type: string format: date createdAt: type: string format: date-time updatedAt: type: string format: date-time CreateProjectRequest: type: object required: - name properties: name: type: string type: type: string status: type: string enum: - active - inactive jobNumber: type: string addressLine1: type: string city: type: string stateOrProvince: type: string postalCode: type: string country: type: string timezone: type: string constructionType: type: string deliveryMethod: type: string startDate: type: string format: date endDate: type: string format: date value: type: number currency: type: string Pagination: type: object properties: offset: type: integer limit: type: integer totalResults: type: integer UpdateProjectRequest: type: object properties: name: type: string status: type: string enum: - active - inactive - archived jobNumber: type: string addressLine1: type: string city: type: string stateOrProvince: type: string postalCode: type: string country: type: string startDate: type: string format: date endDate: type: string format: date ProjectResponse: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiVersion' data: $ref: '#/components/schemas/Project_2' 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: Write account data