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

# Upload an attachment

> Send multipart/form-data. Adding a report requires a confirmed inspection and runs your 'additional report added' automations, which can email or text the client.

<Note>
  **The Hive Inspect API is a work in progress.** It is available to a small group of accounts today, and the release for everyone is coming very soon.
</Note>


## OpenAPI

````yaml /api/openapi.json post /v1/inspections/{inspectionId}/attachments
openapi: 3.1.0
info:
  title: Hive Inspect API
  version: 1.0.0
  description: Connect other tools to your Hive Inspect contacts, inspections and events.
servers:
  - url: https://api.hiveinspect.com
security:
  - bearerAuth: []
tags:
  - name: Contacts
    description: Agents, clients and every other contact in your organization.
  - name: Agencies
    description: The brokerages your agents belong to. Read-only.
  - name: Inspections
    description: Read-only access to your inspections.
  - name: Attachments
    description: Additional reports and additional documents on an inspection.
  - name: Events
    description: Extra appointments on an inspection, such as a radon drop-off or pick-up.
paths:
  /v1/inspections/{inspectionId}/attachments:
    post:
      tags:
        - Attachments
      summary: Upload an attachment
      description: >-
        Send multipart/form-data. Adding a report requires a confirmed
        inspection and runs your 'additional report added' automations, which
        can email or text the client.
      operationId: uploadAttachment
      parameters:
        - name: inspectionId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AttachmentUpload'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
        '400':
          description: Invalid parameter
        '401':
          description: Missing, invalid or inactive API key
        '404':
          description: Inspection not found
        '413':
          description: File too large
        '429':
          description: Rate limit exceeded (120 requests/minute per key owner)
components:
  schemas:
    AttachmentUpload:
      type: object
      required:
        - kind
      properties:
        kind:
          type: string
          enum:
            - report
            - document
        file:
          type: string
          format: binary
          description: >-
            Required for a document; optional for a report. Documents: up to 10
            MB. Reports: up to 25 MB.
        name:
          type: string
          description: Report name. Required for a report.
        description:
          type: string
          description: Report description. May contain a link.
        internal_only:
          type: boolean
          description: >-
            Documents only. true keeps the document inspector-only, hidden from
            the client.
    Attachment:
      type: object
      properties:
        id:
          type: string
        inspection_id:
          type: string
          format: uuid
        kind:
          type: string
          enum:
            - report
            - document
          description: 'report: an Additional Report. document: an Additional Document.'
        name:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        filename:
          type:
            - string
            - 'null'
        content_type:
          type:
            - string
            - 'null'
        size_bytes:
          type:
            - integer
            - 'null'
        url:
          type:
            - string
            - 'null'
          description: >-
            Signed download link, valid for 1 hour. Null for a report with no
            file.
        visible_to_client:
          type: boolean
          description: false for inspector-only documents
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
      example:
        id: 8f7e6d5c-4b3a-4291-8e0f-1a2b3c4d5e6f
        inspection_id: 3f2a9c1e-6b4d-4e7a-8c15-9d0e1f2a3b4c
        kind: report
        name: Sewer Scope Report
        description: 'Video: https://example.com/sewer-scope'
        filename: null
        content_type: application/pdf
        size_bytes: 482133
        url: https://files.example.com/signed-link-valid-for-1-hour
        visible_to_client: true
        created_at: '2026-09-24T21:03:18Z'
        updated_at: '2026-09-24T21:03:18Z'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your API key from Business Tools → API Access.

````

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