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

# Get a pre-signed URL to download an exported document without proxying through the agent.

> Returns a short-lived (15-minute) GET URL plus a ready-to-run `curl_example`. An agent with shell access can run the `curl_example` directly to save the exported file to the working directory, so the bytes never pass through its context window; clients without shell execution (or callers who only want the link) can use the signed URL directly. Generates the document in the requested format and returns a time-limited signed download URL. Specify format as 'pdf', 'docx', 'html', 'markdown', or 'txt' (legacy 'doc' also accepted).



## OpenAPI

````yaml /openapi.json post /v1/downloads
openapi: 3.1.0
info:
  title: Universal Document AI API
  description: AI-powered document editing with multi-tenant organization support
  version: 2.0.0
servers: []
security: []
paths:
  /v1/downloads:
    post:
      tags:
        - uploads
        - mcp
        - downloads
      summary: >-
        Get a pre-signed URL to download an exported document without proxying
        through the agent.
      description: >-
        Returns a short-lived (15-minute) GET URL plus a ready-to-run
        `curl_example`. An agent with shell access can run the `curl_example`
        directly to save the exported file to the working directory, so the
        bytes never pass through its context window; clients without shell
        execution (or callers who only want the link) can use the signed URL
        directly. Generates the document in the requested format and returns a
        time-limited signed download URL. Specify format as 'pdf', 'docx',
        'html', 'markdown', or 'txt' (legacy 'doc' also accepted).
      operationId: request_download_url
      parameters:
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DownloadUrlRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadUrlResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    DownloadUrlRequest:
      properties:
        session_id:
          type: string
          maxLength: 256
          title: Session Id
          description: >-
            Session ID whose current document should be exported and packaged
            for download.
        format:
          type: string
          enum:
            - docx
            - pdf
            - html
            - markdown
            - txt
            - doc
          title: Format
          description: Export format (docx, pdf, html, markdown, txt).
          default: docx
        filename:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
          title: Filename
          description: >-
            Optional Content-Disposition filename for the download (without
            extension). Auto-detected from the document's first heading if not
            provided.
        options:
          $ref: '#/components/schemas/ExportOptions'
          description: >-
            Customization (paper, margins, filename, watermark, etc.). Mirrors
            ExportRequest.options.
      type: object
      required:
        - session_id
      title: DownloadUrlRequest
    DownloadUrlResponse:
      properties:
        download_url:
          type: string
          title: Download Url
        expires_at:
          type: string
          title: Expires At
        expires_in_seconds:
          type: integer
          title: Expires In Seconds
        curl_example:
          type: string
          title: Curl Example
        filename:
          type: string
          title: Filename
        format:
          type: string
          title: Format
      type: object
      required:
        - download_url
        - expires_at
        - expires_in_seconds
        - curl_example
        - filename
        - format
      title: DownloadUrlResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ExportOptions:
      properties:
        paper_size:
          type: string
          enum:
            - A4
            - Letter
            - A3
            - Legal
          title: Paper Size
          description: Page size for DOCX/PDF/legacy .doc. HTML/MD/TXT exports ignore.
          default: Letter
        orientation:
          type: string
          enum:
            - portrait
            - landscape
          title: Orientation
          description: Page orientation for DOCX/PDF/legacy .doc.
          default: portrait
        margins:
          type: string
          enum:
            - narrow
            - normal
            - wide
            - custom
          title: Margins
          description: >-
            Page margins preset. 'narrow' = 0.5in, 'normal' = 1.0in, 'wide' =
            1.5in. 'custom' uses custom_margins_inches.
          default: normal
        custom_margins_inches:
          anyOf:
            - additionalProperties:
                type: number
              propertyNames:
                enum:
                  - top
                  - right
                  - bottom
                  - left
              type: object
            - type: 'null'
          title: Custom Margins Inches
          description: Required when margins='custom'. Each value 0.25-3.0 inches.
        filename:
          anyOf:
            - type: string
              maxLength: 255
            - type: 'null'
          title: Filename
          description: >-
            Custom filename (no extension). Auto-detected from first <h1> if
            unset.
        embed_images:
          type: boolean
          title: Embed Images
          description: >-
            HTML export only. When True, images are base64-embedded for offline
            portability (raises size cap to 150 MB). When False, images are
            referenced by URL (smaller file, online-only).
          default: false
        watermark_text:
          anyOf:
            - type: string
              maxLength: 64
            - type: 'null'
          title: Watermark Text
          description: PDF only. Optional text watermark overlaid on every page.
        watermark_opacity:
          type: number
          maximum: 1
          minimum: 0.05
          title: Watermark Opacity
          description: PDF watermark opacity, 0.05-1.0.
          default: 0.3
        fidelity:
          anyOf:
            - type: string
              enum:
                - strict
                - compat
            - type: 'null'
          title: Fidelity
          description: >-
            Export fidelity. 'strict' (server default) renders only the
            formatting the document carries — no imposed table widths/borders
            (except visual defaults on fully unstyled tables), overflow-only
            clamping, highlight colors honored. 'compat' reproduces the legacy
            normalized output.
      type: object
      title: ExportOptions
      description: |-
        User-facing export customisation (page size, orientation, margins,
        filename, watermark). Sent on every export request.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````