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

# Assemble PDF volumes from vault objects

> Starts an asynchronous, deterministic PDF assembly. The manifest selects page ranges from source PDFs in output order, adds an outline and optional continuous Bates numbering, and splits the result into volumes. Each volume becomes a new vault object. Source bookmarks, form fields and page labels are not carried over. Outputs are not indexed automatically. Completion is reported through vault.assembly webhooks.



## OpenAPI

````yaml /openapi.json post /vault/{id}/assemblies
openapi: 3.1.0
info:
  title: Case.dev API
  description: >-
    The AI-native platform for legal technology. Build smarter legal
    applications with our suite of AI-powered APIs.
  version: 1.0.0
  contact:
    name: Case.dev Support
    email: support@casemark.com
    url: https://case.dev
  license:
    name: Proprietary
    url: https://case.dev/terms
servers:
  - url: https://api.case.dev
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Vaults
    description: Secure document storage with semantic search
  - name: Vault Events
    description: Vault-scoped event subscriptions and delivery testing
  - name: Vault Memory
    description: Vault-scoped persistent memory and semantic retrieval
  - name: Vault Objects
    description: Vault object management, content access, and document operations
  - name: Memory
    description: >-
      Persistent memory for AI agents with semantic search and 12 generic
      indexed tag fields
  - name: OCR
    description: Extract text from PDFs, images, and scanned documents
  - name: Voice
    description: Audio transcription and text-to-speech
  - name: LLMs
    description: Access 40+ language models through a unified API
  - name: Search
    description: Web search and AI answers
  - name: Mail
    description: Managed inboxes for agent email workflows
  - name: Media
    description: Transcript retrieval and captioned media clip generation
  - name: Legal
    description: Legal research tools including citation verification
  - name: Privilege
    description: Privilege detection for e-discovery and litigation workflows
  - name: Compute
    description: Serverless GPU and CPU infrastructure
  - name: Format
    description: Document formatting and template rendering (MD/JSON to PDF/DOCX)
  - name: SuperDoc
    description: Document conversion and template automation
  - name: Webhooks
    description: Webhook endpoint management
  - name: System
    description: Public system metadata and discovery endpoints
  - name: Usage
    description: Usage reporting and webhook subscriptions
  - name: Database
    description: Serverless PostgreSQL databases with instant branching
  - name: Translation
    description: Language detection and translation for multilingual legal workflows
  - name: Skills
    description: Search and read legal AI skills for agents
  - name: Agents/Linc
    description: Durable, stateful legal agent sessions with sandboxed tools and files
  - name: Matters
    description: Matter-native legal workspaces and orchestration primitives
  - name: Connectors
    description: Import and export between provider folders and vaults
  - name: Applications Projects
    description: Web application project management
  - name: Applications Deployments
    description: Web application deployment management
  - name: Applications Domains
    description: Custom domain configuration for applications
  - name: Applications Env Vars
    description: Environment variable management for applications
paths:
  /vault/{id}/assemblies:
    post:
      tags:
        - Vault Objects
      summary: Assemble PDF volumes from vault objects
      description: >-
        Starts an asynchronous, deterministic PDF assembly. The manifest selects
        page ranges from source PDFs in output order, adds an outline and
        optional continuous Bates numbering, and splits the result into volumes.
        Each volume becomes a new vault object. Source bookmarks, form fields
        and page labels are not carried over. Outputs are not indexed
        automatically. Completion is reported through vault.assembly webhooks.
      operationId: createVaultAssembly
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Vault ID
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 200
          description: Stable key for safely retrying the same assembly request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - sources
                - volumes
              properties:
                sources:
                  type: array
                  minItems: 1
                  maxItems: 1000
                  description: >-
                    Source PDFs. Page ranges refer to a source by its index in
                    this list.
                  items:
                    type: object
                    required:
                      - objectId
                    properties:
                      objectId:
                        type: string
                      rendition:
                        type: string
                        enum:
                          - searchable_pdf
                          - original
                        default: searchable_pdf
                volumes:
                  type: array
                  minItems: 1
                  maxItems: 100
                  items:
                    type: object
                    required:
                      - filename
                      - pages
                    properties:
                      filename:
                        type: string
                        maxLength: 255
                        description: Output filename, ending in .pdf
                      title:
                        type: string
                        maxLength: 500
                        description: PDF document title
                      pages:
                        type: array
                        minItems: 1
                        description: >-
                          Page ranges in output order. Pages are 1-based and
                          inclusive; repeats are allowed.
                        items:
                          type: object
                          required:
                            - source
                            - start
                            - end
                          properties:
                            source:
                              type: integer
                              minimum: 0
                            start:
                              type: integer
                              minimum: 1
                            end:
                              type: integer
                              minimum: 1
                      outline:
                        type: array
                        items:
                          type: object
                          required:
                            - title
                            - page
                          properties:
                            title:
                              type: string
                              maxLength: 500
                            page:
                              type: integer
                              minimum: 1
                              description: 1-based page within this volume
                            children:
                              type: array
                              items:
                                type: object
                              description: Nested entries, same shape
                        description: Bookmarks, up to 8 levels deep
                bates:
                  type: object
                  description: >-
                    Continuous Bates numbering across every volume. Text must be
                    printable ASCII.
                  properties:
                    prefix:
                      type: string
                      maxLength: 40
                      default: ''
                    suffix:
                      type: string
                      maxLength: 20
                      default: ''
                    start:
                      type: integer
                      minimum: 1
                      default: 1
                    padTo:
                      type: integer
                      minimum: 0
                      maximum: 12
                      default: 0
                    position:
                      type: string
                      enum:
                        - bottom_right
                        - bottom_center
                        - bottom_left
                      default: bottom_right
                    fontSize:
                      type: number
                      minimum: 6
                      maximum: 14
                      default: 9
                    legend:
                      type: string
                      maxLength: 120
                      description: Line printed above each label
                linearize:
                  type: boolean
                  default: false
                  description: Optimize volumes for web viewing
                clientReference:
                  type: string
                  maxLength: 200
      responses:
        '202':
          description: Assembly accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  status:
                    type: string
                    enum:
                      - queued
                      - processing
                      - completed
                      - failed
                  volumes:
                    type: array
                    items:
                      type: object
                      properties:
                        objectId:
                          type: string
                        filename:
                          type: string
                  clientReference:
                    type: string
        '400':
          description: Invalid manifest, page range or limit exceeded
        '401':
          description: Invalid API key
        '403':
          description: Vault write access required, or PDF assembly is not enabled
        '404':
          description: Vault or source object not found
        '409':
          description: Idempotency conflict, or a source is not ready
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key starting with `sk_case_`

````

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