.. _api:
API (Restfull/JSON) documentation
=================================
The Glances Restfull/API server could be ran using the following command line:
.. code-block:: bash
# glances -w --disable-webui
Note: Change request URL api/3 by api/2 if you use Glances 2.x.
GET API status
--------------
This entry point should be used to check the API status.
It will return nothing but a 200 return code if everythin is OK.
Get the Rest API status::
# curl -I http://localhost:61208/api/3/status
"HTTP/1.0 200 OK"
GET plugins list
----------------
Get the plugins list::
# curl http://localhost:61208/api/3/pluginslist
["alert",
"amps",
"cloud",
"connections",
"core",
"cpu",
"diskio",
"docker",
"folders",
"fs",
"gpu",
"help",
"ip",
"irq",
"load",
"mem",
"memswap",
"network",
"now",
"percpu",
"ports",
"processcount",
"processlist",
"psutilversion",
"quicklook",
"raid",
"sensors",
"smart",
"system",
"uptime",
"wifi"]
GET amps
--------
Get plugin stats::
# curl http://localhost:61208/api/3/amps
[{"count": 0,
"countmax": None,
"countmin": 1.0,
"key": "name",
"name": "Dropbox",
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 1.025280237197876},
{"count": 0,
"countmax": 20.0,
"countmin": None,
"key": "name",
"name": "Python",
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 1.025184154510498}]
Get a specific field::
# curl http://localhost:61208/api/3/amps/name
{"name": ["Dropbox", "Python", "Conntrack", "Nginx", "Systemd", "SystemV"]}
Get a specific item when field matchs the given value::
# curl http://localhost:61208/api/3/amps/name/Dropbox
{"Dropbox": [{"count": 0,
"countmax": None,
"countmin": 1.0,
"key": "name",
"name": "Dropbox",
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 1.025280237197876}]}
GET core
--------
Get plugin stats::
# curl http://localhost:61208/api/3/core
{"log": 4, "phys": 2}
Fields descriptions:
* **phys**: Number of physical cores (hyper thread CPUs are excluded) (unit is *number*)
* **log**: Number of logical CPUs. A logical CPU is the number of physical cores multiplied by the number of threads that can run on each core (unit is *number*)
Get a specific field::
# curl http://localhost:61208/api/3/core/phys
{"phys": 2}
GET cpu
-------
Get plugin stats::
# curl http://localhost:61208/api/3/cpu
{"cpucore": 4,
"ctx_switches": 0,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 72.3,
"interrupts": 0,
"iowait": 0.0,
"irq": 0.0,
"nice": 0.0,
"soft_interrupts": 0,
"softirq": 0.0,
"steal": 0.0,
"syscalls": 0,
"system": 2.2,
"time_since_update": 1,
"total": 28.3,
"user": 25.5}
Fields descriptions:
* **total**: Sum of all CPU percentages (except idle) (unit is *percent*)
* **system**: percent time spent in kernel space. System CPU time is the time spent running code in the Operating System kernel (unit is *percent*)
* **user**: CPU percent time spent in user space. User CPU time is the time spent on the processor running your program's code (or code in libraries) (unit is *percent*)
* **iowait**: *(Linux)*: percent time spent by the CPU waiting for I/O operations to complete (unit is *percent*)
* **idle**: percent of CPU used by any program. Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle (unit is *percent*)
* **irq**: *(Linux and BSD)*: percent time spent servicing/handling hardware/software interrupts. Time servicing interrupts (hardware + software) (unit is *percent*)
* **nice**: *(Unix)*: percent time occupied by user level processes with a positive nice value. The time the CPU has spent running users' processes that have been *niced* (unit is *percent*)
* **steal**: *(Linux)*: percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor (unit is *percent*)
* **ctx_switches**: number of context switches (voluntary + involuntary) per second. A context switch is a procedure that a computer's CPU (central processing unit) follows to change fr