{
  "openapi": "3.1.0",
  "info": {
    "title": "Expedy Devices API",
    "version": "v2",
    "description": "Reference for the devices endpoints of the Expedy API. Generated from https://docs.expedy.io.",
    "contact": {
      "name": "Expedy",
      "url": "https://docs.expedy.io"
    }
  },
  "servers": [
    {
      "url": "https://www.expedy.fr/api/v2",
      "description": "Production"
    }
  ],
  "paths": {
    "/devices/all": {
      "get": {
        "summary": "List all your devices",
        "description": "This endpoint allows you to list all your devices",
        "operationId": "get_devices_all",
        "tags": [
          "devices"
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-devices/get-devices-all",
          "description": "Full documentation for List all your devices"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `device_uid` | `string` | No |  |\n| `version` | `string` | No |  |\n| `last_ping` | `string` | No |  |\n| `rpi_nickname` | `string` | No |  |\n| `rpi_disk_size` | `string` | No |  |\n| `rpi_vid_list` | `string` | No |  |\n\n**Response Example:**\n\n```json\n[\n  {\n    \"device_uid\": \"MMAAZ112PI\",\n    \"version\": \"4.5.1\",\n    \"last_ping\": \"1657333235\",\n    \"rpi_nickname\": \"Lobby welcome displays\",\n    \"rpi_disk_size\": \"50\",\n    \"rpi_vid_list\": \"1_8R9VAPYBY24;1_D5JNX9PASFM;1_K7Y26X3R7IQ;1_NY4RW9GHX96;\"\n  },\n  {\n    \"device_uid\": \"5ZBNU4TY42H\",\n    \"version\": \"4.5.1\",\n    \"last_ping\": \"1657333235\",\n    \"rpi_nickname\": \"Room Service Dispatch\",\n    \"rpi_disk_size\": \"25\",\n    \"rpi_vid_list\": \"\"\n  },\n  {\n    \"device_uid\": \"NTK8YLP7ILE\",\n    \"version\": \"4.5.1\",\n    \"last_ping\": \"1657333235\",\n    \"rpi_nickname\": \"Kitchen Dispatch\",\n    \"rpi_disk_size\": \"25\",\n    \"rpi_vid_list\": \"1_TP7YLRUCNKF;\"\n  }\n]\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "device_uid": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "last_ping": {
                      "type": "string"
                    },
                    "rpi_nickname": {
                      "type": "string"
                    },
                    "rpi_disk_size": {
                      "type": "string"
                    },
                    "rpi_vid_list": {
                      "type": "string"
                    }
                  }
                },
                "example": [
                  {
                    "device_uid": "MMAAZ112PI",
                    "version": "4.5.1",
                    "last_ping": "1657333235",
                    "rpi_nickname": "Lobby welcome displays",
                    "rpi_disk_size": "50",
                    "rpi_vid_list": "1_8R9VAPYBY24;1_D5JNX9PASFM;1_K7Y26X3R7IQ;1_NY4RW9GHX96;"
                  },
                  {
                    "device_uid": "5ZBNU4TY42H",
                    "version": "4.5.1",
                    "last_ping": "1657333235",
                    "rpi_nickname": "Room Service Dispatch",
                    "rpi_disk_size": "25",
                    "rpi_vid_list": ""
                  },
                  {
                    "device_uid": "NTK8YLP7ILE",
                    "version": "4.5.1",
                    "last_ping": "1657333235",
                    "rpi_nickname": "Kitchen Dispatch",
                    "rpi_disk_size": "25",
                    "rpi_vid_list": "1_TP7YLRUCNKF;"
                  }
                ]
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}": {
      "get": {
        "summary": "Get device summary info",
        "description": "This endpoint allows you to get a device's summary and status info",
        "operationId": "get_devices_Bydevice_uid",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-devices/get-devices-device-uid",
          "description": "Full documentation for Get device summary info"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `device_uid` | `string` | No |  |\n| `rpi_nickname` | `string` | No |  |\n| `version` | `string` | No |  |\n| `last_ping` | `string` | No |  |\n| `rpi_disk_size` | `string` | No |  |\n| `rpi_vid_list` | `string` | No |  |\n\n**Response Example:**\n\n```json\n{\n  \"device_uid\": \"MMAAZ112PI\",\n  \"rpi_nickname\": \"Lobby welcome displays\",\n  \"version\": \"4.5.1\",\n  \"last_ping\": \"1657333235\",\n  \"rpi_disk_size\": \"25\",\n  \"rpi_vid_list\": \"1_8R9VAPYBY24;1_D5JNX9PASFM;1_K7Y26X3R7IQ;1_NY4RW9GHX96;\"\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "device_uid": {
                      "type": "string"
                    },
                    "rpi_nickname": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "last_ping": {
                      "type": "string"
                    },
                    "rpi_disk_size": {
                      "type": "string"
                    },
                    "rpi_vid_list": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "device_uid": "MMAAZ112PI",
                  "rpi_nickname": "Lobby welcome displays",
                  "version": "4.5.1",
                  "last_ping": "1657333235",
                  "rpi_disk_size": "25",
                  "rpi_vid_list": "1_8R9VAPYBY24;1_D5JNX9PASFM;1_K7Y26X3R7IQ;1_NY4RW9GHX96;"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/ping": {
      "get": {
        "summary": "Ping",
        "description": "This endpoint allows you to ask the device to ping back the platform\n\nUse it in conjunction with the /status endpoint to check if the unix stamp was incremented, and confirm the device is correctly up and running.",
        "operationId": "get_devices_Bydevice_uid_ping",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-system/get-devices-device-uid-ping",
          "description": "Full documentation for Ping"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `number` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "number",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/update": {
      "get": {
        "summary": "Update Firmware",
        "description": "This endpoint allows you to initiate a device software update, if any are available.",
        "operationId": "get_devices_Bydevice_uid_update",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-system/get-devices-device-uid-update",
          "description": "Full documentation for Update Firmware"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/reboot": {
      "get": {
        "summary": "Reboot",
        "description": "This endpoint allows you to remotely reboot the device.",
        "operationId": "get_devices_Bydevice_uid_reboot",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-system/get-devices-device-uid-reboot",
          "description": "Full documentation for Reboot"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/shutdown": {
      "get": {
        "summary": "Shutdown",
        "description": "USE WITH CARE, This endpoint allows you to shutdown the device. BEWARE, You'll need to be physically near the device to be able to start it up again. This endpoint is usually used to safely shutdown the device before physically deploying it at another geographical location.",
        "operationId": "get_devices_Bydevice_uid_shutdown",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-system/get-devices-device-uid-shutdown",
          "description": "Full documentation for Shutdown"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/wifi/conf": {
      "get": {
        "summary": "Get Actual Configuration",
        "description": "This endpoint allows you to get the device's actual wifi configuration in json format.",
        "operationId": "get_devices_Bydevice_uid_wifi_conf",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-wifi/get-devices-device-uid-wifi-conf",
          "description": "Full documentation for Get Actual Configuration"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `wifi_conf` | `array` | No |  |\n\n**`wifi_conf` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `wifi_id` | `integer` | No |  (ex: `40`) |\n  | `wifi_ssid` | `string` | No |  (ex: `my_local_ssid`) |\n  | `wifi_psk` | `string` | No |  (ex: `***********************`) |\n\n\n**Response Example:**\n\n```json\n{\n  \"status\": \"ok\",\n  \"last_ping\": 1641490999,\n  \"wifi_conf\": [\n    {\n      \"wifi_id\": 40,\n      \"wifi_ssid\": \"my_local_ssid\",\n      \"wifi_psk\": \"***********************\"\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "wifi_conf": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "status": "ok",
                  "last_ping": 1641490999,
                  "wifi_conf": [
                    {
                      "wifi_id": 40,
                      "wifi_ssid": "my_local_ssid",
                      "wifi_psk": "***********************"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/wifi/add": {
      "put": {
        "summary": "Add SSID to Device Wifi Configuration",
        "description": "This endpoint allows you to add a new SSID to the device's wifi configuration.",
        "operationId": "put_devices_Bydevice_uid_wifi_add",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-wifi/put-devices-device-uid-wifi-add",
          "description": "Full documentation for Add SSID to Device Wifi Configuration"
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wifi_ssid": {
                    "type": "string",
                    "example": "my_new_local_ssid"
                  },
                  "wifi_psk": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "wifi_ssid": "my_new_local_ssid",
                "wifi_psk": "my_new_ssid_password"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `wifi_conf` | `array` | No |  |\n\n**`wifi_conf` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `wifi_id` | `integer` | No |  (ex: `40`) |\n  | `wifi_ssid` | `string` | No |  |\n  | `wifi_psk` | `string` | No |  |\n\n\n**Response Example:**\n\n```json\n{\n  \"status\": \"ok\",\n  \"last_ping\": 1641491009,\n  \"wifi_conf\": [\n    {\n      \"wifi_id\": 40,\n      \"wifi_ssid\": \"my_local_ssid\",\n      \"wifi_psk\": \"***********************\"\n    },\n    {\n      \"wifi_id\": 41,\n      \"wifi_ssid\": \"my_new_local_ssid\",\n      \"wifi_psk\": \"***********************\"\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "wifi_conf": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "status": "ok",
                  "last_ping": 1641491009,
                  "wifi_conf": [
                    {
                      "wifi_id": 40,
                      "wifi_ssid": "my_local_ssid",
                      "wifi_psk": "***********************"
                    },
                    {
                      "wifi_id": 41,
                      "wifi_ssid": "my_new_local_ssid",
                      "wifi_psk": "***********************"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/wifi/{wifi_id}/del": {
      "patch": {
        "summary": "Delete SSID from Device Wifi Configuration",
        "description": "This endpoint allows you to delete an SSID from the device's wifi configuration.",
        "operationId": "patch_devices_Bydevice_uid_wifi_Bywifi_id_del",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wifi_id",
            "in": "path",
            "required": true,
            "description": "The ssid's id to delete from wifi configuration",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-wifi/patch-devices-device-uid-wifi-wifi-id-del",
          "description": "Full documentation for Delete SSID from Device Wifi Configuration"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `wifi_conf` | `array` | No |  |\n\n**`wifi_conf` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `wifi_id` | `integer` | No |  (ex: `40`) |\n  | `wifi_ssid` | `string` | No |  |\n  | `wifi_psk` | `string` | No |  |\n\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641491009,\n  \"wifi_conf\": [\n    {\n      \"wifi_id\": 41,\n      \"wifi_ssid\": \"my_new_local_ssid\",\n      \"wifi_psk\": \"***********************\"\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "wifi_conf": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641491009,
                  "wifi_conf": [
                    {
                      "wifi_id": 41,
                      "wifi_ssid": "my_new_local_ssid",
                      "wifi_psk": "***********************"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/wifi/update": {
      "get": {
        "summary": "Update Configuration",
        "description": "This endpoint allows you to apply any new Wifi configuration change you made to the targeted device.",
        "operationId": "get_devices_Bydevice_uid_wifi_update",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-wifi/get-devices-device-uid-wifi-update",
          "description": "Full documentation for Update Configuration"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/usb/conf": {
      "get": {
        "summary": "Get Last Saved Usb Port Configuration",
        "description": "This endpoint allows you to get the device's last known usb configuration in json format.",
        "operationId": "get_devices_Bydevice_uid_usb_conf",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-usb-printer/get-devices-device-uid-usb-conf",
          "description": "Full documentation for Get Last Saved Usb Port Configuration"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `usb_conf` | `array` | No |  |\n\n**`usb_conf` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `usb_port` | `integer` | No |  (ex: `2`) |\n  | `usb_status` | `integer` | No |  (ex: `1`) |\n  | `device_manufacturer` | `string` | No |  (ex: `Datamax-O`Neil`) |\n  | `device_model` | `string` | No |  (ex: `Datamax-O'Neil E-Class MarkIII`) |\n  | `device_width` | `integer` | No | If detected, the printer's width size in Millimeters. (ex: `80`) |\n\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641511426,\n  \"usb_conf\": [\n    {\n      \"usb_port\": 1,\n      \"usb_status\": 1,\n      \"device_manufacturer\": \"Datamax-O`Neil\",\n      \"device_model\": \"Datamax-O'Neil E-Class MarkIII\"\n    },\n    {\n      \"usb_port\": 2,\n      \"usb_status\": 0\n    },\n    {\n      \"usb_port\": 3,\n      \"usb_status\": 1,\n      \"device_manufacturer\": \"Caysn\",\n      \"device_model\": \"Thermal Printer\",\n      \"device_width\": 80\n    },\n    {\n      \"usb_port\": 4,\n      \"usb_status\": 0\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "usb_conf": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641511426,
                  "usb_conf": [
                    {
                      "usb_port": 1,
                      "usb_status": 1,
                      "device_manufacturer": "Datamax-O`Neil",
                      "device_model": "Datamax-O'Neil E-Class MarkIII"
                    },
                    {
                      "usb_port": 2,
                      "usb_status": 0
                    },
                    {
                      "usb_port": 3,
                      "usb_status": 1,
                      "device_manufacturer": "Caysn",
                      "device_model": "Thermal Printer",
                      "device_width": 80
                    },
                    {
                      "usb_port": 4,
                      "usb_status": 0
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/usb/scan": {
      "get": {
        "summary": "Scan Usb Ports",
        "description": "This endpoint allows you to initiate a scan of the device's usb ports for any compatible printer connected (up to 4, depending on your device model)",
        "operationId": "get_devices_Bydevice_uid_usb_scan",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-usb-printer/get-devices-device-uid-usb-scan",
          "description": "Full documentation for Scan Usb Ports"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/usb/scan/read": {
      "get": {
        "summary": "Get Usb Port Scan Result",
        "description": "This endpoint allows you to get the device's last known usb scan result in json format.",
        "operationId": "get_devices_Bydevice_uid_usb_scan_read",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-usb-printer/get-devices-device-uid-usb-scan-read",
          "description": "Full documentation for Get Usb Port Scan Result"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `usb_scan` | `array` | No |  |\n\n**`usb_scan` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `usb_port` | `integer` | No |  (ex: `2`) |\n  | `usb_status` | `integer` | No |  (ex: `1`) |\n  | `device_manufacturer` | `string` | No |  (ex: `Datamax-O`Neil`) |\n  | `device_model` | `string` | No |  (ex: `Datamax-O'Neil E-Class MarkIII`) |\n\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641511426,\n  \"usb_conf\": [\n    {\n      \"usb_port\": 1,\n      \"usb_status\": 1,\n      \"device_manufacturer\": \"Datamax-O`Neil\",\n      \"device_model\": \"Datamax-O'Neil E-Class MarkIII\"\n    },\n    {\n      \"usb_port\": 2,\n      \"usb_status\": 0\n    },\n    {\n      \"usb_port\": 3,\n      \"usb_status\": 1,\n      \"device_manufacturer\": \"Caysn\",\n      \"device_model\": \"Thermal Printer\",\n      \"device_width\": 80\n    },\n    {\n      \"usb_port\": 4,\n      \"usb_status\": 0\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "usb_scan": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641511426,
                  "usb_conf": [
                    {
                      "usb_port": 1,
                      "usb_status": 1,
                      "device_manufacturer": "Datamax-O`Neil",
                      "device_model": "Datamax-O'Neil E-Class MarkIII"
                    },
                    {
                      "usb_port": 2,
                      "usb_status": 0
                    },
                    {
                      "usb_port": 3,
                      "usb_status": 1,
                      "device_manufacturer": "Caysn",
                      "device_model": "Thermal Printer",
                      "device_width": 80
                    },
                    {
                      "usb_port": 4,
                      "usb_status": 0
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/usb/{usb_port}/print": {
      "post": {
        "summary": "Create Usb Print Job",
        "description": "This endpoint allows you to send a print job to any configured printer connected to one of your device's usb port. Use /usb/conf or usb/scan/read for details about each connected printer, if any are",
        "operationId": "post_devices_Bydevice_uid_usb_Byusb_port_print",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "usb_port",
            "in": "path",
            "required": true,
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/usb-cloud-printer-adapter/api-usb-printer/post-devices-device-uid-usb-usb-port-print",
          "description": "Full documentation for Create Usb Print Job"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "usb_msg": {
                    "type": "string",
                    "example": "The message to be printed:\\n  - ... in the kitchen,\\n  - ... in the lobby\\n  - ... or a delivery slip pdf url to be printed at the pick & pack departement\\n\\nReally any information, Qrcode, Image etc..  anywhere this printer is positionnable ..."
                  },
                  "notification_url": {
                    "type": "string",
                    "example": "https://www.my_domaine.tld/my_callback_script"
                  },
                  "origin": {
                    "type": "string"
                  }
                },
                "required": [
                  "usb_msg"
                ]
              },
              "example": {
                "usb_msg": "The message to be printed:\n  - ... in the kitchen,\n  - ... in the lobby\n  - ... or a delivery slip pdf url to be printed at the pick & pack departement\n\nReally any information, Qrcode, Image etc..  anywhere this printer is positionnable ...",
                "notification_url": "https://www.my_domaine.tld/my_callback_script",
                "origin": "Your defined origin tag.. a uri, a name .."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n| `request_uid` | `string` | No |  (ex: `1X5ERXL94BYVWHP92DK3MCASUGJ`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604,\n  \"request_uid\": \"1X5ERXL94BYVWHP92DK3MCASUGJ\"\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    },
                    "request_uid": {
                      "type": "string",
                      "example": "1X5ERXL94BYVWHP92DK3MCASUGJ"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604,
                  "request_uid": "1X5ERXL94BYVWHP92DK3MCASUGJ"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/hdmi/conf": {
      "get": {
        "summary": "Get Last Seen Hdmi Port Configuration",
        "description": "This endpoint allows you to get the device's last seen hdmi configuration, with infos about any display connected (1 or 2, depending on your device model), in json format.",
        "operationId": "get_devices_Bydevice_uid_hdmi_conf",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/digital-signage/hdmi/get-devices-device-uid-hdmi-conf",
          "description": "Full documentation for Get Last Seen Hdmi Port Configuration"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `string` | No |  |\n| `hdmi_conf` | `array` | No |  |\n\n**`hdmi_conf` properties:**\n\n  | Parameter | Type | Required | Description |\n  |-----------|------|----------|-------------|\n  | `hdmi_port` | `string` | No |  |\n  | `display_id` | `string` | No |  |\n  | `display_name` | `string` | No |  |\n  | `display_model` | `string` | No |  |\n  | `display_state` | `string` | No |  |\n  | `display_power` | `string` | No |  |\n  | `display_dim` | `string` | No |  |\n  | `display_resolution` | `string` | No |  |\n  | `display_fps` | `string` | No |  |\n  | `display_capabilities` | `array` | No |  |\n\n  **`display_capabilities` properties:**\n\n    | Parameter | Type | Required | Description |\n    |-----------|------|----------|-------------|\n    | `rez` | `string` | No |  |\n    | `freqs` | `array` | No |  |\n\n    **`freqs` properties:**\n\n      | Parameter | Type | Required | Description |\n      |-----------|------|----------|-------------|\n      | `freq` | `string` | No |  |\n\n    | `selected` | `string` | No |  |\n\n\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": \"1657236661\",\n  \"hdmi_conf\": [\n    {\n      \"hdmi_port\": \"1\",\n      \"display_id\": \"1\",\n      \"display_name\": \"Main office screen1\",\n      \"display_model\": \"SAM-SMB2230N\",\n      \"display_state\": \"connected\",\n      \"display_power\": \"1\",\n      \"display_dim\": \"477mmx268mm\",\n      \"display_resolution\": \"1920x1080\",\n      \"display_fps\": \"60.00\",\n      \"display_capabilities\": [\n        {\n          \"rez\": \"1920x1080\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00*\"\n            },\n            {\n              \"freq\": \"50.00\"\n            },\n            {\n              \"freq\": \"59.94\"\n            }\n          ],\n          \"selected\": \"60.00*\"\n        },\n        {\n          \"rez\": \"1600x1200\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1680x1050\",\n          \"freqs\": [\n            {\n              \"freq\": \"59.88\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1280x1024\",\n          \"freqs\": [\n            {\n              \"freq\": \"75.02\"\n            },\n            {\n              \"freq\": \"60.02\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1440x900\",\n          \"freqs\": [\n            {\n              \"freq\": \"74.98\"\n            },\n            {\n              \"freq\": \"59.90\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1280x960\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1280x800\",\n          \"freqs\": [\n            {\n              \"freq\": \"59.91\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1152x864\",\n          \"freqs\": [\n            {\n              \"freq\": \"75.00\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1280x720\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00\"\n            },\n            {\n              \"freq\": \"50.00\"\n            },\n            {\n              \"freq\": \"59.94\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"1024x768\",\n          \"freqs\": [\n            {\n              \"freq\": \"75.03\"\n            },\n            {\n              \"freq\": \"70.07\"\n            },\n            {\n              \"freq\": \"60.00\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"832x624\",\n          \"freqs\": [\n            {\n              \"freq\": \"74.55\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"800x600\",\n          \"freqs\": [\n            {\n              \"freq\": \"72.19\"\n            },\n            {\n              \"freq\": \"75.00\"\n            },\n            {\n              \"freq\": \"60.32\"\n            },\n            {\n              \"freq\": \"56.25\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"720x480\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00\"\n            },\n            {\n              \"freq\": \"59.94\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"640x480\",\n          \"freqs\": [\n            {\n              \"freq\": \"75.00\"\n            },\n            {\n              \"freq\": \"72.81\"\n            },\n            {\n              \"freq\": \"66.67\"\n            },\n            {\n              \"freq\": \"60.00\"\n            },\n            {\n              \"freq\": \"59.94\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"720x400\",\n          \"freqs\": [\n            {\n              \"freq\": \"70.08\"\n            }\n          ],\n          \"selected\": \"\"\n        }\n      ]\n    },\n    {\n      \"hdmi_port\": \"2\",\n      \"display_id\": \"2\",\n      \"display_name\": \"Second office Screen\",\n      \"display_model\": \"none\",\n      \"display_state\": \"unknown\",\n      \"display_power\": \"1\",\n      \"display_dim\": \"0mmx0mm\",\n      \"display_resolution\": \"1024x768\",\n      \"display_fps\": \"60.00\",\n      \"display_capabilities\": [\n        {\n          \"rez\": \"1024x768\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00*\"\n            }\n          ],\n          \"selected\": \"60.00*\"\n        },\n        {\n          \"rez\": \"800x600\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.32\"\n            },\n            {\n              \"freq\": \"56.25\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"848x480\",\n          \"freqs\": [\n            {\n              \"freq\": \"60.00\"\n            }\n          ],\n          \"selected\": \"\"\n        },\n        {\n          \"rez\": \"640x480\",\n          \"freqs\": [\n            {\n              \"freq\": \"59.94\"\n            }\n          ],\n          \"selected\": \"\"\n        }\n      ]\n    }\n  ]\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "string"
                    },
                    "hdmi_conf": {
                      "type": "array"
                    }
                  }
                },
                "example": {
                  "last_ping": "1657236661",
                  "hdmi_conf": [
                    {
                      "hdmi_port": "1",
                      "display_id": "1",
                      "display_name": "Main office screen1",
                      "display_model": "SAM-SMB2230N",
                      "display_state": "connected",
                      "display_power": "1",
                      "display_dim": "477mmx268mm",
                      "display_resolution": "1920x1080",
                      "display_fps": "60.00",
                      "display_capabilities": [
                        {
                          "rez": "1920x1080",
                          "freqs": [
                            {
                              "freq": "60.00*"
                            },
                            {
                              "freq": "50.00"
                            },
                            {
                              "freq": "59.94"
                            }
                          ],
                          "selected": "60.00*"
                        },
                        {
                          "rez": "1600x1200",
                          "freqs": [
                            {
                              "freq": "60.00"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1680x1050",
                          "freqs": [
                            {
                              "freq": "59.88"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1280x1024",
                          "freqs": [
                            {
                              "freq": "75.02"
                            },
                            {
                              "freq": "60.02"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1440x900",
                          "freqs": [
                            {
                              "freq": "74.98"
                            },
                            {
                              "freq": "59.90"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1280x960",
                          "freqs": [
                            {
                              "freq": "60.00"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1280x800",
                          "freqs": [
                            {
                              "freq": "59.91"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1152x864",
                          "freqs": [
                            {
                              "freq": "75.00"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1280x720",
                          "freqs": [
                            {
                              "freq": "60.00"
                            },
                            {
                              "freq": "50.00"
                            },
                            {
                              "freq": "59.94"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "1024x768",
                          "freqs": [
                            {
                              "freq": "75.03"
                            },
                            {
                              "freq": "70.07"
                            },
                            {
                              "freq": "60.00"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "832x624",
                          "freqs": [
                            {
                              "freq": "74.55"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "800x600",
                          "freqs": [
                            {
                              "freq": "72.19"
                            },
                            {
                              "freq": "75.00"
                            },
                            {
                              "freq": "60.32"
                            },
                            {
                              "freq": "56.25"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "720x480",
                          "freqs": [
                            {
                              "freq": "60.00"
                            },
                            {
                              "freq": "59.94"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "640x480",
                          "freqs": [
                            {
                              "freq": "75.00"
                            },
                            {
                              "freq": "72.81"
                            },
                            {
                              "freq": "66.67"
                            },
                            {
                              "freq": "60.00"
                            },
                            {
                              "freq": "59.94"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "720x400",
                          "freqs": [
                            {
                              "freq": "70.08"
                            }
                          ],
                          "selected": ""
                        }
                      ]
                    },
                    {
                      "hdmi_port": "2",
                      "display_id": "2",
                      "display_name": "Second office Screen",
                      "display_model": "none",
                      "display_state": "unknown",
                      "display_power": "1",
                      "display_dim": "0mmx0mm",
                      "display_resolution": "1024x768",
                      "display_fps": "60.00",
                      "display_capabilities": [
                        {
                          "rez": "1024x768",
                          "freqs": [
                            {
                              "freq": "60.00*"
                            }
                          ],
                          "selected": "60.00*"
                        },
                        {
                          "rez": "800x600",
                          "freqs": [
                            {
                              "freq": "60.32"
                            },
                            {
                              "freq": "56.25"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "848x480",
                          "freqs": [
                            {
                              "freq": "60.00"
                            }
                          ],
                          "selected": ""
                        },
                        {
                          "rez": "640x480",
                          "freqs": [
                            {
                              "freq": "59.94"
                            }
                          ],
                          "selected": ""
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/devices/{device_uid}/hdmi/scan": {
      "get": {
        "summary": "Scan Hdmi Ports",
        "description": "This endpoint allows you to initiate a scan of the device's hdmi ports for any display connected (1 or 2, depending on your device model)",
        "operationId": "get_devices_Bydevice_uid_hdmi_scan",
        "tags": [
          "devices"
        ],
        "parameters": [
          {
            "name": "device_uid",
            "in": "path",
            "required": true,
            "description": "The Device's unique id, as found in your Expedy account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "externalDocs": {
          "url": "https://docs.expedy.io/en/digital-signage/hdmi/get-devices-device-uid-hdmi-scan",
          "description": "Full documentation for Scan Hdmi Ports"
        },
        "responses": {
          "200": {
            "description": "OK\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `last_ping` | `integer` | No |  (ex: `1641509604`) |\n\n**Response Example:**\n\n```json\n{\n  \"last_ping\": 1641509604\n}\n```",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_ping": {
                      "type": "integer",
                      "example": "1641509604"
                    }
                  }
                },
                "example": {
                  "last_ping": 1641509604
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "API key issued by Expedy. Contact support to obtain one."
      }
    }
  },
  "tags": [
    {
      "name": "devices"
    }
  ]
}