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

# Get a document download link

> Return a short-lived link to download one document.



## OpenAPI

````yaml /api-reference/openapi.json get /verifications/{verification_id}/documents/{document_id}/download
openapi: 3.1.0
info:
  title: Verify with Privue
  description: >-
    Verify your users' identity and business details through Privue's hosted
    flow.


    **Authentication.** Every request takes your API key as a bearer token:
    `Authorization: Bearer <your-key>`.


    **Flow.**


    1. `POST /verifications` with the user's phone. We start their verification
    session and return a `verification_id`.

    2. Redirect the user to `https://verify.privue.ai/<your-slug>` to complete
    the steps.

    3. Poll `GET /verifications/{verification_id}` for status and step progress,
    and `GET /verifications/{verification_id}/data` for the collected result.

    4. Optionally `POST /verifications/{verification_id}/cancel` to end a
    verification early.


    **Identifiers.** `verification_id` is ours and names the verification on
    every read. `reference_id` is your own optional correlation id - stored and
    echoed back, never used as a key.


    **Timestamps.** Timestamps are in IST.


    **Polling.** Reads are free and safe to poll as often as you need.
  version: 0.1.0
servers:
  - url: https://api.verify.privue.ai
    description: Production
security: []
paths:
  /verifications/{verification_id}/documents/{document_id}/download:
    get:
      tags:
        - Verifications
      summary: Get a document download link
      description: Return a short-lived link to download one document.
      operationId: >-
        download_document_verifications__verification_id__documents__document_id__download_get
      parameters:
        - name: verification_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Verification Id
        - name: document_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Document Id
      responses:
        '200':
          description: >-
            A short-lived presigned URL that downloads the file under its
            original name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentDownloadResponse'
              example:
                download_url: >-
                  https://storage.privue.ai/verification/3f2504e0-4f89-41d3-9a0c-0305e82c3301/documents/b0f3e1c2-5a8d-4e77-9f21-3d4c6a2b1e90/gst-certificate.pdf?X-Amz-Signature=...
                expires_in: 300
        '401':
          description: Missing, malformed, or rejected API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: API key is missing, malformed, or rejected.
        '403':
          description: The API key is valid but not enrolled as a verification client.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: No active verification client for this API key.
        '404':
          description: >-
            No verification with that verification_id, or no document with that
            id for it.
          content:
            application/json:
              example:
                detail: No document with that id for this verification.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    DocumentDownloadResponse:
      properties:
        download_url:
          type: string
          title: Download Url
          description: Presigned URL that downloads the file under its original name
        expires_in:
          type: integer
          title: Expires In
          description: Seconds until the link expires
      type: object
      required:
        - download_url
        - expires_in
      title: DocumentDownloadResponse
      description: A short-lived link to download one document.
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: A human-readable explanation of what went wrong
      type: object
      required:
        - detail
      title: ErrorResponse
      description: >-
        Every error on this API returns this shape. Branch on the HTTP status,
        not the message text.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    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

````