> ## 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 (Appraisal)

> Return the per-attachment forensics status and verdict for a single appraisal, scoped via the `appraisal_id` query parameter. Use it to show a status and verdict per image.



## OpenAPI

````yaml get /forensics/{client_reference_id}/results
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:
    get:
      tags:
        - default
      summary: Forensics Results (Appraisal)
      description: >-
        Return the per-attachment forensics status and verdict for a single
        appraisal, scoped via the `appraisal_id` query parameter. Use it to show
        a status and verdict per image.
      parameters:
        - $ref: '#/components/parameters/client_reference_id'
        - name: appraisal_id
          in: query
          required: true
          schema:
            type: integer
          example: '97771'
          description: The appraisal's identifier.
        - $ref: '#/components/parameters/client_id'
        - $ref: '#/components/parameters/session-id'
      responses:
        '200':
          description: >-
            OK - One entry per analyzed attachment. Empty when the appraisal has
            no analyzed attachments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  forensics_results:
                    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).
              example:
                forensics_results:
                  - 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
        ".

````