Relativity Reports API

The Reports API from Relativity — 7 operation(s) for reports.

OpenAPI Specification

relativity-reports-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Analytics.Conceptual.Service.Interfaces.Public.V1 AnnotationService Reports API
  description: Analytics.Conceptual.Service.Interfaces.Public
  version: V1
servers:
- url: /Relativity.REST/api
  description: The URL prefix for all Kepler services
tags:
- name: Reports
paths:
  /v4/Reports:
    post:
      tags:
      - Reports
      summary: Create new report
      description: Schedules a new report generation. When 'date' (YYYYMMDD) is provided in the body, a Summary report is produced from the Billable Summary CSV; otherwise a Detailed folder report is generated.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectoryReportRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DirectoryReportRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DirectoryReportRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '429':
          description: Too Many Requests
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
    get:
      tags:
      - Reports
      summary: Get reports list
      description: This endpoint retrieves a paginated list of reports. Snapshot reports ("Last Known Sizes") are included by default and can be excluded by passing includeSnapshotReports=false. Summary reports are excluded by default and are only returned when includeSummaryReports=true.
      parameters:
      - name: start
        in: query
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: includeSnapshotReports
        in: query
        schema:
          type: boolean
          default: true
      - name: includeSummaryReports
        in: query
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportJobsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportJobsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportJobsResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
  /v4/Reports/{id}:
    get:
      tags:
      - Reports
      summary: Get report details
      description: This endpoint retrieves detailed information about a specific report including its status and metadata.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportJobResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
    delete:
      tags:
      - Reports
      summary: Cancel report
      description: This endpoint cancels a running or pending report generation job.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
  /v4/Reports/{id}/file:
    get:
      tags:
      - Reports
      summary: Download report file
      description: This endpoint downloads the generated report file for a completed report.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: string
                format: binary
            application/json:
              schema:
                type: string
                format: binary
            text/json:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
  /v1/Reports/{id}:
    get:
      tags:
      - Reports
      summary: Gets the details of a report by ID
      description: This endpoint retrieves basic information about a specific report based on its unique identifier, like report's ID, name, etc.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportDto'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Reports
      summary: Delete a report by ID
      description: This endpoint allows you to delete a specific report based on its unique identifier.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportsDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportsDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportsDto'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/Reports/{id}/details:
    get:
      tags:
      - Reports
      summary: Gets the detailed information of a report by ID
      description: This endpoint retrieves detailed information about a specific report based on its unique identifier. The details include all columns, workspaces, and fields that were selected for the report.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: PageNumber
        in: query
        schema:
          type: integer
          format: int32
      - name: PageSize
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportDetailsDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportDetailsDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportDetailsDto'
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '503':
          description: Server Error
  /v1/Reports:
    get:
      tags:
      - Reports
      summary: Lists all reports
      description: This endpoint retrieves a list of all reports.
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportsDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportsDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportsDto'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
      - Reports
      summary: Generate a new report
      description: This endpoint allows you to generate a new report based on the provided request data.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateReportRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateReportRequestDto'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ReportDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ReportDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ReportDto'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/Reports/download/{id}:
    get:
      tags:
      - Reports
      summary: Download a report by ID
      description: This endpoint allows you to download a specific report based on its unique identifier.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Stream'
            application/json:
              schema:
                $ref: '#/components/schemas/Stream'
            text/json:
              schema:
                $ref: '#/components/schemas/Stream'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '503':
          description: Server Error
components:
  schemas:
    CreateReportRequestDto:
      type: object
      properties:
        name:
          type: string
          nullable: true
        dateRange:
          $ref: '#/components/schemas/DateRangeDto'
        fields:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        dataMaxPrecision:
          type: boolean
          nullable: true
      additionalProperties: false
    DateRangeDto:
      type: object
      properties:
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
      additionalProperties: false
    ReportDepth:
      enum:
      - TopLevelOnly
      - OneLevelDeep
      - TwoLevelsDeep
      - FullHierarchy
      type: string
    ReportDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        tenantId:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
        dateRange:
          $ref: '#/components/schemas/DateRangeDto'
        fields:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        type:
          enum:
          - Workspace
          - User
          type: string
        status:
          enum:
          - Scheduled
          - InProgress
          - Completed
          - Failed
          - CompletedEmpty
          - CompletedWithErrors
          type: string
        createdAt:
          type: string
          format: date-time
        dataMaxPrecision:
          type: boolean
        version:
          type: integer
          format: int32
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    ReportJobResponse:
      type: object
      properties:
        reportId:
          type: string
          format: uuid
        path:
          type: string
          nullable: true
        createdOn:
          type: string
          format: date-time
        state:
          type: string
          nullable: true
        includeFiles:
          type: boolean
        depth:
          $ref: '#/components/schemas/ReportDepth'
        useSnapshot:
          type: boolean
        captureStart:
          type: string
          format: date-time
        captureEnd:
          type: string
          format: date-time
        reportCategory:
          $ref: '#/components/schemas/ReportCategory'
        reportDate:
          type: string
          nullable: true
          description: For Summary reports, the source CSV date (YYYYMMDD); otherwise null.
        errorMessage:
          type: string
          nullable: true
          description: Sanitized, user-facing failure reason. Populated only when `state` is `Failed` (see Failure reporting in the implementation notes); null otherwise. Omitted from the JSON payload when null.
      additionalProperties: false
    ReportDetailsDto:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
          nullable: true
        items:
          type: array
          items: {}
          nullable: true
        currentPage:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        totalItems:
          type: integer
          format: int32
      additionalProperties: false
    DirectoryReportRequest:
      required:
      - depth
      - path
      type: object
      properties:
        path:
          minLength: 1
          type: string
        includeFiles:
          type: boolean
        depth:
          $ref: '#/components/schemas/ReportDepth'
        useSnapshot:
          type: boolean
        date:
          pattern: ^\d{8}$
          type: string
          nullable: true
          description: Optional. When provided in YYYYMMDD format, a Summary report is produced from the Billable Summary CSV for the container/date combination instead of scanning storage.
      additionalProperties: false
    ReportCategory:
      enum:
      - DetailedReport
      - SummaryReport
      type: string
    ReportsDto:
      type: object
      properties:
        reports:
          type: array
          items:
            $ref: '#/components/schemas/ReportDto'
          nullable: true
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    ReportResponse:
      type: object
      properties:
        reportId:
          type: string
          format: uuid
      additionalProperties: false
    Page:
      required:
      - limit
      - start
      type: object
      properties:
        start:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
        limit:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
      additionalProperties: false
    Stream:
      type: object
      properties:
        canRead:
          type: boolean
          readOnly: true
        canWrite:
          type: boolean
          readOnly: true
        canSeek:
          type: boolean
          readOnly: true
        canTimeout:
          type: boolean
          readOnly: true
        length:
          type: integer
          format: int64
          readOnly: true
        position:
          type: integer
          format: int64
        readTimeout:
          type: integer
          format: int32
        writeTimeout:
          type: integer
          format: int32
      additionalProperties: false
    ReportJobsResponse:
      type: object
      properties:
        reportJobs:
          type: array
          items:
            $ref: '#/components/schemas/ReportJobResponse'
          nullable: true
        paging:
          $ref: '#/components/schemas/Page'
      additionalProperties: false