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

# Request a bulk file download

> Creates a bulk download job with 'pending' status and enqueus it. The worker streams the requested files into a single zip which can be downloaded.




## OpenAPI

````yaml /api-reference/files/openapi.yaml post /v1/bulkDownloads
openapi: 3.0.0
info:
  title: Files & Requests API
  version: 1.2.0
  description: >
    Manage evidence and claims requests, attach exhibits, fill state-specific
    templates, generate PDF files, run PDF redaction jobs, and store and
    retrieve a matter's files and media.
  contact:
    name: Slate API Support
    email: api-support@slate.inc
    url: https://slate.inc
servers:
  - url: https://api.slate.inc/files
    description: Production
  - url: https://api.uat.slate.inc/files
    description: UAT (staging)
security:
  - bearerAuth: []
tags:
  - name: Requests
    description: Create, read, update, and generate evidence and claims requests
  - name: Exhibits
    description: Upload, download, and delete exhibits
  - name: Files
    description: Files and media associated with a matter
  - name: Redactions
    description: Asynchronous PDF redaction jobs
  - name: Bulk Downloads
    description: Asynchronous bulk download jobs
paths:
  /v1/bulkDownloads:
    post:
      tags:
        - Bulk Downloads
      summary: Request a bulk file download
      description: >
        Creates a bulk download job with 'pending' status and enqueus it. The
        worker streams the requested files into a single zip which can be
        downloaded.
      operationId: submitBulkDownload
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDownloadCreate'
      responses:
        '202':
          description: Bulk download job accepted and enqueued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDownloadCreateResponse'
        '400':
          description: Bad request. Empty file ID list or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized. Missing or invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Matter ID or One or more ID not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Bulk download job already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    BulkDownloadCreate:
      type: object
      required:
        - files
      properties:
        files:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            File UUIDs to include in the archive. The maximum count is enforced
            server-side via MAX_BULK_DOWNLOAD_FILE_COUNT.
        fileName:
          type: string
          description: >-
            Optional download filename. Defaults to server-generated naming
            convention.
    BulkDownloadCreateResponse:
      type: object
      required:
        - id
        - status
        - pollUrl
      properties:
        id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/BulkDownloadStatus'
        pollUrl:
          type: string
    Error:
      type: object
      required:
        - message
        - reason
      properties:
        message:
          type: string
          description: A human readable error message
        reason:
          $ref: '#/components/schemas/ErrorReason'
    BulkDownloadStatus:
      type: string
      enum:
        - pending
        - processing
        - done
        - failed
    ErrorReason:
      type: string
      enum:
        - MISSING_TOKEN_OR_PERMISSIONS
        - NO_MATCHING_TRIGGER
        - OWNER_REQUIRED
        - FILE_REQUEST_NOT_PENDING
        - DUPLICATE_FILE_REQUEST
        - TEMPLATE_TYPE_REQUIRED
        - TEMPLATE_INDEX_REQUIRED
        - INVALID_MATTER_ID
        - MATTER_ID_REQUIRED
        - MATTER_NOT_FOUND
        - FILES_LIST_EMPTY
        - TOO_MANY_FILES
        - FILE_NAME_REQUIRED
        - FILE_NAME_MUST_BE_PDF
        - INVALID_FILE_TYPE
        - INVALID_TEMPLATE_IDENTIFIER
        - GENERATION_FAILED
        - EXHIBIT_ORDER_REQUIRED
        - CRID_REQUIRED
        - INVALID_FILE_NAME
        - ARTIFACT_TAG_NOT_FOUND
        - INVALID_LIMIT
        - INVALID_CURSOR
        - INVALID_ORDER_BY
        - MISSING_FILTER_DEPENDENCY
        - INVALID_FILTER
        - REQUEST_BODY_REQUIRED
        - INVALID_LABEL_RANGE
        - INVALID_REDACTION_RULE
        - REDACTION_NOT_FOUND
        - REDACTION_NOT_READY
        - FILE_UPLOAD_PENDING
        - BULK_DOWNLOAD_NOT_FOUND
        - BULK_DOWNLOAD_NOT_READY
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Cognito-issued JWT access token. Send it as `Authorization: Bearer
        <token>`.

````