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

# Generate PDF Report

> Generate PDF reports as evidence that screening in Minerva was completed. The recommended workflow is to pass a single `searchResultId` from a previous `POST /v1/search-sync` response or from a batch result returned by `POST /v1/searchStatus` or `GET /v1/search/{jobid}`. For batch results, use the entity-scoped `searchId` value returned in each result row, such as `<requestId>_0`. Legacy `results` and `id` payloads are still supported for older integrations.



## OpenAPI

````yaml /api-reference/core.json post /v1/reports
openapi: 3.0.0
info:
  version: 1.6.2
  title: MinervaAI Core API
  description: >-
    The MinervaAI core monolith that serves the search, consensus, pruning, and
    report generation capabilities.
servers:
  - url: https://api.gominerva.com
    description: The production API server for Minerva AI
security:
  - ApiKeyAuth: []
tags:
  - name: Search
    description: >-
      Current screening, search, and reporting endpoints for active
      integrations.
  - name: Legacy
    description: >-
      Legacy endpoints retained for backwards compatibility. Prefer the
      canonical POST-based search flows for new integrations.
  - name: API to UI Integration
    description: Endpoints used to bridge API integrations with Minerva UI workflows.
  - name: Potential Matches
    description: Update review workflow state for potential matches returned by searches.
paths:
  /v1/reports:
    post:
      tags:
        - Search
      summary: Generate PDF Report
      description: >-
        Generate PDF reports as evidence that screening in Minerva was
        completed. The recommended workflow is to pass a single `searchResultId`
        from a previous `POST /v1/search-sync` response or from a batch result
        returned by `POST /v1/searchStatus` or `GET /v1/search/{jobid}`. For
        batch results, use the entity-scoped `searchId` value returned in each
        result row, such as `<requestId>_0`. Legacy `results` and `id` payloads
        are still supported for older integrations.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                searchResultId:
                  type: string
                  description: >-
                    Recommended. Pass the `searchId` returned by `POST
                    /v1/search-sync`, or a result-level `searchId` returned by
                    `POST /v1/searchStatus` or `GET /v1/search/{jobid}`. A plain
                    24-character request id is treated as the first entity in
                    that request; entity-scoped batch ids use the
                    `<requestId>_<entityIndex>` format.
                  example: 69ba0b732908cb3209647d36
                results:
                  type: array
                  items:
                    type: string
                  description: >-
                    Legacy bulk input. Provide one or more result IDs from `POST
                    /v1/searchStatus` or `GET /v1/search/{jobid}` to generate
                    multiple reports in a single request.
                  example:
                    - 69ba0ba92908cb3209647d38_0
                    - 69ba0ba92908cb3209647d38_1
                index:
                  oneOf:
                    - type: number
                    - type: array
                      items:
                        type: number
                  description: >-
                    Potential match index to include in the PDF. Defaults to `0`
                    when omitted. When using the recommended `searchResultId`
                    flow, pass a single integer. Legacy bulk requests may also
                    pass an array aligned with `results`.
                  example: 0
                id:
                  type: string
                  description: >-
                    Legacy job ID fallback from the original `POST /v1/search`
                    submission. If you omit `searchResultId`, Minerva can still
                    resolve the matching request from this job ID.
                  example: 25e15c07-1322-4364-a26e-2a6ef25c81d4
              anyOf:
                - required:
                    - searchResultId
                - required:
                    - results
                - required:
                    - id
            example:
              searchResultId: 69ba0ba92908cb3209647d38_0
              index: 0
      responses:
        '200':
          description: >-
            Reports generated successfully. Returns links to the generated PDFs
            in cloud storage.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: number
                    example: 200
                  response:
                    type: string
                    example: Reports generated
                  reports:
                    type: array
                    items:
                      type: string
                    description: >-
                      Array of URLs to the generated PDF reports in cloud
                      storage
                    example:
                      - >-
                        https://storage.googleapis.com/minervaaisite.appspot.com/B3RFqISn7JN4OSJhie3uF76hUJB3/reports/1628784142759691_57.pdf?GoogleAccessId=firebase-adminsdk-2bfq5%40minervaaisite.iam.gserviceaccount.com&Expires=16468358400&Signature=aamxM%2FRC%2FloClKkzB1tQ6leYyVvQfEIKBslNkFvYjRf7odVGwltVCZEAjvJolB%2BNYGI1M%2BTn4RrAZh5lMBh5TuJnzK9Kn76uGrIBwaOwZJB2G49r%2F%2F%2FEh%2BBBRauYpY4ngAKBJV%2FLJTjQ38RJtiJtJJHSyO%2F2LdpQGzpC10fr1BpjEk6geDAe%2BC1sUaWCwkb3CUP%2FUB6eyV%2Fv3ZaxSMDLQiPAkPa8Zm0p618U4L%2FijpUpefsrGovPT61YC1iqAtypmnrWXKf1npm65%2BTR%2FsofzIpeBUIfVEp5MH3sidhA5gLRyqSqRqQwn0AcGID95vPGBk6kklmdnINu7RGsd7mkmQ%3D%3D
        '400':
          description: Bad Request - The request failed due to client error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: number
                    example: 400
                  message:
                    type: string
                    example: The result IDs in the request do not exist
        '403':
          description: Forbidden - Authentication failed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: number
                    example: 403
                  message:
                    type: string
                    example: The API key was invalid
        '500':
          description: >-
            Internal Server Error - An issue was encountered on the MinervaAI
            server side while attempting to complete this task, and it did not
            complete correctly. Please contact support@gominerva.com with bug
            reproduction notes to have this issue resolved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: number
                    example: 500
                  message:
                    type: string
                    example: Internal server error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        The Minerva API key used for this integration. Manage API keys in the
        Minerva dashboard under Administration > Developers.

````