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

# Create Upload



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/projects/{projectId}/documents/uploads
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/projects/{projectId}/documents/uploads:
    post:
      tags:
        - Documents
      summary: Create Upload
      operationId: DocumentsController_createUpload_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDocumentUploadDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentUploadResponseDto'
components:
  schemas:
    CreateDocumentUploadDto:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        notes:
          default: ''
          type: string
          maxLength: 10000
        isConfidential:
          default: false
          type: boolean
        phases:
          default: []
          maxItems: 9
          type: array
          items:
            type: string
            enum:
              - pre_design
              - programming
              - schematic_design
              - design_development
              - construction_documents
              - bidding_negotiation
              - procurement
              - construction_administration
              - closeout
        documentTypes:
          maxItems: 5
          type: array
          items:
            type: string
            enum:
              - w9
              - coi
              - msa
              - price_list
              - nda
        typeId:
          anyOf:
            - type: string
            - type: 'null'
        requestId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        scope:
          enum:
            - project
            - project_item
            - contact_company
          type: string
        itemIds:
          default: []
          maxItems: 1000
          type: array
          items:
            type: string
        filename:
          type: string
          minLength: 1
          maxLength: 255
        sizeBytes:
          type: integer
          exclusiveMinimum: 0
          maximum: 500000000
        checksumSha256:
          type: string
          pattern: ^[0-9a-f]{64}$
      required:
        - name
        - requestId
        - scope
        - filename
        - sizeBytes
        - checksumSha256
      additionalProperties: false
    DocumentUploadResponseDto:
      type: object
      properties:
        document:
          $ref: '#/components/schemas/DocumentResponseDto'
        upload:
          type: object
          properties:
            url:
              type: string
            fields:
              type: object
              additionalProperties:
                type: string
            expiresAt:
              type: string
          required:
            - url
            - fields
            - expiresAt
      required:
        - document
        - upload
    DocumentResponseDto:
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
          nullable: true
        companyId:
          type: string
          nullable: true
        documentTypes:
          type: array
          items:
            type: string
        scope:
          enum:
            - project
            - project_item
            - contact_company
          type: string
        typeId:
          type: string
          nullable: true
        source:
          enum:
            - file
            - link
          type: string
        status:
          enum:
            - pending
            - ready
          type: string
        name:
          type: string
        notes:
          type: string
        isConfidential:
          type: boolean
        phases:
          type: array
          items:
            type: string
            enum:
              - pre_design
              - programming
              - schematic_design
              - design_development
              - construction_documents
              - bidding_negotiation
              - procurement
              - construction_administration
              - closeout
        itemIds:
          type: array
          items:
            type: string
        externalUrl:
          type: string
          nullable: true
        originalFilename:
          type: string
          nullable: true
        mimeType:
          type: string
          nullable: true
        sizeBytes:
          type: number
          nullable: true
        createdBy:
          type: string
          nullable: true
        createdAt:
          type: string
        updatedAt:
          type: string
        version:
          type: number
      required:
        - id
        - projectId
        - companyId
        - documentTypes
        - scope
        - typeId
        - source
        - status
        - name
        - notes
        - isConfidential
        - phases
        - itemIds
        - externalUrl
        - originalFilename
        - mimeType
        - sizeBytes
        - createdBy
        - createdAt
        - updatedAt
        - version

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.