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

# Get Quick Scan Screening Hits

This endpoint retrieves **paginated potential hits** for a specific Quick Scan screening, filtered by **screening type** (engine).

***

## Path Parameters

| Parameter     | Type      | Required | Description                                                                           |
| ------------- | --------- | -------- | ------------------------------------------------------------------------------------- |
| `screeningId` | `integer` | Yes      | The unique identifier of the Quick Scan screening (returned from Trigger Quick Scan). |

***

## Query Parameters

| Parameter       | Type      | Required | Description                                           |
| --------------- | --------- | -------- | ----------------------------------------------------- |
| `screeningType` | `string`  | Yes      | The screening engine whose hits you want to retrieve. |
| `pageNumber`    | `integer` | No       | Page number (0-indexed). Default: `0`.                |
| `pageSize`      | `integer` | No       | Number of results per page. Default: `20`.            |

### Available Screening Types

| Value                 | Description                                |
| --------------------- | ------------------------------------------ |
| `ARTEMISCAN`          | Cynopsis proprietary screening engine      |
| `DJ`                  | Dow Jones                                  |
| `TR`                  | World-Check (Refinitiv / LSEG)             |
| `INTERNET_SEARCH`     | Internet-based adverse media search        |
| `OWN_RESTRICTED_LIST` | Your organisation's custom restricted list |

***

## Headers

| Header          | Type      | Required | Description                                             |
| --------------- | --------- | -------- | ------------------------------------------------------- |
| `Authorization` | `string`  | Yes      | Bearer token obtained from the authentication endpoint. |
| `X-Domain-ID`   | `integer` | Yes      | The domain identifier for your organisation.            |

***

## Example Requests

### Get ArtemiScan Hits

```bash theme={null}
curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=ARTEMISCAN" \
  -H "Authorization: Bearer <token>" \
  -H "X-Domain-ID: {{domain_id}}"
```

### Get Dow Jones Hits (with Pagination)

```bash theme={null}
curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=DJ&pageNumber=0&pageSize=10" \
  -H "Authorization: Bearer <token>" \
  -H "X-Domain-ID: {{domain_id}}"
```

### Get Internet Search Hits

```bash theme={null}
curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=INTERNET_SEARCH" \
  -H "Authorization: Bearer <token>" \
  -H "X-Domain-ID: {{domain_id}}"
```

***

## Response

A successful response returns a **paginated** `Page<ScreeningHitResponseDto>` with an HTTP `200` status code.

### Pagination Wrapper

| Field           | Type      | Description                                                      |
| --------------- | --------- | ---------------------------------------------------------------- |
| `content`       | `array`   | Array of `ScreeningHitResponseDto` objects for the current page. |
| `totalElements` | `integer` | Total number of hits across all pages.                           |
| `totalPages`    | `integer` | Total number of pages.                                           |
| `number`        | `integer` | Current page number (0-indexed).                                 |
| `size`          | `integer` | Page size.                                                       |
| `first`         | `boolean` | Whether this is the first page.                                  |
| `last`          | `boolean` | Whether this is the last page.                                   |

### Hit Object Fields (`ScreeningHitResponseDto`)

| Field           | Type      | Description                                                                                                                       |
| --------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `id`            | `integer` | Unique hit identifier.                                                                                                            |
| `screeningId`   | `integer` | The parent screening ID.                                                                                                          |
| `screeningType` | `string`  | The engine that produced this hit (e.g., `ARTEMISCAN`, `DJ`).                                                                     |
| `externalId`    | `string`  | External reference ID from the screening provider.                                                                                |
| `body`          | `object`  | The full hit payload from the screening engine. Structure varies by engine — see [Hit Body by Engine](#hit-body-by-engine) below. |
| `diff`          | `object`  | Differences highlighted between the screened name and the matched entity.                                                         |
| `matched`       | `string`  | Resolution status: `TRUE_HIT`, `FALSE_POSITIVE`, or `NO_ACTION` (default).                                                        |
| `newMatch`      | `boolean` | Whether this is a newly identified match (appears for the first time).                                                            |
| `commentCount`  | `integer` | Number of comments on this hit.                                                                                                   |
| `comment`       | `array`   | List of comments attached to this hit.                                                                                            |
| `filtered`      | `boolean` | Whether this hit was filtered by rules.                                                                                           |
| `createdAt`     | `string`  | Timestamp when the hit was identified.                                                                                            |

### Example Response

```json theme={null}
{
  "content": [
    {
      "id": 98765,
      "screeningId": 12345,
      "screeningType": "ARTEMISCAN",
      "externalId": "AC-2025-001",
      "body": {
        "name": "John Doe",
        "matchScore": 95,
        "categories": ["PEP", "SANCTION"],
        "country": "US",
        "dateOfBirth": "1970-01-01",
        "source": "OFAC SDN List"
      },
      "diff": {
        "name": {
          "original": "John Doe",
          "matched": "John M. Doe"
        }
      },
      "matched": "NO_ACTION",
      "newMatch": true,
      "commentCount": 0,
      "comment": [],
      "filtered": false,
      "createdAt": "2025-01-15T10:31:00.000+00:00",
      "updatedAt": "2025-01-15T10:31:00.000+00:00"
    }
  ],
  "totalElements": 3,
  "totalPages": 1,
  "number": 0,
  "size": 20,
  "first": true,
  "last": true
}
```

***

## Hit Body by Engine

The `body` field contains engine-specific data. The structure differs depending on the `screeningType`:

<AccordionGroup>
  <Accordion title="ARTEMISCAN">
    Contains structured match data including name, match score, categories (PEP, SANCTION, ADVERSE\_MEDIA), country, date of birth, and source references.
  </Accordion>

  <Accordion title="DJ (Dow Jones)">
    Contains Dow Jones profile data including name variants, associated countries, PEP status, sanction lists, and related entities.
  </Accordion>

  <Accordion title="TR (World-Check)">
    Contains Refinitiv World-Check profile data including name, category, sub-category, linked countries, and identification details.
  </Accordion>

  <Accordion title="INTERNET_SEARCH">
    Contains internet search results including article title, URL, snippet, publication date, and relevance score.
  </Accordion>

  <Accordion title="OWN_RESTRICTED_LIST">
    Contains matched entries from your organisation's custom restricted list.
  </Accordion>
</AccordionGroup>

***

## Notes

* You must first trigger a Quick Scan with [Trigger Quick Scan Screening](./post-quick-scan-screen) and obtain the `screeningId`.
* Ensure the screening for the requested `screeningType` has completed (`DONE` status) before fetching hits. You can check this with [Get Quick Scan Screening](./get-quick-scan-screening).
* Each `screeningType` returns hits independently — call this endpoint once per engine you want to inspect.
* Hits default to `matched: "NO_ACTION"`. Use the Artemis UI or additional APIs to mark hits as `TRUE_HIT` or `FALSE_POSITIVE`.


## OpenAPI

````yaml GET /api/quickscan/screen/{screeningId}/hit
openapi: 3.1.0
info:
  description: Api Documentation
  version: '3.0'
  title: Api Documentation
  termsOfService: urn:tos
  contact: {}
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://api.artemis.cynopsis.co
security: []
tags:
  - name: app-config-controller
    description: App Config Controller
  - name: asia-verify-controller
    description: Asia Verify Controller
  - name: authentication-controller
    description: Authentication Controller
  - name: authentication-manager-controller
    description: Authentication Manager Controller
  - name: basic-error-controller
    description: Basic Error Controller
  - name: comment-controller
    description: Comment Controller
  - name: customer-controller
    description: Customer Controller
  - name: dashboard-controller
    description: Dashboard Controller
  - name: domain-controller
    description: Domain Controller
  - name: expiring-document-controller
    description: Expiring Document Controller
  - name: hand-shake-controller
    description: Hand Shake Controller
  - name: media-controller
    description: Media Controller
  - name: on-going-due-diligent-controller
    description: On Going Due Diligent Controller
  - name: own-restricted-list-controller
    description: Own Restricted List Controller
  - name: periodic-review-controller
    description: Periodic Review Controller
  - name: quick-scan-controller
    description: Quick Scan Controller
  - name: user-controller
    description: User Controller
paths:
  /api/quickscan/screen/{screeningId}/hit:
    get:
      tags:
        - quick-scan-controller
      summary: getQuickScanHit
      operationId: getQuickScanHitUsingGET
      parameters:
        - name: screeningType
          in: query
          description: screeningType
          required: true
          schema:
            type: string
            enum:
              - ARTEMISCAN
              - DJ
              - FACE_COMPARE
              - INTERNET_SEARCH
              - OCR
              - OWN_RESTRICTED_LIST
              - TR
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: paged
          in: query
          required: false
          schema:
            type: boolean
        - name: pageNumber
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: screeningId
          in: path
          description: screeningId
          required: true
          schema:
            type: integer
            format: int64
        - name: sort.sorted
          in: query
          required: false
          schema:
            type: boolean
        - name: sort.unsorted
          in: query
          required: false
          schema:
            type: boolean
        - name: unpaged
          in: query
          required: false
          schema:
            type: boolean
        - name: X-Domain-ID
          in: header
          description: X-Domain-ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Page_ScreeningHitResponseDto_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
        - OAuth2_Client_Credentials: []
        - OAuth2_Password: []
components:
  schemas:
    Page_ScreeningHitResponseDto_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/ScreeningHitResponseDto'
        empty:
          type: boolean
        first:
          type: boolean
        last:
          type: boolean
        number:
          type: integer
          format: int32
        numberOfElements:
          type: integer
          format: int32
        pageable:
          $ref: '#/components/schemas/Pageable'
        size:
          type: integer
          format: int32
        sort:
          $ref: '#/components/schemas/Sort'
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      title: Page«ScreeningHitResponseDto»
    ScreeningHitResponseDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/JsonNode'
        commentCount:
          type: integer
          format: int64
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          $ref: '#/components/schemas/UserInfo'
        diff:
          $ref: '#/components/schemas/JsonNode'
        externalId:
          type: string
        id:
          type: integer
          format: int64
        matched:
          type: string
          enum:
            - FALSE_POSITIVE
            - NO_ACTION
            - TRUE_HIT
        newMatch:
          type: boolean
        profileId:
          type: integer
          format: int64
        screeningId:
          type: integer
          format: int64
        screeningType:
          type: string
          enum:
            - ARTEMISCAN
            - DJ
            - FACE_COMPARE
            - INTERNET_SEARCH
            - OCR
            - OWN_RESTRICTED_LIST
            - TR
        updatedAt:
          $ref: '#/components/schemas/Timestamp'
        updatedBy:
          $ref: '#/components/schemas/UserInfo'
      title: ScreeningHitResponseDto
    Pageable:
      type: object
      properties:
        offset:
          type: integer
          format: int64
        pageNumber:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        paged:
          type: boolean
        sort:
          $ref: '#/components/schemas/Sort'
        unpaged:
          type: boolean
      title: Pageable
    Sort:
      type: object
      properties:
        empty:
          type: boolean
        sorted:
          type: boolean
        unsorted:
          type: boolean
      title: Sort
    JsonNode:
      type: object
      title: JsonNode
    Timestamp:
      type: object
      properties:
        date:
          type: integer
          format: int32
        day:
          type: integer
          format: int32
        hours:
          type: integer
          format: int32
        minutes:
          type: integer
          format: int32
        month:
          type: integer
          format: int32
        nanos:
          type: integer
          format: int32
        seconds:
          type: integer
          format: int32
        time:
          type: integer
          format: int64
        timezoneOffset:
          type: integer
          format: int32
        year:
          type: integer
          format: int32
      title: Timestamp
    UserInfo:
      type: object
      properties:
        email:
          type: string
        firstName:
          type: string
        fullName:
          type: string
        id:
          type: integer
          format: int64
        lastName:
          type: string
      title: UserInfo
  securitySchemes:
    OAuth2_Client_Credentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://crm.cynopsis.co/oauth/token
          scopes: {}
    OAuth2_Password:
      type: oauth2
      flows:
        password:
          tokenUrl: https://crm.cynopsis.co/oauth/token
          scopes: {}

````