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

# Forensics Results (Whole Cart)

> The cart-wide counterpart to the appraisal results endpoint: every appraisal's per-attachment results in one response, keyed by `appraisal_id`. Appraisals with no analyzed attachments are omitted, so an absent key means "no results".



## OpenAPI

````yaml get /forensics/{client_reference_id}/results/all
openapi: 3.0.0
info:
  title: ValueChecker API
  description: The ValueChecker Application Programming Interface.
  version: 0.150.1
  x-logo:
    url: >-
      https://files.valuechecker.net/images/default-category-images/Value-Checker_top_bar_logo.png
    backgroundColor: '#FFFFFF'
    altText: ValueChecker logo
  contact:
    name: Contact
    url: https://www.valuechecker.net/contact/
    email: support@valuechecker.net
servers:
  - url: https://api.valuechecker.net/
    description: ValueChecker API URL.
security:
  - apiKey: []
tags:
  - name: default
externalDocs:
  description: PDF Documentation (official)
  url: https://www.valuechecker.net/docs/api/pdf
paths:
  /forensics/{client_reference_id}/results/all:
    get:
      tags:
        - default
      summary: Forensics Results (Whole Cart)
      description: >-
        The cart-wide counterpart to the appraisal results endpoint: every
        appraisal's per-attachment results in one response, keyed by
        `appraisal_id`. Appraisals with no analyzed attachments are omitted, so
        an absent key means "no results".
      parameters:
        - $ref: '#/components/parameters/client_reference_id'
        - $ref: '#/components/parameters/client_id'
        - $ref: '#/components/parameters/session-id'
      responses:
        '200':
          description: >-
            OK - A map of `appraisal_id` to that appraisal's per-attachment
            results. Empty when the cart has no analyzed attachments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  forensics_results:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          row_id:
                            type: integer
                            description: >-
                              Identifier of the claimed item the attachment
                              belongs to. Results are stored per claimed item,
                              so appraisals created from the same item share
                              these verdicts.
                          file_name:
                            type: string
                            description: >-
                              The attachment file name, as returned in the
                              appraisal's `attachments` array. Use this value
                              when clearing a verdict.
                          status:
                            type: string
                            enum:
                              - not_started
                              - ongoing
                              - complete
                              - failed
                            description: >-
                              Per-attachment analysis lifecycle. Only `complete`
                              carries a verdict.
                          is_ai_generated:
                            type: boolean
                            nullable: true
                            description: >-
                              Whether the image was judged AI-generated. `null`
                              until the analysis is `complete`.
                          is_digitally_manipulated:
                            type: boolean
                            nullable: true
                            description: >-
                              Whether the image was judged digitally
                              manipulated. `null` until the analysis is
                              `complete`.
                          ai_generated_confidence:
                            type: number
                            nullable: true
                            description: Confidence (0-1) of the AI-generated verdict.
                          manipulation_confidence:
                            type: number
                            nullable: true
                            description: Confidence (0-1) of the manipulation verdict.
                          confidence:
                            type: number
                            nullable: true
                            description: >-
                              The higher of the two per-verdict confidences, for
                              consumers that expect one overall score. Prefer
                              the per-verdict fields.
                          analysis:
                            type: string
                            nullable: true
                            description: Free-text explanation of the verdict.
                          regions:
                            type: array
                            nullable: true
                            description: >-
                              Normalized (0-1) bounding boxes of detected edits,
                              when the manipulation is localized. `null`
                              otherwise.
                            items:
                              type: object
                              properties:
                                x_min:
                                  type: number
                                y_min:
                                  type: number
                                x_max:
                                  type: number
                                y_max:
                                  type: number
                          flagged:
                            type: boolean
                            description: >-
                              True when a completed verdict was confident enough
                              to mark the image as flagged.
                          update_time:
                            type: string
                            format: date-time
                            description: >-
                              When the attachment's verdict rows were last
                              updated (ISO 8601).
                    description: Keyed by `appraisal_id` (as a string).
              example:
                forensics_results:
                  '97771':
                    - row_id: 41827
                      file_name: receipt_front.jpg
                      status: complete
                      is_ai_generated: false
                      is_digitally_manipulated: true
                      ai_generated_confidence: 0.08
                      manipulation_confidence: 0.91
                      confidence: 0.91
                      analysis: >-
                        The price region shows resampling artefacts inconsistent
                        with the surrounding pixels.
                      regions:
                        - x_min: 0.31
                          y_min: 0.44
                          x_max: 0.52
                          y_max: 0.55
                      flagged: true
                      update_time: '2026-07-24T09:12:33'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
components:
  parameters:
    client_reference_id:
      name: client_reference_id
      in: path
      schema:
        type: integer
      required: true
      description: The client reference identifier.
      example: '9337'
    client_id:
      name: client_id
      in: query
      schema:
        type: integer
      example: '10'
      description: >-
        The client ID for the request. It's required if you have access to
        multiple clients with your API key. Otherwise, it's optional.
    session-id:
      name: session-id
      in: query
      schema:
        type: string
      example: a1b2c3d4e5f6g7h8i9j0
      description: Optional session identifier of the user.
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              event_code:
                type: string
              event_dict:
                type: object
                properties:
                  event_severity:
                    type: string
                  title:
                    type: string
                  description:
                    type: string
          example:
            error: Invalid Authorization header
            event_code: ERIT00
            event_dict:
              event_severity: ERROR
              title: Invalid Authorization header
              description: Please provide the right authorization token
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              event_code:
                type: string
              event_dict:
                type: object
                properties:
                  event_severity:
                    type: string
                  title:
                    type: string
                  description:
                    type: string
          example:
            error: Forbidden
            event_code: ERIT02
            event_dict:
              event_severity: ERROR
              title: Forbidden
              description: Access denied
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Note! Prefix your <api-key> with `apiKey `. Note the space after "apiKey
        ".

````