{
  "datemodified":"2024-09-09",
  "entities": [
    {
      "type": "asset",
      "calls": [
        {
          "call": "/api/asset/get",
          "description": "Retrieve a single asset",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique asset identifier",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "assetid",
                    "description": "The asset identifier",
                    "type": "integer"
                  },
                  {
                    "name": "userid",
                    "description": "The user id of the uploader",
                    "type": "integer"
                  },
                  {
                    "name": "datecreated",
                    "description": "The date the asset was created",
                    "type": "date"
                  },
                  {
                    "name": "datemodified",
                    "description": "The date the asset was modified",
                    "type": "date"
                  },
                  {
                    "name": "metadata",
                    "description": "The metadata object",
                    "type": "object",
                    "values": [
                      {
                        "name": "filename",
                        "description": "The asset's original filename",
                        "type": "string"
                      },
                      {
                        "name": "extension",
                        "description": "The asset's extension (e.g. jpg)",
                        "type": "string"
                      },
                      {
                        "name": "mimetype",
                        "description": "The asset's mime type",
                        "type": "string"
                      },
                      {
                        "name": "filesize",
                        "description": "The asset's filesize in bytes",
                        "type": "integer"
                      },
                      {
                        "name": "fullwidth",
                        "description": "The asset's full width in pixels (if an image)",
                        "type": "integer"
                      },
                      {
                        "name": "fullheight",
                        "description": "The asset's full height in pixels (if an image)",
                        "type": "integer"
                      },
                      {
                        "name": "previewwidth",
                        "description": "The asset preview's width",
                        "type": "integer"
                      },
                      {
                        "name": "previewheight",
                        "description": "The asset preview's height",
                        "type": "integer"
                      },
                      {
                        "name": "extensions",
                        "description": "Custom metadata extensions, if any",
                        "type": "object",
                        "values": [
                          {
                            "name": "simpledam",
                            "description": "The default SimpleDAM metadata extension",
                            "type": "object",
                            "values": [
                              {
                                "name": "description",
                                "description": "The asset description",
                                "type": "string"
                              },
                              {
                                "name": "uploader",
                                "description": "The name of the user that uploaded the asset",
                                "type": "string"
                              },
                              {
                                "name": "views",
                                "description": "The number of times the asset has been viewed",
                                "type": "integer"
                              },
                              {
                                "name": "downloads",
                                "description": "The number of times the asset has been downloaded",
                                "type": "integer"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/get/?sessiontoken=xxxx&id=0a57cb53ba59c46fc4b692527a38a87c78d84028",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"assetid\": \"0a57cb53ba59c46fc4b692527a38a87c78d84028\",\r\n    \"metadata\": {\r\n      \"filename\": \"altinay-dinc-LluELtL5mK4-unsplash.jpg\",\r\n      \"extension\": \"jpg\",\r\n      \"mimetype\": \"image\/jpeg\",\r\n      \"filesize\": 156303,\r\n      \"fullwidth\": 1920,\r\n      \"fullheight\": 2880,\r\n      \"previewwidth\": 233,\r\n      \"previewheight\": 350,\r\n      \"extensions\": {\r\n        \"simpledam\": {\r\n          \"description\": \"Dramatic cloudy sky with moon\",\r\n          \"uploader\": \"Example User\",\r\n          \"views\": 5,\r\n          \"downloads\": 0\r\n        }\r\n      }\r\n    },\r\n    \"userid\": 1,\r\n    \"datecreated\": \"2022-10-11 11:58:45\",\r\n    \"datemodified\": \"2022-10-24 15:20:01\"\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/list",
          "description": "Retrieve a list of assets",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: assetid, userid, datecreated, datemodified, default: assetid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: desc)",
                "type": "string",
                "required": false
              },
              {
                "name": "q",
                "description": "A keyword or phrase to filter the results by. Fields searched include asset id, filename, mimetype, extension, description, creation date, and metadata.",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of assets returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "assets",
                    "description": "The list of assets (see /api/asset/get for properties of each asset)",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/list/?sessiontoken=xxxx&start=0&limit=10&sort=datecreated&dir=desc",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 28,\r\n    \"assets\": [\r\n      {\r\n        \"assetid\": \"0a57cb53ba59c46fc4b692527a38a87c78d84028\",\r\n        \"metadata\": {\r\n          \"filename\": \"altinay-dinc-LluELtL5mK4-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 156303,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 2880,\r\n          \"previewwidth\": 233,\r\n          \"previewheight\": 350,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Dramatic cloudy sky with moon\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 6,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-11 11:58:45\",\r\n        \"datemodified\": \"2022-10-24 15:20:01\"\r\n      },\r\n      {\r\n        \"assetid\": \"bc33ea4e26e5e1af1408321416956113a4658763\",\r\n        \"metadata\": {\r\n          \"filename\": \"paul-steuber-rs11hu-bkTc-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 144355,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Nike swoosh on front of a building\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-11 11:55:57\",\r\n        \"datemodified\": \"2022-10-11 11:56:22\"\r\n      },\r\n      {\r\n        \"assetid\": \"887309d048beef83ad3eabf2a79a64a389ab1c9f\",\r\n        \"metadata\": {\r\n          \"filename\": \"sample1.mp3\",\r\n          \"extension\": \"mp3\",\r\n          \"mimetype\": \"audio\/mpeg\",\r\n          \"filesize\": 1954212,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": null,\r\n          \"previewheight\": null,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example MP3 Audio File\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-11 11:54:45\",\r\n        \"datemodified\": \"2022-10-11 11:55:17\"\r\n      },\r\n      {\r\n        \"assetid\": \"f6e1126cedebf23e1463aee73f9df08783640400\",\r\n        \"metadata\": {\r\n          \"filename\": null,\r\n          \"extension\": null,\r\n          \"mimetype\": null,\r\n          \"filesize\": 0,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": null,\r\n          \"previewheight\": null,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example Metadata-Only Asset\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-10 16:06:31\",\r\n        \"datemodified\": \"2022-10-10 16:16:10\"\r\n      },\r\n      {\r\n        \"assetid\": \"4d134bc072212ace2df385dae143139da74ec0ef\",\r\n        \"metadata\": {\r\n          \"filename\": \"example-pdf-file.pdf\",\r\n          \"extension\": \"pdf\",\r\n          \"mimetype\": \"application\/pdf\",\r\n          \"filesize\": 716951,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": 247,\r\n          \"previewheight\": 350,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example PDF File\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-10 13:45:50\",\r\n        \"datemodified\": \"2022-10-11 11:26:42\"\r\n      },\r\n      {\r\n        \"assetid\": \"d435a6cdd786300dff204ee7c2ef942d3e9034e2\",\r\n        \"metadata\": {\r\n          \"filename\": \"example-photoshop-file.psd\",\r\n          \"extension\": \"psd\",\r\n          \"mimetype\": \"image\/vnd.adobe.photoshop\",\r\n          \"filesize\": 140211,\r\n          \"fullwidth\": 842,\r\n          \"fullheight\": 595,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 247,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example Photoshop file\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 17:23:26\",\r\n        \"datemodified\": \"2022-10-11 11:26:59\"\r\n      },\r\n      {\r\n        \"assetid\": \"12c6fc06c99a462375eeb3f43dfd832b08ca9e17\",\r\n        \"metadata\": {\r\n          \"filename\": \"epicurrence-p6mPhlNCfMw-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 586435,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"A retro Volkswagen camper van\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 12:35:54\",\r\n        \"datemodified\": \"2022-10-11 11:27:23\"\r\n      },\r\n      {\r\n        \"assetid\": \"472b07b9fcf2c2451e8781e944bf5f77cd8457c8\",\r\n        \"metadata\": {\r\n          \"filename\": \"bg.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 216386,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1200,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 218,\r\n          \"exif\": [],\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Graphic of a Japanese-inspired landscape\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 12:04:29\",\r\n        \"datemodified\": \"2022-10-11 11:28:25\"\r\n      },\r\n      {\r\n        \"assetid\": \"91032ad7bbcb6cf72875e8e8207dcfba80173f7c\",\r\n        \"metadata\": {\r\n          \"filename\": \"nguyen-dang-hoang-nhu-SjqrtZOd9Uc-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 714647,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 2880,\r\n          \"previewwidth\": 233,\r\n          \"previewheight\": 350,\r\n          \"exif\": [],\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"retro orange telephone\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 03:37:24\",\r\n        \"datemodified\": \"2022-10-11 11:28:53\"\r\n      },\r\n      {\r\n        \"assetid\": \"b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f\",\r\n        \"metadata\": {\r\n          \"filename\": \"philipp-pilz-QZ2EQuPpQJs-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 443146,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 2880,\r\n          \"previewwidth\": 233,\r\n          \"previewheight\": 350,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"A snarling wolf\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 02:18:11\",\r\n        \"datemodified\": \"2022-10-11 11:29:14\"\r\n      },\r\n      {\r\n        \"assetid\": \"9e6a55b6b4563e652a23be9d623ca5055c356940\",\r\n        \"metadata\": {\r\n          \"example\": \"Here's an example metadata node\",\r\n          \"filename\": \"readme.txt\",\r\n          \"extension\": \"txt\",\r\n          \"mimetype\": \"text\/plain\",\r\n          \"filesize\": 3001,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": null,\r\n          \"previewheight\": null,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example plain text file\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 02:15:41\",\r\n        \"datemodified\": \"2022-10-11 11:29:41\"\r\n      },\r\n      {\r\n        \"assetid\": \"0716d9708d321ffb6a00818614779e779925365c\",\r\n        \"metadata\": {\r\n          \"filename\": \"addresses.csv\",\r\n          \"extension\": \"csv\",\r\n          \"mimetype\": \"text\/csv\",\r\n          \"filesize\": 328,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": null,\r\n          \"previewheight\": null,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example plain text CSV File\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 02:11:53\",\r\n        \"datemodified\": \"2022-10-11 11:30:03\"\r\n      },\r\n      {\r\n        \"assetid\": \"1574bddb75c78a6fd2251d61e2993b5146201319\",\r\n        \"metadata\": {\r\n          \"filename\": \"Sample-Spreadsheet.zip\",\r\n          \"extension\": \"zip\",\r\n          \"mimetype\": \"application\/zip\",\r\n          \"filesize\": 351,\r\n          \"fullwidth\": null,\r\n          \"fullheight\": null,\r\n          \"previewwidth\": null,\r\n          \"previewheight\": null,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"Example ZIP File\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-08 02:09:27\",\r\n        \"datemodified\": \"2022-10-11 11:30:44\"\r\n      },\r\n      {\r\n        \"assetid\": \"f1abd670358e036c31296e66b3b66c382ac00812\",\r\n        \"metadata\": {\r\n          \"filename\": \"frank-okay-R1J6Z1cnJZc-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 629253,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"retro TV set on a suburban street at night\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:38:25\",\r\n        \"datemodified\": \"2022-10-11 11:31:05\"\r\n      },\r\n      {\r\n        \"assetid\": \"fa35e192121eabf3dabf9f5ea6abdbcbc107ac3b\",\r\n        \"metadata\": {\r\n          \"filename\": \"sheraz-shaikh-Zx3kcU2Kw9E-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 365968,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"sliced oranges\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:33:02\",\r\n        \"datemodified\": \"2022-10-11 11:31:26\"\r\n      },\r\n      {\r\n        \"assetid\": \"bd307a3ec329e10a2cff8fb87480823da114f8f4\",\r\n        \"metadata\": {\r\n          \"filename\": \"boris-smokrovic-lyvCvA8sKGc-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 268161,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"butterfly on an orange flower\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:30:16\",\r\n        \"datemodified\": \"2022-10-20 18:04:25\"\r\n      },\r\n      {\r\n        \"assetid\": \"7b52009b64fd0a2a49e6d8a939753077792b0554\",\r\n        \"metadata\": {\r\n          \"filename\": \"hakon-sataoen-yQ9mZzBdDAM-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 278503,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1207,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 220,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"orange sports car against a stormy sky\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:29:52\",\r\n        \"datemodified\": \"2022-10-11 11:32:26\"\r\n      },\r\n      {\r\n        \"assetid\": \"17ba0791499db908433b80f37c5fbc89b870084b\",\r\n        \"metadata\": {\r\n          \"filename\": \"tim-mossholder-KsdgjODuJQE-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 323380,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"dog looking out of an orange car window\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:29:21\",\r\n        \"datemodified\": \"2022-10-11 11:32:50\"\r\n      },\r\n      {\r\n        \"assetid\": \"b1d5781111d84f7b3fe45a0852e59758cd7a87e5\",\r\n        \"metadata\": {\r\n          \"filename\": \"oli-woodman-yM2Uo_1xZ3I-unsplash.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 381335,\r\n          \"fullwidth\": 1920,\r\n          \"fullheight\": 1280,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 233,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"An orange retro Porsche car\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 0,\r\n              \"downloads\": 0\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:28:49\",\r\n        \"datemodified\": \"2022-10-11 11:33:09\"\r\n      },\r\n      {\r\n        \"assetid\": \"0ade7c2cf97f75d009975f4d720d1fa6c19f4897\",\r\n        \"metadata\": {\r\n          \"filename\": \"IMG_1150.jpg\",\r\n          \"extension\": \"jpg\",\r\n          \"mimetype\": \"image\/jpeg\",\r\n          \"filesize\": 1797157,\r\n          \"fullwidth\": 2592,\r\n          \"fullheight\": 1944,\r\n          \"previewwidth\": 350,\r\n          \"previewheight\": 262,\r\n          \"extensions\": {\r\n            \"simpledam\": {\r\n              \"description\": \"London Bridge street sign\",\r\n              \"uploader\": \"Example User\",\r\n              \"views\": 2,\r\n              \"downloads\": 1\r\n            },\r\n            \"exif\": {\r\n              \"IFD0\": {\r\n                \"Make\": \"Canon\",\r\n                \"Model\": \"Canon DIGITAL IXUS 500\",\r\n                \"Orientation\": 1,\r\n                \"XResolution\": \"180\/1\",\r\n                \"YResolution\": \"180\/1\",\r\n                \"ResolutionUnit\": 2,\r\n                \"DateTime\": \"2007:04:06 16:59:01\",\r\n                \"YCbCrPositioning\": 1,\r\n                \"Exif_IFD_Pointer\": 196\r\n              },\r\n              \"EXIF\": {\r\n                \"ExposureTime\": \"1\/500\",\r\n                \"FNumber\": \"28\/10\",\r\n                \"ExifVersion\": \"0220\",\r\n                \"DateTimeOriginal\": \"2007:04:06 16:59:01\",\r\n                \"DateTimeDigitized\": \"2007:04:06 16:59:01\",\r\n                \"ComponentsConfiguration\": \"\\\\u0001\\\\u0002\\\\u0003\",\r\n                \"CompressedBitsPerPixel\": \"3\/1\",\r\n                \"ShutterSpeedValue\": \"287\/32\",\r\n                \"ApertureValue\": \"95\/32\",\r\n                \"ExposureBiasValue\": \"0\/3\",\r\n                \"MaxApertureValue\": \"95\/32\",\r\n                \"MeteringMode\": 5,\r\n                \"Flash\": 24,\r\n                \"FocalLength\": \"237\/32\",\r\n                \"MakerNote\": \"\\\\u0011\",\r\n                \"UserComment\": \"\",\r\n                \"FlashPixVersion\": \"0100\",\r\n                \"ColorSpace\": 1,\r\n                \"ExifImageWidth\": 2592,\r\n                \"ExifImageLength\": 1944,\r\n                \"InteroperabilityOffset\": 1860,\r\n                \"FocalPlaneXResolution\": \"2592000\/283\",\r\n                \"FocalPlaneYResolution\": \"1944000\/212\",\r\n                \"FocalPlaneResolutionUnit\": 2,\r\n                \"SensingMethod\": 2,\r\n                \"FileSource\": \"\\\\u0003\",\r\n                \"CustomRendered\": 0,\r\n                \"ExposureMode\": 0,\r\n                \"WhiteBalance\": 0,\r\n                \"DigitalZoomRatio\": \"2592\/2592\",\r\n                \"SceneCaptureType\": 0\r\n              }\r\n            }\r\n          }\r\n        },\r\n        \"userid\": 1,\r\n        \"datecreated\": \"2022-10-07 07:11:28\",\r\n        \"datemodified\": \"2022-10-27 10:21:55\"\r\n      }\r\n    ]\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/thumbnail",
          "description": "Return a thumbnail image (JPEG) for any given asset",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The ID of the asset to retrieve a thumbnail for",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "thumbnail",
                "description": "A JPEG image (if a preview is available)",
                "type": "binary"
              }
            ]
          },
          "example": "/api/asset/thumbnail/?sessiontoken=xxxx&id=0a57cb53ba59c46fc4b692527a38a87c78d84028",
          "exampleresponse": "Returns binary image data with image/jpeg mimetype"
        },
        {
          "call": "/api/asset/preview",
          "description": "Return a preview image (JPEG) for any given asset",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The ID of the asset to get a preview for",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "preview",
                "description": "A JPEG image (if available)",
                "type": "binary"
              }
            ]
          },
          "example": "/api/asset/preview/?sessiontoken=xxxx&id=0a57cb53ba59c46fc4b692527a38a87c78d84028",
          "exampleresponse": "Returns binary image data with image/jpeg mimetype"
        },
        {
          "call": "/api/asset/embed",
          "description": "Attempt to stream/embed an asset for display in a browser or app (using its mime type)",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique ID of the asset",

                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The asset's binary data and mime type",
                "type": "binary"
              }
            ]
          },
          "example": "/api/asset/embed/?sessiontoken=xxxx&id=0a57cb53ba59c46fc4b692527a38a87c78d84028",
          "exampleresponse": "Returns binary asset data with stored mimetype"
        },
        {
          "call": "/api/asset/download",
          "description": "Download an asset",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique asset identifier",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "file",
                "description": "If successful, a download file is delivered",
                "type": "file"
              }
            ]
          },
          "example": "/api/asset/download/?sessiontoken=xxxx&id=0a57cb53ba59c46fc4b692527a38a87c78d84028",
          "exampleresponse": "Returns the binary data with a download prompt"
        },
        {
          "call": "/api/asset/add",
          "description": "Creates a metadata-only asset with no binary data (i.e. no file). This requires an administrator account.",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "metadata",
                "description": "A well-formed JSON object containing arbitrary data. The SimpleDAM extension is automatically appended.",
                "type": "json",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "assetid",
                    "description": "The unique identifier of the new asset",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/add/?sessiontoken=xxxx&metadata={\"valid\":\"json\"}",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"assetid\": \"cb4e5208b4cd87268b208e49452ed6e89a68e0b8\"\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/upload",
          "description": "Creates a new asset using either a file upload or a valid file URL. This requires an administrator account.",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "metadata",
                "description": "A well-formed JSON object containing arbitrary data. The SimpleDAM extension is automatically appended.",
                "type": "json",
                "required": false
              },
              {
                "name": "file",
                "description": "A file of supported type (if not provided, a URL is required)",
                "type": "binary",
                "required": false
              },
              {
                "name": "url",
                "description": "A valid URL pointing to a file (if not provided, a file is required)",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "assetid",
                    "description": "The unique identifier of the new asset",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/upload/?sessiontoken=xxxx&url=[valid-url-of-file]&metadata={\"valid\":\"json\"}",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"assetid\": \"cb4e5208b4cd87268b208e49452ed6e89a68e0b8\"\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/update",
          "description": "Updates an existing asset. If adding or replacing a file, an upload or valid file URL can be provided. This requires an administrator account.",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique id of the asset to be updated",
                "type": "integer",
                "required": true
              },
              {
                "name": "metadata",
                "description": "A well-formed JSON object containing arbitrary data. The SimpleDAM extension is automatically appended.",
                "type": "json",
                "required": false
              },
              {
                "name": "file",
                "description": "A file of supported type",
                "type": "binary",
                "required": false
              },
              {
                "name": "url",
                "description": "A valid URL pointing to a file",
                "type": "string",
                "required": false
              },
              {
                "name": "merge",
                "description": "If present, the posted metadata is merged with the existing metadata",
                "type": "boolean",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "assetid",
                    "description": "The unique id of the updated asset",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/update/?sessiontoken=xxxx&id=cb4e5208b4cd87268b208e49452ed6e89a68e0b8&file=[binary-data]&metadata={\"valid\":\"json\"}",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"assetid\": \"cb4e5208b4cd87268b208e49452ed6e89a68e0b8\"\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/delete",
          "description": "Delete an existing asset. This requires an administrator account.",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique id of the asset to be deleted",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "assetid",
                    "description": "The unique identifier of the deleted asset",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/delete/?sessiontoken=xxxx&id=cb4e5208b4cd87268b208e49452ed6e89a68e0b8",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"assetid\": \"cb4e5208b4cd87268b208e49452ed6e89a68e0b8\"\r\n  }\r\n}"
        },
        {
          "call": "/api/asset/import",
          "description": "Imports assets from the local watch folder. This can be specified in the API settings file.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "source",
                "description": "The source of the files to import (default: local)",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of imports discovered",
                    "type": "integer"
                  },
                  {
                    "name": "numimported",
                    "description": "The number of successful imports",
                    "type": "integer"
                  },
                  {
                    "name": "numfailed",
                    "description": "The number of failed imports",
                    "type": "integer"
                  },
                  {
                    "name": "imported",
                    "description": "The list of assets imported",
                    "type": "array"
                  },
                  {
                    "name": "failed",
                    "description": "The list of failed assets",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/asset/import/?sessiontoken=xxxx&source=local",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 10,\r\n    \"numimported\": 10,\r\n    \"numfailed\": 0,\r\n    \"imported\": [\r\n      {\r\n        \"assetid\": 123,\r\n        \"key\": \"value\",\r\n        \"foo\": \"bar\"\r\n      },\r\n      {\r\n        \"assetid\": 124,\r\n        \"key\": \"value\",\r\n        \"foo\": \"bar\"\r\n      },\r\n      {\r\n        \"assetid\": 125,\r\n        \"key\": \"value\",\r\n        \"foo\": \"bar\"\r\n      }\r\n    ],\r\n    \"failed\": []\r\n  }\r\n}"
        }
      ]
    },
    {
      "type": "user",
      "calls": [
        {
          "call": "/api/user/login",
          "description": "Logs a user in",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "email",
                "description": "The user's email address",
                "type": "string",
                "required": true
              },
              {
                "name": "password",
                "description": "The user's password",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "user",
                    "description": "The user object",
                    "type": "object",
                    "values": [
                      {
                        "name": "userid",
                        "description": "The user id",
                        "type": "string"
                      },
                      {
                        "name": "firstname",
                        "description": "The user's first name",
                        "type": "string"
                      },
                      {
                        "name": "lastname",
                        "description": "The user's last name",
                        "type": "string"
                      },
                      {
                        "name": "userroleid",
                        "description": "The user's role (1: normal, 2: admin)",
                        "type": "integer"
                      }
                    ]
                  },
                  {
                    "name": "session",
                    "description": "The session object",
                    "type": "object",
                    "values": [
                      {
                        "name": "sessiontoken",
                        "description": "The session token to use for subsequent API calls",
                        "type": "string"
                      },
                      {
                        "name": "sessiontimestamp",
                        "description": "The unix timestamp of the session token",
                        "type": "string"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "example": "/api/user/login/?email=xxxx&password=xxxx",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"user\": {\r\n      \"userid\": 3,\r\n      \"firstname\": \"Example\",\r\n      \"lastname\": \"User\",\r\n      \"userroleid\": 1\r\n    },\r\n    \"session\": {\r\n      \"sessiontoken\": \"9974-5539-6b0f-400d-acb8-ee84-2eb9-fc87\",\r\n      \"sessiontimestamp\": 1666826692\r\n    }\r\n  }\r\n}"
        },
        {
          "call": "/api/user/logout",
          "description": "Logs a user out",
          "simpledam_compatibility_level": 0,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              }
            ]
          },
          "example": "/api/user/logout/?sessiontoken=xxxx",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\"\r\n}"
        },
        {
          "call": "/api/user/checksession",
          "description": "Checks whether a session token is valid, and if so, returns its details",
          "simpledam_compatibility_level": 0,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "sessionid",
                    "description": "The session token's unique identifier",
                    "type": "integer"
                  },
				  {
                    "name": "userid",
                    "description": "The user's id",
                    "type": "string"
                  },
                  {
                    "name": "sessiontoken",
                    "description": "The session token itself - used for API calls",
                    "type": "string"
                  },
                  {
                    "name": "sessiontimestamp",
                    "description": "The session token's unix timestamp",
                    "type": "string"
                  },
                  {
                    "name": "firstname",
                    "description": "The user's first name",
                    "type": "string"
                  },
                  {
                    "name": "lastname",
                    "description": "The user's last name",
                    "type": "string"
                  },
                  {
                    "name": "userroleid",
                    "description": "The user's role type id (1: normal, 2: admin)",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/checksession/?sessiontoken=09f2-927e-bdec-4cba-a45e-694f-6e52-026b",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"sessionid\": 20,\r\n    \"userid\": 3,\r\n    \"sessiontoken\": \"09f2-927e-bdec-4cba-a45e-694f-6e52-026b\",\r\n    \"sessiontimestamp\": 1666826795,\r\n    \"firstname\": \"Example\",\r\n    \"lastname\": \"User\",\r\n    \"userroleid\": 1\r\n  }\r\n}"
        },
        {
          "call": "/api/user/get",
          "description": "Get a single user's details. This requires an administrator account if requesting a different user.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique ID of the user to be retrieved",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userid",
                    "description": "The user's unique identifier",
                    "type": "integer"
                  },
                  {
                    "name": "firstname",
                    "description": "The user's first name",
                    "type": "string"
                  },
                  {
                    "name": "lastname",
                    "description": "The user's last name",
                    "type": "string"
                  },
                  {
                    "name": "email",
                    "description": "The user's registered email address",
                    "type": "string"
                  },
                  {
                    "name": "userroleid",
                    "description": "The user's role type id (1: normal, 2: admin)",
                    "type": "integer"
                  },
                  {
                    "name": "lastlogindate",
                    "description": "The the date the user last logged in",
                    "type": "date"
                  },
                  {
                    "name": "datecreated",
                    "description": "The date the user was created",
                    "type": "date"
                  },
                  {
                    "name": "datemodified ",
                    "description": "The date the user was last updated",
                    "type": "date"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/get/?sessiontoken=xxxx&id=1",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userid\": 1,\r\n    \"firstname\": \"Example\",\r\n    \"lastname\": \"User\",\r\n    \"email\": \"mail@example.com\",\r\n    \"userroleid\": 1,\r\n    \"lastlogindate\": \"2022-08-12 11:39:20\",\r\n    \"datecreated\": \"2018-11-02 13:45:27\",\r\n    \"datemodified\": \"2022-10-24 12:37:35\"\r\n  }\r\n}"
        },
        {
          "call": "/api/user/list",
          "description": "Retrieve a list of users. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: userid, firstname, lastname, email, lastlogindate, datecreated, datemodified, userroleid, userrolename, default: userid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: asc)",
                "type": "string",
                "required": false
              },
              {
                "name": "r",
                "description": "A user role id to filter the results by",
                "type": "string",
                "required": false
              },
              {
                "name": "q",
                "description": "A keyword or phrase to filter the results by",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of users returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "users",
                    "description": "The list of users (see /api/user/get for properties of each user)",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/list/?sessiontoken=xxxx&start=10&limit=10&sort=lastname&dir=asc",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 3,\r\n    \"users\": [\r\n      {\r\n        \"userid\": 1,\r\n        \"firstname\": \"Joe\",\r\n        \"lastname\": \"Bloggs\",\r\n        \"email\": \"bloggs@example.com\",\r\n        \"userroleid\": 2,\r\n        \"userrolename\": \"Administrator\",\r\n        \"lastlogindate\": \"2022-08-12 11:39:20\",\r\n        \"datecreated\": \"2018-11-02 13:45:27\",\r\n        \"datemodified\": \"2022-10-24 12:37:35\"\r\n      },\r\n      {\r\n        \"userid\": 2,\r\n        \"firstname\": \"Mary\",\r\n        \"lastname\": \"Jane\",\r\n        \"email\": \"mary@example.com\",\r\n        \"userroleid\": 2,\r\n        \"userrolename\": \"Administrator\",\r\n        \"lastlogindate\": \"2022-08-10 12:11:47\",\r\n        \"datecreated\": \"2018-11-02 13:45:27\",\r\n        \"datemodified\": \"2022-10-19 13:31:53\"\r\n      },\r\n      {\r\n        \"userid\": 3,\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\",\r\n        \"email\": \"mail@example.com\",\r\n        \"userroleid\": 1,\r\n        \"userrolename\": \"Normal\",\r\n        \"lastlogindate\": null,\r\n        \"datecreated\": \"2022-08-15 15:18:05\",\r\n        \"datemodified\": \"2022-08-15 15:18:05\"\r\n      }\r\n    ]\r\n  }\r\n}"
        },
        {
          "call": "/api/user/add",
          "description": "Create a new user. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "firstname",
                "description": "The first name of the new user",
                "type": "string",
                "required": true
              },
              {
                "name": "lastname",
                "description": "The last name of the new user",
                "type": "string",
                "required": true
              },
              {
                "name": "email",
                "description": "A valid email address for the user",
                "type": "string",
                "required": true
              },
              {
                "name": "userroleid",
                "description": "The role type of the new user (1: normal, 2: admin)",
                "type": "integer",
                "required": true
              },
              {
                "name": "password",
                "description": "A strong password",
                "type": "string",
                "required": true
              },
              {
                "name": "password2",
                "description": "Confirmation of the password",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userid",
                    "description": "The unique identifier of the new user",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/add/?sessiontoken=xxxx&firstname=Joe&lastname=Bloggs&email=bloggs@example.com&userroleid=1&password=xxxx&password2=xxxx",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userid\": \"4\"\r\n  }\r\n}"
        },
        {
          "call": "/api/user/update",
          "description": "Update an existing user. This requires an administrator account if updating a different user.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The user's unique identifier",
                "type": "integer",
                "required": true
              },
              {
                "name": "firstname",
                "description": "The first name of the existing user",
                "type": "string",
                "required": false
              },
              {
                "name": "lastname",
                "description": "The last name of the existing user",
                "type": "string",
                "required": false
              },
              {
                "name": "email",
                "description": "A valid email address for the user",
                "type": "string",
                "required": false
              },
              {
                "name": "userroleid",
                "description": "The role type of the new user (1: normal, 2: admin)",
                "type": "integer",
                "required": false
              },
              {
                "name": "password",
                "description": "A unique password (only required if changing)",
                "type": "string",
                "required": false
              },
              {
                "name": "password2",
                "description": "Confirmation of the password (only required if changing)",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userid",
                    "description": "The unique identifier of the updated user",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/update/?sessiontoken=xxxx&id=123&firstname=Joanne",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userid\": \"4\"\r\n  }\r\n}"
        },
        {
          "call": "/api/user/delete",
          "description": "Delete an existing user. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique id of the user to be deleted",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userid",
                    "description": "The unique identifier of the deleted user",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/user/delete/?sessiontoken=xxxx&id=123",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userid\": \"4\"\r\n  }\r\n}"
        }
      ]
    },
    {
      "type": "user role",
      "calls": [
        {
          "call": "/api/userrole/get",
          "description": "Get a specific user role. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique ID of the user role to be retrieved",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userroleid",
                    "description": "The user role's unique identifier",
                    "type": "integer"
                  },
                  {
                    "name": "userrolename",
                    "description": "The user role's name",
                    "type": "string"
                  }
                ]
              }
            ]
          },
          "example": "/api/userrole/get/?sessiontoken=xxxx&id=1",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userroleid\": 1,\r\n    \"userrolename\": \"Normal\"\r\n  }\r\n}"
        },
        {
          "call": "/api/userrole/list",
          "description": "Retrieve a list of user roles. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: userroleid, userrolename, default: userroleid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: asc)",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of user roles returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "userroles",
                    "description": "The list of user roles (see /api/userrole/get for properties of each user role)",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/userrole/list/?sessiontoken=xxxx&start=0&limit=10&sort=userrolename&dir=asc",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 2,\r\n    \"userroles\": [\r\n      {\r\n        \"userroleid\": 2,\r\n        \"userrolename\": \"Administrator\"\r\n      },\r\n      {\r\n        \"userroleid\": 1,\r\n        \"userrolename\": \"Normal\"\r\n      }\r\n    ]\r\n  }\r\n}"
        },
        {
          "call": "/api/userrole/add",
          "description": "Create a new user role. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "userrolename",
                "description": "The name of the new user role",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userroleid",
                    "description": "The unique identifier of the new user role",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/userrole/add/?sessiontoken=xxxx&userrolename=Super+Administrator",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userroleid\": \"3\"\r\n  }\r\n}"
        },
        {
          "call": "/api/userrole/update",
          "description": "Update an existing user role. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The user role's unique identifier",
                "type": "integer",
                "required": true
              },
              {
                "name": "userrolename",
                "description": "The new name for the existing user role",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userroleid",
                    "description": "The unique identifier of the updated user role",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/userrole/update/?sessiontoken=xxxx&id=2&userrolename=New+Role+Name",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userroleid\": \"2\"\r\n  }\r\n}"
        },
        {
          "call": "/api/userrole/delete",
          "description": "Delete an existing user role. This requires an administrator account. Warning: existing users must first be updated to a new role if they are assigned a role that is to be deleted!",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique id of the user role to be deleted",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "userroleid",
                    "description": "The unique identifier of the deleted user role",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/userrole/delete/?sessiontoken=xxxx&id=3",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"userroleid\": \"3\"\r\n  }\r\n}"
        }
      ]
    },
    {
      "type": "event",
      "calls": [
        {
          "call": "/api/event/get",
          "description": "Get a specific event. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique ID of the event to be retrieved",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "eventid",
                    "description": "The event's unique identifier",
                    "type": "integer"
                  },
                  {
                    "name": "eventtypeid",
                    "description": "The type of the event",
                    "type": "integer"
                  },
                  {
                    "name": "eventtypename",
                    "description": "The name of the event",
                    "type": "string"
                  },
                  {
                    "name": "userid",
                    "description": "The id of the event's calling user",
                    "type": "integer"
                  },
                  {
                    "name": "assetid",
                    "description": "The unique of an asset, if the event relates to one",
                    "type": "integer"
                  },
                  {
                    "name": "eventip",
                    "description": "The IP address of the calling computer/device",
                    "type": "string"
                  },
                  {
                    "name": "eventdetails",
                    "description": "The details of the event",
                    "type": "string"
                  },
                  {
                    "name": "apiurl",
                    "description": "The API entry point URL for this call",
                    "type": "string"
                  },
                  {
                    "name": "apimethod",
                    "description": "The request type of the event (GET/POST)",
                    "type": "string"
                  },
                  {
                    "name": "eventdate",
                    "description": "The date of the event",
                    "type": "date"
                  }
                ]
              }
            ]
          },
          "example": "/api/event/get/?sessiontoken=xxxx&id=12",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"eventid\": 12,\r\n    \"eventtypeid\": 8,\r\n    \"eventtypename\": \"list assets\",\r\n    \"userid\": 1,\r\n    \"assetid\": null,\r\n    \"eventip\": \"127.0.0.1\",\r\n    \"eventdetails\": \"Example User listed assets\",\r\n    \"apiurl\": \"\/api\/asset\/list\/?start=0&limit=20&sort=assetid&dir=desc&q=\",\r\n    \"apimethod\": \"GET\",\r\n    \"eventdate\": \"2022-10-24 18:25:33\"\r\n  }\r\n}"
        },
        {
          "call": "/api/event/list",
          "description": "Retrieve a list of events. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: eventid, eventtypeid, eventtypename, eventip, userid, userroleid, apimethod, eventdate, firstname, lastname, default: eventid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: desc)",
                "type": "string",
                "required": false
              },
              {
                "name": "t",
                "description": "An event type id to filter events by",
                "type": "integer",
                "required": false
              },
              {
                "name": "q",
                "description": "A keyword to filter events by",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of events returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "events",
                    "description": "The list of events (see /api/event/get for properties of each event)",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/event/list/?sessiontoken=xxxx&start=11&limit=10&sort=eventid&dir=desc",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 153,\r\n    \"events\": [\r\n      {\r\n        \"eventid\": 142,\r\n        \"eventtypeid\": 2,\r\n        \"eventtypename\": \"log out\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged out\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/logout\\\\\/?\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:27:23\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 141,\r\n        \"eventtypeid\": 8,\r\n        \"eventtypename\": \"list assets\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User listed assets\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/asset\\\\\/list\\\\\/?start=0&limit=20&sort=assetid&dir=desc&q=\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:27:17\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 140,\r\n        \"eventtypeid\": 8,\r\n        \"eventtypename\": \"list assets\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User listed assets\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/asset\\\\\/list\\\\\/?start=0&limit=20&sort=assetid&dir=desc&q=\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:26:36\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 139,\r\n        \"eventtypeid\": 1,\r\n        \"eventtypename\": \"log in\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged in\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/login\\\\\/\",\r\n        \"apimethod\": \"POST\",\r\n        \"eventdate\": \"2022-10-27 00:26:31\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 138,\r\n        \"eventtypeid\": 1,\r\n        \"eventtypename\": \"log in\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged in\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/login\\\\\/\",\r\n        \"apimethod\": \"POST\",\r\n        \"eventdate\": \"2022-10-27 00:24:52\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 137,\r\n        \"eventtypeid\": 2,\r\n        \"eventtypename\": \"log out\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged out\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/logout\\\\\/?\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:24:44\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 136,\r\n        \"eventtypeid\": 8,\r\n        \"eventtypename\": \"list assets\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User listed assets\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/asset\\\\\/list\\\\\/?start=0&limit=20&sort=assetid&dir=desc&q=\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:22:58\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 135,\r\n        \"eventtypeid\": 1,\r\n        \"eventtypename\": \"log in\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged in\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/login\\\\\/\",\r\n        \"apimethod\": \"POST\",\r\n        \"eventdate\": \"2022-10-27 00:22:57\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 134,\r\n        \"eventtypeid\": 2,\r\n        \"eventtypename\": \"log out\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User logged out\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/user\\\\\/logout\\\\\/?\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:22:50\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      },\r\n      {\r\n        \"eventid\": 133,\r\n        \"eventtypeid\": 8,\r\n        \"eventtypename\": \"list assets\",\r\n        \"userid\": 3,\r\n        \"assetid\": null,\r\n        \"eventip\": \"10.0.2.2\",\r\n        \"eventdetails\": \"Example User listed assets\",\r\n        \"apiurl\": \"\\\\\/api\\\\\/asset\\\\\/list\\\\\/?start=0&limit=20&sort=assetid&dir=desc&q=\",\r\n        \"apimethod\": \"GET\",\r\n        \"eventdate\": \"2022-10-27 00:21:45\",\r\n        \"firstname\": \"Example\",\r\n        \"lastname\": \"User\"\r\n      }\r\n    ]\r\n  }\r\n}"
        }
      ]
    },
    {
      "type": "event type",
      "calls": [
        {
          "call": "/api/eventtype/get",
          "description": "Get a specific event type. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique ID of the event type to be retrieved",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "eventtypeid",
                    "description": "The event type's unique identifier",
                    "type": "integer"
                  },
                  {
                    "name": "eventtypename",
                    "description": "The event type's name",
                    "type": "string"
                  }
                ]
              }
            ]
          },
          "example": "/api/eventtype/get/?sessiontoken=xxxx&id=1",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"eventtypeid\": 9,\r\n    \"eventtypename\": \"download asset\"\r\n  }\r\n}"
        },
        {
          "call": "/api/eventtype/list",
          "description": "Retrieve a list of event types. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: eventtypeid, eventtypename, default: eventtypeid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: asc)",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of event types returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "eventtypes",
                    "description": "The list of event types (see /api/eventtype/get for properties of each event type)",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/eventtype/list/?sessiontoken=xxxx&start=0&limit=10&sort=eventtypeid&dir=asc",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 24,\r\n    \"eventtypes\": [\r\n      {\r\n        \"eventtypeid\": 1,\r\n        \"eventtypename\": \"log in\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 2,\r\n        \"eventtypename\": \"log out\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 3,\r\n        \"eventtypename\": \"get user\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 4,\r\n        \"eventtypename\": \"list users\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 5,\r\n        \"eventtypename\": \"add user\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 6,\r\n        \"eventtypename\": \"update user\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 7,\r\n        \"eventtypename\": \"get asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 8,\r\n        \"eventtypename\": \"list assets\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 9,\r\n        \"eventtypename\": \"download asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 10,\r\n        \"eventtypename\": \"export asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 11,\r\n        \"eventtypename\": \"import asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 12,\r\n        \"eventtypename\": \"add asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 13,\r\n        \"eventtypename\": \"add user role\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 14,\r\n        \"eventtypename\": \"update user role\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 15,\r\n        \"eventtypename\": \"upload asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 16,\r\n        \"eventtypename\": \"update asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 17,\r\n        \"eventtypename\": \"delete asset\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 18,\r\n        \"eventtypename\": \"delete user\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 19,\r\n        \"eventtypename\": \"delete user role\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 20,\r\n        \"eventtypename\": \"get event type\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 21,\r\n        \"eventtypename\": \"list event types\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 22,\r\n        \"eventtypename\": \"add event type\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 23,\r\n        \"eventtypename\": \"update event type\"\r\n      },\r\n      {\r\n        \"eventtypeid\": 24,\r\n        \"eventtypename\": \"delete event type\"\r\n      }\r\n    ]\r\n  }\r\n}"
        },
        {
          "call": "/api/eventtype/add",
          "description": "Create a new event type. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "eventtypename",
                "description": "The name of the new event type",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "eventtypeid",
                    "description": "The unique identifier of the new event type",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/eventtype/add/?sessiontoken=xxxx&eventtypename=new+event+type+name",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"eventtypeid\": \"12\"\r\n  }\r\n}"

        },
        {
          "call": "/api/eventtype/update",
          "description": "Update an existing event type. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The event type's unique identifier",
                "type": "integer",
                "required": true
              },
              {
                "name": "eventtypename",
                "description": "The new name for the existing event type",
                "type": "string",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "eventtypeid",
                    "description": "The unique identifier of the updated event type",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/eventtype/update/?sessiontoken=xxxx&id=12&eventtypename=updated+event+type+name",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"eventtypeid\": \"12\"\r\n  }\r\n}"
        },
        {
          "call": "/api/eventtype/delete",
          "description": "Delete an existing event type. This requires an administrator account. Warning: existing events must first be updated to a new type if they are assigned an event type that is to be deleted!",
          "simpledam_compatibility_level": 1,
          "method": "POST",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "id",
                "description": "The unique id of the event type to be deleted",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "eventtypeid",
                    "description": "The unique identifier of the deleted event type",
                    "type": "integer"
                  }
                ]
              }
            ]
          },
          "example": "/api/eventtype/delete/?sessiontoken=xxxx&id=12",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"eventtypeid\": \"12\"\r\n  }\r\n}"
        }
      ]
    },
	{
      "type": "plugin",
      "calls": [
        {
          "call": "/api/plugin/get",
          "description": "Get a specific plugin. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "shortname",
                "description": "The unique shortname of the plugin to be retrieved",
                "type": "integer",
                "required": true
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "name",
                    "description": "The plugin's name",
                    "type": "integer"
                  },
				  {
                    "name": "shortname",
                    "description": "The plugin's unique string identifier",
                    "type": "integer"
                  },
                  {
                    "name": "description",
                    "description": "A short description of the plugin",
                    "type": "string"
                  },
				  {
                    "name": "classname",
                    "description": "The name of the plugin's primary class",
                    "type": "string"
                  },
                  {
                    "name": "author",
                    "description": "The plugin's author",
                    "type": "string"
                  }
                ]
              }
            ]
          },
          "example": "/api/plugins/get/?sessiontoken=xxxx&shortname=1",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"name\": \"My Example Plugin\",\r\n    \"shortname\": \"example\",\r\n    \"author\": \"Admin User\"\r\n  }\r\n}"
        },
        {
          "call": "/api/plugin/list",
          "description": "Retrieve a list of plugins. This requires an administrator account.",
          "simpledam_compatibility_level": 1,
          "method": "GET",
          "parameters": {
            "request": [
              {
                "name": "sessiontoken",
                "description": "A valid session token",
                "type": "string",
                "required": true
              },
              {
                "name": "start",
                "description": "Record to start from (default: 0)",
                "type": "integer",
                "required": false
              },
              {
                "name": "limit",
                "description": "Number of records to retrieve (default: 20)",
                "type": "integer",
                "required": false
              },
              {
                "name": "sort",
                "description": "The field to sort on (possible values: userroleid, userrolename, default: userroleid)",
                "type": "string",
                "required": false
              },
              {
                "name": "dir",
                "description": "The direction of sorting (possible values: asc or desc, default: asc)",
                "type": "string",
                "required": false
              }
            ],
            "response": [
              {
                "name": "error",
                "description": "An error code, or 0 if none",
                "type": "integer"
              },
              {
                "name": "description",
                "description": "Description of the error, or 'success' if none",
                "type": "string"
              },
              {
                "name": "data",
                "description": "The returned data object",
                "type": "object",
                "values": [
                  {
                    "name": "total",
                    "description": "The total number of plugins returned by the call",
                    "type": "integer"
                  },
                  {
                    "name": "plugins",
                    "description": "The list of plugins",
                    "type": "array"
                  }
                ]
              }
            ]
          },
          "example": "/api/plugin/list/?sessiontoken=xxxx",
          "exampleresponse": "{\r\n  \"error\": 0,\r\n  \"description\": \"success\",\r\n  \"data\": {\r\n    \"total\": 2,\r\n    \"plugins\": [\r\n      {\r\n        \"userroleid\": 2,\r\n        \"userrolename\": \"Administrator\"\r\n      },\r\n      {\r\n        \"userroleid\": 1,\r\n        \"userrolename\": \"Normal\"\r\n      }\r\n    ]\r\n  }\r\n}"
        }
      ]
    }
  ]
}