> ## Documentation Index
> Fetch the complete documentation index at: https://api.buildingswell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import deliverables from Excel

> Rate-limited to 100 requests/min. Only .xlsx, max 10 MB.



## OpenAPI

````yaml /openapi.yaml post /deliverable/import
openapi: 3.0.3
info:
  title: BuildingSwell Public API
  version: 2.0.0
  description: >
    BuildingSwell v2 Public API. All endpoints require the `X-API-Key` header.

    Keys are scoped to your organization — all data is automatically filtered.


    See the [Guides](/index) for querying, filtering, joins, and response
    formats.
servers:
  - url: https://{instance}/api/v2
    description: Your BuildingSwell instance
    variables:
      instance:
        default: app.buildingswell.com
        description: Your BuildingSwell host
security:
  - ApiKeyAuth: []
tags:
  - name: Projects
    description: Top-level project groupings
  - name: Stages
    description: Stages — reusable department-scoped shop stations
  - name: Deliverables
    description: Work-tree nodes (orders, routes, phases, stages, steps, etc.)
  - name: Work sessions
    description: Work sessions on deliverables
  - name: Comments
    description: Comments on deliverables
  - name: Documents
    description: Documents attached to deliverables
  - name: Notes
    description: Notes on deliverables
  - name: Notifications
    description: Notifications and read-state
  - name: QC
    description: QC inspection sets and templates
  - name: Dependencies
    description: Dependency links between deliverables
  - name: Workers
    description: Workforce roster
  - name: Timesheets
    description: Unified time-tracking records (read-only)
  - name: Organization
    description: Roles and organization members
  - name: Concepts
    description: Concept-aware deliverable endpoints with validation
paths:
  /deliverable/import:
    post:
      tags:
        - Deliverables
      summary: Import deliverables from Excel
      description: Rate-limited to 100 requests/min. Only .xlsx, max 10 MB.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                timezone:
                  type: string
                  example: America/New_York
      responses:
        '200':
          description: >-
            Import result. Row-level and file-structure errors (missing columns,
            circular parent references, unresolved identifiers, etc.) are
            returned here with '200' rather than failing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportResult'
        '500':
          description: The uploaded file could not be parsed (corrupt or empty workbook).
components:
  schemas:
    ImportResult:
      type: object
      properties:
        imported:
          type: integer
        errors:
          type: array
          items:
            type: object
            properties:
              row:
                type: integer
                description: 1-based data row; 0 = file-level error
              column:
                type: string
              value: {}
              kind:
                type: string
                enum:
                  - structure
                  - validation
                  - resolution
                  - parse
                  - server
              message:
                type: string
        warnings:
          type: array
          items:
            type: object
            properties:
              row:
                type: integer
              column:
                type: string
              message:
                type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````