Trimble Files API

File and document management

OpenAPI Specification

trimble-files-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Trimble Connect BCF Topics Files API
  description: The Trimble Connect API enables integration with Trimble's cloud-based construction collaboration platform. Provides access to project data, BIM models, document management, issues (BCF Topics), and team collaboration features for construction project management. Trimble Connect acts as the BIM collaboration hub integrating Tekla, SketchUp, and third-party tools.
  version: '2.0'
  contact:
    name: Trimble Developer Support
    url: https://developer.trimble.com
  license:
    name: Trimble Developer Terms
    url: https://www.trimble.com/legal/developer-terms
servers:
- url: https://app.connect.trimble.com/tc/api/2.0
  description: Trimble Connect Production API
security:
- BearerAuth: []
tags:
- name: Files
  description: File and document management
paths:
  /projects/{projectId}/files:
    get:
      operationId: listProjectFiles
      summary: List project files
      description: Returns files and folders within a project directory.
      tags:
      - Files
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: path
        in: query
        schema:
          type: string
        description: Parent folder path
        example: /Models/Structural
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: pageSize
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: List of files
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileListResponse'
    post:
      operationId: uploadFile
      summary: Upload a file to a project
      description: Uploads a file to the specified project folder. Supports BIM model files (IFC, RVT, SKP, NWD, NWC), drawings (PDF, DWG), and documents.
      tags:
      - Files
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: File binary content
                path:
                  type: string
                  description: Target folder path
                description:
                  type: string
      responses:
        '201':
          description: File uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
  /projects/{projectId}/files/{fileId}:
    get:
      operationId: getFile
      summary: Get file metadata
      description: Returns metadata for a specific file.
      tags:
      - Files
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: File metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
components:
  parameters:
    ProjectId:
      name: projectId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Trimble Connect project UUID
  schemas:
    File:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        path:
          type: string
          description: Full folder path
        fileType:
          type: string
          enum:
          - FILE
          - FOLDER
        contentType:
          type: string
          description: MIME type
        size:
          type: integer
          description: File size in bytes
        version:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        createdBy:
          type: string
        description:
          type: string
        downloadUrl:
          type: string
          format: uri
          description: Pre-signed download URL (time-limited)
        thumbnailUrl:
          type: string
          format: uri
    FileListResponse:
      type: object
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/File'
        totalCount:
          type: integer
        path:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Trimble Identity OAuth2 Bearer token