watchful.li icon

watchful.li

Connect to watchful.li with 1 MCP tools for AI-powered API automation.

COMMUNITYNO AUTH0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "watchful.li",
  "basePath": "/api/v1",
  "info": {
    "title": "watchful.li",
    "version": "1.0.0",
    "x-apisguru-categories": [
      "hosting"
    ],
    "x-logo": {
      "backgroundColor": "#1B4E65",
      "url": "https://api.apis.guru/v2/cache/logo/https_d2071nnd6m4201.cloudfront.net_templates_balloon_images_logo.svg"
    },
    "x-origin": [
      {
        "converter": {
          "url": "https://github.com/lucybot/api-spec-converter",
          "version": "2.7.31"
        },
        "format": "swagger",
        "url": "hhttps://app.watchful.net/api/v1/api-docs/",
        "version": "1.2"
      }
    ],
    "x-providerName": "watchful.li"
  },
  "externalDocs": {
    "url": "https://watchful.li/faqs/tools/watchful-rest-api.html"
  },
  "tags": [
    {
      "description": "Operations about audits",
      "name": "audits"
    },
    {
      "description": "Operations about extensions",
      "name": "extensions"
    },
    {
      "description": "Operations about feedbacks",
      "name": "feedbacks"
    },
    {
      "description": "Operations about logs",
      "name": "logs"
    },
    {
      "description": "Create reports in PDF",
      "name": "reports"
    },
    {
      "description": "Operations about sites",
      "name": "sites"
    },
    {
      "description": "Operations about SsoUser",
      "name": "ssousers"
    },
    {
      "description": "Operations about tags",
      "name": "tags"
    }
  ],
  "paths": {
    "/audits": {
      "get": {
        "description": "Returns a list of audits",
        "operationId": "getAudits",
        "parameters": [
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Audit"
            }
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get a list of audits",
        "tags": [
          "audits"
        ]
      }
    },
    "/audits/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "operationId": "getFieldsAudits",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "audits"
        ]
      }
    },
    "/audits/{id}": {
      "delete": {
        "description": "Delete a specific audit",
        "operationId": "deleteAuditById",
        "parameters": [
          {
            "description": "ID of audit that needs to be deleted",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Audit correctly deleted",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete a specific audit",
        "tags": [
          "audits"
        ]
      },
      "get": {
        "description": "Returns a audit based on ID",
        "operationId": "getAuditById",
        "parameters": [
          {
            "description": "ID of audit that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Audit"
            }
          },
          "400": {
            "description": "Invalid ID"
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Find audit by ID",
        "tags": [
          "audits"
        ]
      }
    },
    "/extensions": {
      "get": {
        "description": "Returns a list Extensions",
        "operationId": "getExtensions",
        "parameters": [
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "ext_name",
            "required": false,
            "type": "string"
          },
          {
            "description": "List of sites id separated by comma",
            "in": "query",
            "name": "siteids",
            "required": false,
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'. technical name of the extension com_xxxx",
            "in": "query",
            "name": "ext_prefix",
            "required": false,
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "version",
            "required": false,
            "type": "string"
          },
          {
            "description": "update available for this extension",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "vUpdate",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Extension"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid"
          }
        },
        "summary": "Get a list Extensions",
        "tags": [
          "extensions"
        ]
      }
    },
    "/extensions/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "operationId": "getFieldsExtensions",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "extensions"
        ]
      }
    },
    "/extensions/{id}/ignore": {
      "post": {
        "description": "Set 'ignore updates' for a given extension / site_id",
        "operationId": "ignoreExtensionUpdate",
        "parameters": [
          {
            "description": "ID of the extension",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Extension successfully updated",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "Update not found for the given extension"
          }
        },
        "summary": "Set 'ignore updates' for a given extension / site_id",
        "tags": [
          "extensions"
        ]
      }
    },
    "/extensions/{id}/unignore": {
      "post": {
        "description": "Remove 'ignore updates' for a given extension",
        "operationId": "unignoreExtensionUpdate",
        "parameters": [
          {
            "description": "ID of the extension",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Extension successfully updated",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "Update not found for the given extension"
          }
        },
        "summary": "Remove 'ignore updates' for a given extension",
        "tags": [
          "extensions"
        ]
      }
    },
    "/extensions/{id}/update": {
      "post": {
        "description": "Update the extension on the remote site",
        "operationId": "updateExtension",
        "parameters": [
          {
            "description": "ID of the extension",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Extension successfully updated",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "Update not found for the given extension"
          }
        },
        "summary": "Update the extension on the remote site",
        "tags": [
          "extensions"
        ]
      }
    },
    "/feedbacks": {
      "get": {
        "description": "Returns a list of feedbacks",
        "operationId": "getFeedbacks",
        "parameters": [
          {
            "description": "Fields to return separate by comas (es. name,id)",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Feedback"
            }
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get feedbacks",
        "tags": [
          "feedbacks"
        ]
      },
      "post": {
        "description": "Create a feedback",
        "operationId": "createFeedbacks",
        "parameters": [
          {
            "description": "JSON object Feedback",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Feedback"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Audit"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create a feedback",
        "tags": [
          "feedbacks"
        ]
      }
    },
    "/feedbacks/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "operationId": "getFieldsFeedbacks",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "feedbacks"
        ]
      }
    },
    "/logs": {
      "get": {
        "description": "Returns a list of logs",
        "parameters": [
          {
            "description": "Type of the log",
            "enum": [
              "",
              "plugin_sends_error",
              "curlerror",
              "modified_file",
              "word_not_in_homepage",
              "file_not_exists",
              "update_available",
              "new_extension",
              "deleted_extension",
              "extension_not_saved",
              "modified_value_files",
              "custom"
            ],
            "in": "query",
            "name": "log_type",
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "log_entry",
            "required": false,
            "type": "string"
          },
          {
            "description": "Logs after this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "string"
          },
          {
            "description": "Logs before this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "string"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Log"
            }
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get a list of logs",
        "tags": [
          "logs"
        ]
      }
    },
    "/logs/export": {
      "get": {
        "description": "Returns a file contain the list of logs",
        "operationId": "getExportLogs",
        "parameters": [
          {
            "description": "Format of exported file (PDF or CSV)",
            "enum": [
              "csv",
              "pdf"
            ],
            "in": "query",
            "name": "format",
            "required": true,
            "type": "string"
          },
          {
            "description": "Site id of the log",
            "format": "int64",
            "in": "query",
            "name": "site",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Type of the log",
            "enum": [
              "",
              "plugin_sends_error",
              "curlerror",
              "modified_file",
              "word_not_in_homepage",
              "file_not_exists",
              "update_available",
              "new_extension",
              "deleted_extension",
              "extension_not_saved",
              "modified_value_files",
              "custom"
            ],
            "in": "query",
            "name": "filter_type",
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "search",
            "required": false,
            "type": "string"
          },
          {
            "description": "Logs after this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "startdate",
            "required": false,
            "type": "string"
          },
          {
            "description": "Logs before this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "enddate",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "startid",
            "required": false,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get a CSV or PDF file contain the list of logs",
        "tags": [
          "logs"
        ]
      }
    },
    "/logs/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "operationId": "getFieldsLogs",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "logs"
        ]
      }
    },
    "/logs/types": {
      "get": {
        "description": "Returns a list of log types",
        "operationId": "getTypesLogs",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of log types",
        "tags": [
          "logs"
        ]
      }
    },
    "/logs/{id}": {
      "delete": {
        "description": "Delete a specific log",
        "operationId": "deleteLogById",
        "parameters": [
          {
            "description": "ID of log that needs to be deleted",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Log correctly deleted",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete a specific log",
        "tags": [
          "logs"
        ]
      }
    },
    "/packages": {
      "post": {
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "responses": {
          "default": {
            "description": "No description"
          }
        }
      }
    },
    "/reports/sites/{id}": {
      "get": {
        "description": "Returns a PDF report based on a site ID",
        "parameters": [
          {
            "description": "ID that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Start of the report, format YYYY-MM-DD, default today-30day ",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "string"
          },
          {
            "description": "End of the report, format YYYY-MM-DD, default today",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "string"
          },
          {
            "description": "Type of reports separate by comas: Ga,Logs,Uptime",
            "in": "query",
            "name": "reports",
            "required": false,
            "type": "string"
          },
          {
            "description": "Type of the log to show in the report",
            "enum": [
              "",
              "plugin_sends_error",
              "curlerror",
              "modified_file",
              "word_not_in_homepage",
              "file_not_exists",
              "update_available",
              "new_extension",
              "deleted_extension",
              "extension_not_saved",
              "modified_value_files"
            ],
            "in": "query",
            "name": "log_type",
            "type": "string"
          },
          {
            "description": "Define if you want show previous values in Google Analytics graph",
            "enum": [
              0,
              1
            ],
            "in": "query",
            "name": "compare",
            "type": "integer"
          }
        ],
        "produces": [
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Reports"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Returns a PDF report for a specific site",
        "tags": [
          "reports"
        ]
      }
    },
    "/reports/tags/{id}": {
      "get": {
        "description": "Returns a report based on a site ID",
        "parameters": [
          {
            "description": "ID that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Start of the report, format YYYY-MM-DD, default today-30day ",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "string"
          },
          {
            "description": "End of the report, format YYYY-MM-DD, default today",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "string"
          },
          {
            "description": "Type of reports separate by comas: Ga,Logs,Uptime",
            "in": "query",
            "name": "reports",
            "required": false,
            "type": "string"
          },
          {
            "description": "Type of the log to show in the report",
            "enum": [
              "",
              "plugin_sends_error",
              "curlerror",
              "modified_file",
              "word_not_in_homepage",
              "file_not_exists",
              "update_available",
              "new_extension",
              "deleted_extension",
              "extension_not_saved",
              "modified_value_files"
            ],
            "in": "query",
            "name": "log_type",
            "type": "string"
          },
          {
            "description": "Define if you want show previous values in Google Analytics graph",
            "enum": [
              0,
              1
            ],
            "in": "query",
            "name": "compare",
            "type": "integer"
          }
        ],
        "produces": [
          "application/pdf"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Reports"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Find sites by ID",
        "tags": [
          "reports"
        ]
      }
    },
    "/sites": {
      "get": {
        "description": "Returns a list of Sites",
        "operationId": "getSites",
        "parameters": [
          {
            "description": "List of sites id separated by comma",
            "in": "query",
            "name": "siteids",
            "required": false,
            "type": "string"
          },
          {
            "description": "Site name. Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "name",
            "required": false,
            "type": "string"
          },
          {
            "description": "Access URL. Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "access_url",
            "required": false,
            "type": "string"
          },
          {
            "description": "Joomla version. Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "j_version",
            "required": false,
            "type": "string"
          },
          {
            "description": "Ip address. Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "string"
          },
          {
            "description": "Joomla core update status (1: update required, 0: update not required)",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "jUpdate",
            "type": "integer"
          },
          {
            "description": "canUpdate",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "canUpdate",
            "type": "integer"
          },
          {
            "description": "Is published",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "published",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Has errors",
            "in": "query",
            "name": "error",
            "required": false,
            "type": "string"
          },
          {
            "in": "query",
            "name": "nbUpdates",
            "required": false,
            "type": "string"
          },
          {
            "description": "Is online",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "up",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Fields to return separated by commas (e.g. name,id)",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of objects to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Get a list of Sites",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "description": "Create a site",
        "operationId": "createSite",
        "parameters": [
          {
            "description": "JSON object Site",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PostSite"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Not allowed to add sites"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create a site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}": {
      "delete": {
        "description": "Delete a specific Site",
        "parameters": [
          {
            "description": "ID of Site that needs to be deleted",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Deleted successfully",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete a specific Site",
        "tags": [
          "sites"
        ]
      },
      "get": {
        "description": "Return a site based on ID",
        "operationId": "getSiteById",
        "parameters": [
          {
            "description": "ID that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Find sites by ID",
        "tags": [
          "sites"
        ]
      },
      "put": {
        "description": "Update a site",
        "parameters": [
          {
            "description": "ID of the website that needs to be update",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "JSON object Site",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PostSite"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Updated successfully",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Update a site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/audits": {
      "get": {
        "description": "Return audits for a specific website",
        "operationId": "getSiteAudits",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Audits"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Return audits for a specific website",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "description": "Create an audit for the site",
        "operationId": "createAudits",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Audit"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create an audit for the site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/backupnow": {
      "post": {
        "description": "Add the site to the backup queue",
        "operationId": "addSiteToBackupQueue",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Add the site to the backup queue",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/backupprofiles": {
      "get": {
        "description": "Return backup profile",
        "operationId": "getBackupProfiles",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Return backup profile",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/backups": {
      "get": {
        "description": "List of latest backups",
        "operationId": "getListBackups",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "List of latest backups",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/backupstart": {
      "post": {
        "description": "Start a remote backup for the site",
        "operationId": "startSiteBackup",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Start a remote backup for the site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/backupstep": {
      "post": {
        "description": "Step (continue) a remote backup for the site",
        "operationId": "stepSiteBackup",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Step (continue) a remote backup for the site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/extensions": {
      "get": {
        "description": "Get extensions for a site",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Extension"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid"
          }
        },
        "summary": "Get extensions for a site",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "operationId": "installExtension",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "URL to install the extension from",
            "format": "url",
            "in": "query",
            "name": "url",
            "required": true,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Install extension",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/logs": {
      "get": {
        "description": "Return logs for a specific website",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "log_entry",
            "required": false,
            "type": "string"
          },
          {
            "description": "Type of the log",
            "enum": [
              "",
              "plugin_sends_error",
              "curlerror",
              "modified_file",
              "word_not_in_homepage",
              "file_not_exists",
              "update_available",
              "new_extension",
              "deleted_extension",
              "extension_not_saved",
              "modified_value_files"
            ],
            "in": "query",
            "name": "log_type",
            "type": "string"
          },
          {
            "description": "Logs after this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "string"
          },
          {
            "description": "Logs before this date, format YYYY-MM-DD HH:MM:SS",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "string"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Log"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Return logs for a specific website",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "description": "Create a custom log for a specific website",
        "operationId": "CreateLog",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "JSON object Log (only type custom)",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PostLog"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Log"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create a custom log for a specific website",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/monitor": {
      "delete": {
        "description": "Return boolean",
        "operationId": "deleteMonitor",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Monitor"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete uptime monitor",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "description": "Return boolean",
        "operationId": "postMonitor",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Monitor"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Post uptime monitor",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/scanner": {
      "get": {
        "description": "Scan the site for malware",
        "operationId": "scanner",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Scan the site for malware",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/seo": {
      "get": {
        "description": "SEO analyze for a page",
        "operationId": "seoAnalyze",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "SEO analyze for a page",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/tags": {
      "get": {
        "description": "Return tags for a specific website",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "name",
            "required": false,
            "type": "string"
          },
          {
            "description": "Bootstrap color of the tag",
            "enum": [
              "",
              "default",
              "success",
              "warning",
              "important",
              "info",
              "inverse"
            ],
            "in": "query",
            "name": "type",
            "type": "string"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Return tags for a specific website",
        "tags": [
          "sites"
        ]
      },
      "post": {
        "description": "Add tags for a specific website",
        "operationId": "postTags",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "JSON object Tag",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Add tags for a specific website",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/updatejoomla": {
      "post": {
        "description": "Update Joomla core on the remote site",
        "operationId": "updateJoomla",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Joomla core successfully updated",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID or Joomla Update not found"
          }
        },
        "summary": "Update Joomla core on the remote site",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/uptime": {
      "get": {
        "description": "Return uptime data",
        "operationId": "getUptime",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Uptime"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Return uptime data",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/validate": {
      "get": {
        "description": "validate the site",
        "operationId": "validateSite",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Log"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "validate the site, return the new logs",
        "tags": [
          "sites"
        ]
      }
    },
    "/sites/{id}/validatedebug": {
      "get": {
        "operationId": "validateDebugSite",
        "parameters": [
          {
            "description": "ID of the website",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Log"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "validate the site, return the debug information",
        "tags": [
          "sites"
        ]
      }
    },
    "/ssousers": {
      "get": {
        "description": "Returns a list of SSO Users",
        "operationId": "getSsoUsers",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get a list of SSO Users",
        "tags": [
          "ssousers"
        ]
      },
      "post": {
        "description": "Create a SSO User",
        "operationId": "CreateSsoUsers",
        "parameters": [
          {
            "description": "JSON object SsoUsers",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create a SSO User",
        "tags": [
          "ssousers"
        ]
      }
    },
    "/ssousers/{id}": {
      "delete": {
        "description": "Delete a specific SSO User",
        "operationId": "deleteSsoUserById",
        "parameters": [
          {
            "description": "ID of SSO User that needs to be deleted",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "SSO User correctly deleted",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete a specific SSO User",
        "tags": [
          "ssousers"
        ]
      },
      "get": {
        "description": "Returns a SSO User based on ID",
        "operationId": "getSsoUsersById",
        "parameters": [
          {
            "description": "ID of SSO User that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          },
          "400": {
            "description": "Invalid ID"
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Find SSO User by ID",
        "tags": [
          "ssousers"
        ]
      },
      "put": {
        "description": "Update a SSO User",
        "operationId": "UpdateSsoUsers",
        "parameters": [
          {
            "description": "ID of SSO User that needs to be updated",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "JSON object SsoUsers",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SsoUsers"
            }
          },
          "201": {
            "description": "Updated successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Update a SSO User",
        "tags": [
          "ssousers"
        ]
      }
    },
    "/tags": {
      "get": {
        "description": "Returns a list of tags",
        "parameters": [
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "name",
            "required": false,
            "type": "string"
          },
          {
            "description": "Bootstrap color of the tag",
            "enum": [
              "",
              "default",
              "success",
              "warning",
              "important",
              "info",
              "inverse"
            ],
            "in": "query",
            "name": "type",
            "type": "string"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Get a list of tags",
        "tags": [
          "tags"
        ]
      },
      "post": {
        "description": "Create a tag",
        "operationId": "CreateTags",
        "parameters": [
          {
            "description": "JSON object Tag",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          },
          "201": {
            "description": "Saved successfully"
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Not saved"
          }
        },
        "summary": "Create a tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/tags/metadata": {
      "get": {
        "description": "Returns a list of fields",
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "summary": "Get the list of fields",
        "tags": [
          "tags"
        ]
      }
    },
    "/tags/{id}": {
      "delete": {
        "description": "Delete a specific tag",
        "parameters": [
          {
            "description": "ID of tag that needs to be deleted",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Tag correctly deleted",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Delete a specific tag",
        "tags": [
          "tags"
        ]
      },
      "get": {
        "description": "Returns a tag based on ID",
        "operationId": "getTagById",
        "parameters": [
          {
            "description": "ID of tag that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          },
          "400": {
            "description": "Invalid ID"
          },
          "403": {
            "description": "Invalid API Key"
          }
        },
        "summary": "Find tag by ID",
        "tags": [
          "tags"
        ]
      },
      "put": {
        "description": "Update a tag",
        "operationId": "UpdateTag",
        "parameters": [
          {
            "description": "ID of tag",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "JSON object of the updated tag",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "Updated successfully",
            "schema": {
              "$ref": "#/definitions/Tag"
            }
          },
          "400": {
            "description": "Invalid data"
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Update a tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/tags/{id}/sites": {
      "get": {
        "description": "Returns a list of sites based with a specific tag id",
        "operationId": "getSitesByTags",
        "parameters": [
          {
            "description": "ID of tag that needs to be fetched",
            "format": "int64",
            "in": "path",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "name",
            "required": false,
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "access_url",
            "required": false,
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "j_version",
            "required": false,
            "type": "string"
          },
          {
            "description": "Do a 'LIKE' search, you can also use '%'",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "string"
          },
          {
            "description": "Joomla core update",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "jUpdate",
            "type": "integer"
          },
          {
            "description": "is published",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "published",
            "required": false,
            "type": "integer"
          },
          {
            "description": "have errors",
            "in": "query",
            "name": "error",
            "required": false,
            "type": "string"
          },
          {
            "in": "query",
            "name": "nbUpdates",
            "required": false,
            "type": "string"
          },
          {
            "description": "is the website online",
            "enum": [
              1,
              0
            ],
            "in": "query",
            "name": "up",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Fields to return separate by comas: name,id",
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of object to return (max 100, default 25)",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Start of the return (default 0)",
            "format": "int64",
            "in": "query",
            "minimum": 0,
            "name": "limitstart",
            "required": false,
            "type": "integer"
          },
          {
            "description": "ORDER by this field separete by comas. Add + / - after field for set ASC / DESC: type+,name-",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json",
          "application/xml",
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Site"
            }
          },
          "403": {
            "description": "Invalid API Key"
          },
          "404": {
            "description": "Invalid ID"
          }
        },
        "summary": "Find sites by tag ID",
        "tags": [
          "tags"
        ]
      }
    }
  },
  "definitions": {
    "Audit": {
      "properties": {
        "id": {
          "description": "Unique identifier for the audit",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "id"
      ]
    },
    "Audits": {
      "items": {
        "$ref": "#/definitions/Audit"
      },
      "type": "array"
    },
    "Extension": {
      "properties": {
        "date": {
          "description": "Date of release",
          "type": "string"
        },
        "ext_name": {
          "description": "Extension name",
          "type": "string"
        },
        "idx_site": {
          "description": "Unique identifier for the site",
          "format": "int64",
          "type": "integer"
        },
        "newVersion": {
          "description": "New version",
          "type": "string"
        },
        "type": {
          "description": "Datetime of the log",
          "format": "date-format",
          "type": "string"
        },
        "url": {
          "description": "Author URL",
          "type": "string"
        },
        "vUpdate": {
          "description": "Update is available",
          "type": "integer"
        },
        "version": {
          "description": "Extension version",
          "type": "string"
        }
      },
      "required": [
        "idx_site",
        "type"
      ]
    },
    "Feedback": {
      "properties": {
        "id": {
          "description": "Unique identifier for the feedback",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "id"
      ]
    },
    "Log": {
      "properties": {
        "Site name": {
          "description": "Name of the site / readyonly",
          "type": "string"
        },
        "id_log": {
          "description": "Unique identifier for the log",
          "format": "int64",
          "type": "integer"
        },
        "idx_site": {
          "description": "Unique identifier for the site",
          "format": "int64",
          "type": "integer"
        },
        "log_date": {
          "description": "Datetime of the log",
          "format": "date-format",
          "type": "string"
        },
        "log_entry": {
          "description": "Log information",
          "type": "string"
        },
        "log_level": {
          "description": "Level of log",
          "format": "int64",
          "type": "integer"
        },
        "log_type": {
          "description": "Type of log",
          "type": "string"
        },
        "userid": {
          "description": "Unique identifier for the user",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "id_log",
        "idx_site",
        "log_date",
        "log_entry",
        "log_level",
        "userid"
      ]
    },
    "Monitor": {},
    "PostLog": {
      "properties": {
        "log_date": {
          "description": "Datetime of the log",
          "format": "date-format",
          "type": "string"
        },
        "log_entry": {
          "description": "Log information",
          "type": "string"
        },
        "log_level": {
          "description": "Level of log",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "log_entry",
        "log_level"
      ]
    },
    "PostSite": {
      "properties": {
        "access_url": {
          "description": "URL of the site",
          "type": "string"
        },
        "admin_url": {
          "description": "Adminsitration URL",
          "type": "string"
        },
        "akeebaProfile": {
          "description": "Akeeba Profile",
          "format": "date-format",
          "type": "string"
        },
        "backupSchedule": {
          "description": "Backup Schedule",
          "type": "string"
        },
        "dateBackup": {
          "description": "Date backup",
          "format": "date-format",
          "type": "string"
        },
        "name": {
          "description": "Friendly name for the site",
          "type": "string"
        },
        "notes": {
          "description": "Personnal note for the site",
          "type": "string"
        },
        "published": {
          "description": "Published status of site",
          "type": "boolean"
        },
        "secret_word": {
          "description": "Watchful secret word",
          "type": "string"
        },
        "tags": {
          "description": "JSON encoded array of tags for the site (e.g. [{<q>name</q>:<q>mytag</q>},{<q>name</q>:<q>anothertag</q>}])",
          "format": "json",
          "type": "string"
        },
        "word_akeeba": {
          "description": "Akeeba backup word",
          "type": "string"
        },
        "word_check": {
          "description": "Word checked for uptime",
          "type": "string"
        }
      },
      "required": [
        "access_url"
      ]
    },
    "Reports": {},
    "Site": {
      "properties": {
        "access_url": {
          "description": "URL of the site",
          "type": "string"
        },
        "admin_url": {
          "description": "Adminsitration URL",
          "type": "string"
        },
        "akeebaProfile": {
          "description": "Akeeba Profile",
          "format": "date-format",
          "type": "string"
        },
        "backupSchedule": {
          "description": "Backup Schedule",
          "type": "string"
        },
        "canBackup": {
          "description": "Site can be backuped",
          "type": "boolean"
        },
        "canUpdate": {
          "description": "Site can use remote installer",
          "type": "boolean"
        },
        "dateBackup": {
          "description": "Date backup",
          "format": "date-format",
          "type": "string"
        },
        "date_last_check": {
          "description": "Watchful Last check",
          "format": "date-format",
          "type": "string"
        },
        "error": {
          "description": "Error status of site",
          "type": "boolean"
        },
        "ip": {
          "description": "server IP",
          "type": "string"
        },
        "jUpdate": {
          "description": "?",
          "type": "boolean"
        },
        "j_version": {
          "description": "Joomla site version",
          "type": "string"
        },
        "monitorid": {
          "description": "Id of the associated UptimeRobot monitor",
          "type": "boolean"
        },
        "name": {
          "description": "Friendly name for the site",
          "type": "string"
        },
        "nbUpdates": {
          "description": "Number of updates",
          "format": "date-format",
          "type": "string"
        },
        "new_j_version": {
          "description": "Joomla site version",
          "type": "string"
        },
        "notes": {
          "description": "Personnal note for the site",
          "type": "string"
        },
        "published": {
          "description": "Published status of site",
          "type": "boolean"
        },
        "secret_word": {
          "description": "Watchful secret word",
          "type": "string"
        },
        "siteid": {
          "description": "Unique identifier for the site",
          "format": "int64",
          "type": "integer"
        },
        "tags": {
          "description": "List of tags for this site",
          "items": {},
          "type": "array"
        },
        "up": {
          "description": "Site status",
          "type": "boolean"
        },
        "word_akeeba": {
          "description": "Akeeba backup word",
          "type": "string"
        },
        "word_check": {
          "description": "Word checked for uptime",
          "type": "string"
        }
      },
      "required": [
        "siteid"
      ]
    },
    "SsoUsers": {
      "properties": {
        "email": {
          "description": "Email of the SSO User",
          "type": "string"
        },
        "groupid": {
          "description": "Security Joomla group ID",
          "format": "int64",
          "type": "integer"
        },
        "id": {
          "description": "Unique identifier for the SSO User",
          "format": "int64",
          "type": "integer"
        },
        "lastLoginDate": {
          "description": "Last login date on remote site",
          "format": "date-time",
          "type": "string"
        },
        "lastLoginSite": {
          "description": "Site Id of the last remote login",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "description": "Account display name",
          "type": "string"
        },
        "password": {
          "description": "Password of the SSO User",
          "type": "string"
        },
        "userid": {
          "description": "Watchful user account",
          "format": "int64",
          "type": "integer"
        },
        "username": {
          "description": "Username of the SSO User",
          "type": "string"
        }
      },
      "required": [
        "email",
        "groupid",
        "id",
        "name",
        "password",
        "userid",
        "username"
      ]
    },
    "Tag": {
      "properties": {
        "id": {
          "description": "Unique identifier for the tag",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "description": "Friendly name for the tag",
          "type": "string"
        },
        "nbSites": {
          "description": "Number of sites use this tag (required field id)",
          "type": "integer"
        },
        "type": {
          "default": "default",
          "description": "Bootstrap color of the tag",
          "enum": [
            "default",
            "success",
            "warning",
            "important",
            "info",
            "inverse"
          ],
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "Uptime": {},
    "Version": {}
  }
}