====REST====
The REST output module turns your system into a web server that hosts values in a variety of machine-readable formats, including JSON and XML.
The URL to read is **http://**//servername///**api**.
This is a //service// module - meaning that rather than //writing// data to another system, it opens a server to make that data available to systems that might want to read the information.
^Parameter^Default^Meaning^
|**port**||The port number to host the web server on.|
===Notes===
It is important to note that if you have //multiple// output modules that require a web server, they will share a **single** server with the port number specified by the last module in your configuration file.
For example, if you wanted both [[Prometheus]] output on port 90 and [[REST]] output on port 9002 (in that order), your Prometheus endpoint would be available on port 9002 rather than 90.
===Example===
[
{
"method": "rest",
"port": 82
}
]
//The above example would make your data available via REST API on port 82//
===Parameters===
The data is available in several formats, which you can specify using the **format** parameter in your REST call.
Formats include **xml**, **json**, **csv** and **txt**.
There are also a couple of //variant// formats, which provide subtle changes to the file format. For example, **csvh** and **txth** include a header row that isn't on the normal CSV and TXT formats.
You can also access some variants on the normal XML and JSON layouts by adding a number to their format name. The basic **json** format provides data as a list of //arrays//, while **json2** provides it as a list of //objects//. The basic **xml** provides data with uniquely-named tags, while **xml2** provides data in 'v' tags and attributes giving the point name.
===Other Modules===
Return to the [[key-value methods|list of output modules]].