# Validation

## Validate a group of images from a RESO object

<mark style="color:green;">`POST`</mark> `https://api.foyer.ai/Media/validateReso`

Similar to the classification endpoint, this endpoint runs your image through classification and object detection. In addition, each image and detected categories of images will be run through a suite of validation tests.

#### Headers

| Name          | Type   | Description          |
| ------------- | ------ | -------------------- |
| Authorization | string | Authorization token. |

#### Request Body

| Name          | Type    | Description                                                                                          |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| verbose       | boolean | Include information about tests that passed. Defaults to `false`.                                    |
| includeImages | boolean | Include classification information for all images in response object. Defaults to `false`.           |
| odata         | object  | A full RESO object. The keys should include `@odata.context`, `@odata.nextLink`, and `@odata.value`. |

{% tabs %}
{% tab title="200 Images successfully classified and validated." %}

```javascript
{
  "metadata": {
    "run": 18,
    "passed": 14,
    "failed": 4
  },
  "tests": {
    "failed": [
      {
        "images": [
          "b304d42b79a1ac50b8ee55efccf97eb311501bfc"
        ],
        "tag": "kitchen_has_cabinets",
        "human_problem_text": "No visible cabinetry",
        "recommendation": "Ensure cabinets are visible in this picture."
      },
      {
        "images": [
          "b304d42b79a1ac50b8ee55efccf97eb311501bfc",
          "6db152d0c4d69997a163ef0de62e27fc54e1a845"
        ],
        "tag": "kitchen_sufficient_appliances",
        "human_problem_text": "Missing the following items: refrigerator, oven",
        "recommendation": "Ensure this picture has visible appliances."
      },
      {
        "images": [
          "945e330df24b1c8c81628ada493618fb6bfa8340"
        ],
        "tag": "bathroom_has_windows",
        "human_problem_text": "No visible windows",
        "recommendation": "Ensure at least one window is visible in this picture."
      },
      {
        "images": [
          "40c97f5d019f6b14a55a9a3c9ad67a9a0e04fee4",
          "b1a6a5f715c19c710485725ef69d039a35a2a0e0",
          "f1331c64d91a99058fa5483d35414d32560d516b"
        ],
        "tag": "bathroom_no_lights",
        "human_problem_text": "No visible light source",
        "recommendation": "Ensure a light is visible in this picture."
      }
    ]
  },
  "images": [
    {
      "classifications": [
        {
          "id": "3873",
          "confidence": "1.0000",
          "name": "frontofhouse",
          "rank": 1,
          "imageId": 203235888,
          "source": "classifier",
          "updatedAt": "2020-09-14T17:10:01.378Z",
          "createdAt": "2020-09-14T17:10:01.378Z",
          "classId": null
        }
      ],
      "detections": [
        {
          "id": "12229",
          "mask": "clouds",
          "area": 358518,
          "boundingBox": [
            0,
            0,
            1024,
            456
          ],
          "confidence": "0.6025655865669250",
          "hash": "0a0e5ab36ffbafdf58488cd0ce8a92f3",
          "isCrowd": 0,
          "imageId": 203235888,
          "attributes": null,
          "source": "classifier",
          "updatedAt": "2020-09-14T17:10:01.542Z",
          "createdAt": "2020-09-14T17:10:01.542Z",
          "classId": null,
          "segmentation": null
        },
        ...
      ],
      "metadata": {
        "md5": "0a0e5ab36ffbafdf58488cd0ce8a92f3",
        "width": 1024,
        "height": 768,
        "url": "http://photos.listhub.net/A2SELL/470612/1",
        "mediaKey": "30d3218e17442f1ccafb7daa5e1dc3eaf852f2cc"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="401 Invalid authentication token." %}

```javascript
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "Invalid credentials",
  "attributes": {
    "error": "Invalid credentials"
  }
}
```

{% endtab %}

{% tab title="403 No associated account found." %}

```
<Response body is empty>
```

{% endtab %}
{% endtabs %}
