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

# Issue a short-lived upload token for a public form



## OpenAPI

````yaml /api-reference/openapi.json post /v1/uploads/sign
openapi: 3.0.0
info:
  version: 1.0.0
  title: Caplia Investor API
  description: >-
    Public REST API for the Caplia Investor Portal. Auth: `Authorization: Bearer
    cap_inv_live_<32 chars>`.
  contact:
    name: Caplia
    url: https://docs.venture.caplia.ai
servers:
  - url: https://api.venture.caplia.ai
    description: Production
security: []
paths:
  /v1/uploads/sign:
    post:
      tags:
        - Uploads
      summary: Issue a short-lived upload token for a public form
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                form_id:
                  type: string
                  minLength: 1
                  maxLength: 128
                application_id:
                  type: string
                  minLength: 1
                  maxLength: 128
              required:
                - form_id
      responses:
        '200':
          description: Short-lived single-use upload token
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                  expires_at:
                    type: string
                  max_bytes:
                    type: number
                  accepted_mime:
                    type: string
                  properties:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        name:
                          type: string
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                              label:
                                type: string
                            required:
                              - id
                              - label
                      required:
                        - id
                        - name
                        - options
                    description: >-
                      The form team's custom properties (live config) — render
                      these as form fields and pass selections via `properties`
                      on POST /v1/uploads/decks.
                required:
                  - token
                  - expires_at
                  - max_bytes
                  - accepted_mime
                  - properties
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
        '404':
          description: Not found or out of scope
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error

````