How does the screenshot API request work?

Hello everybody, I’m studying the Xibo API and I would like to ask you a question.
I’ve seen that there is an API url:
display/requestscreenshot/{displayid}
As I see, this call should take a screenshot from a display. My question is:
How does the API return me a screenshot? If I see the documentation, I should receive a JSON of this type:

{
  "displayId": 0,
  "displayTypeId": 0,
  "venueId": 0,
  "address": "string",
  "isMobile": 0,
  "languages": "string",
  "displayType": "string",
  "screenSize": 0,
  "isOutdoor": 0,
  "customId": "string",
  "costPerPlay": 0,
  "impressionsPerPlay": 0,
  "ref1": "string",
  "ref2": "string",
  "ref3": "string",
  "ref4": "string",
  "ref5": "string",
  "auditingUntil": 0,
  "display": "string",
  "description": "string",
  "defaultLayoutId": 0,
  "license": "string",
  "licensed": 0,
  "loggedIn": 0,
  "lastAccessed": 0,
  "incSchedule": 0,
  "emailAlert": 0,
  "alertTimeout": 0,
  "clientAddress": "string",
  "mediaInventoryStatus": 0,
  "macAddress": "string",
  "lastChanged": 0,
  "numberOfMacAddressChanges": 0,
  "lastWakeOnLanCommandSent": 0,
  "wakeOnLanEnabled": 0,
  "wakeOnLanTime": "string",
  "broadCastAddress": "string",
  "secureOn": "string",
  "cidr": "string",
  "latitude": 0,
  "longitude": 0,
  "clientType": "string",
  "clientVersion": "string",
  "clientCode": 0,
  "displayProfileId": 0,
  "currentLayoutId": 0,
  "screenShotRequested": 0,
  "storageAvailableSpace": 0,
  "storageTotalSpace": 0,
  "displayGroupId": 0,
  "currentLayout": "string",
  "defaultLayout": "string",
  "displayGroups": [
    {
      "displayGroupId": 0,
      "displayGroup": "string",
      "description": "string",
      "isDisplaySpecific": 0,
      "isDynamic": 0,
      "dynamicCriteria": "string",
      "dynamicCriteriaLogicalOperator": "string",
      "dynamicCriteriaTags": "string",
      "dynamicCriteriaExactTags": 0,
      "dynamicCriteriaTagsLogicalOperator": "string",
      "userId": 0,
      "tags": [
        {
          "tagId": 0,
          "tag": "string",
          "isSystem": 0,
          "isRequired": 0,
          "options": [
            "string"
          ],
          "layouts": [
            "string"
          ],
          "playlists": [
            "string"
          ],
          "campaigns": [
            "string"
          ],
          "medias": [
            "string"
          ],
          "displayGroups": [
            "string"
          ],
          "value": "string"
        }
      ],
      "bandwidthLimit": 0,
      "groupsWithPermissions": "string",
      "createdDt": "string",
      "modifiedDt": "string",
      "folderId": 0,
      "permissionsFolderId": 0,
      "ref1": "string",
      "ref2": "string",
      "ref3": "string",
      "ref4": "string",
      "ref5": "string"
    }
  ],
  "xmrChannel": "string",
  "xmrPubKey": "string",
  "lastCommandSuccess": 0,
  "deviceName": "string",
  "timeZone": "string",
  "tags": [
    {
      "tagId": 0,
      "tag": "string",
      "isSystem": 0,
      "isRequired": 0,
      "options": [
        "string"
      ],
      "layouts": [
        "string"
      ],
      "playlists": [
        "string"
      ],
      "campaigns": [
        "string"
      ],
      "medias": [
        "string"
      ],
      "displayGroups": [
        "string"
      ],
      "value": "string"
    }
  ],
  "overrideConfig": "string",
  "bandwidthLimit": 0,
  "newCmsAddress": "string",
  "newCmsKey": "string",
  "orientation": "string",
  "resolution": "string",
  "commercialLicence": 0,
  "teamViewerSerial": "string",
  "webkeySerial": "string",
  "groupsWithPermissions": "string",
  "createdDt": "string",
  "modifiedDt": "string",
  "folderId": 0,
  "permissionsFolderId": 0,
  "countFaults": 0,
  "lanIpAddress": "string"
}

How does it return me the screenshot? Where could I retrieve it?

So I’m pretty sure you are misunderstanding what this API call does. It does not do a call to the CMS and return an image file in binary form. Instead, it will tell the CMS to reach out to the device via XMR and grab its current ‘screenshot’. It then takes this screenshot and populates the ‘Screenshot’ column in the CMS, under the Displays section. By default, this column is hidden, so you will need to go into the table settings and add it.