# Fetching Crosscheck Results

The [Cross Check module](/features-and-modules/cross-check/) compares two data points from a session against each other and returns a match result. Cross checks are [configured in Dashboard](https://developer.incode.com/docs/dashboard-cross-check) as part of a Workflow or Flow: you name each comparison, choose the two fields to compare (for example, first name from ID Capture against first name entered in a Form), and set the severity applied when the values don't match. During a session, each configured comparison runs automatically. This page documents how to fetch the results of those comparisons via API.

## Endpoint

`POST /omni/cross-doc-data-check/results`

## Response

The response returns a dictionary keyed by comparison name. Each value is an array of result objects containing the compared fields, match outcome, and severity.

### Sample response

```json
{
  "FirstNameComparison #i1class": [
    {
      "interviewId": "string",
      "comparisonName": "string",
      "comparisonId": "string",
      "result": "OK",
      "leftValueDetails": {
        "documentType": "string",
        "fieldName": "string",
        "value": {},
        "sourceNotFound": true
      },
      "rightValueDetails": {
        "documentType": "string",
        "fieldName": "string",
        "value": {},
        "sourceNotFound": true
      },
      "severity": "ultra_low"
    }
  ]
}
```

### Response fields

| Field               | Description                                                                                          |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| `interviewId`       | ID of the interview the comparison was run against.                                                  |
| `comparisonName`    | Name of the comparison as configured in Dashboard.                                                   |
| `comparisonId`      | Internal ID of the comparison.                                                                       |
| `result`            | Match outcome for this comparison.                                                                   |
| `leftValueDetails`  | Object describing the first field in the comparison, including document type, field name, and value. |
| `rightValueDetails` | Object describing the second field in the comparison.                                                |
| `severity`          | Severity level of the comparison result (for example, `ultra_low`).                                  |

## Reading results

When reading the response, iterate through the dictionary and use a "contains" comparison with the comparison name. Do not read the comparison name as a direct key on the JSON response. Incode's system automatically appends metadata to the end of each name, so a direct key lookup will not work.

For example, if you name a comparison `FirstNameComparison` in Dashboard, the API may return it as `FirstNameComparison #i1class`. The appended metadata varies and should be ignored. To retrieve the result, loop through the top-level keys of the JSON response and find the key that contains `FirstNameComparison`.

Name comparisons so there is no overlap in "contains" matching. For example, do not name one comparison `FirstNameComp` and another `FirstNameComparison`. This can cause your code to read from the wrong field.

