The document describes methods available in NZBGet version 13.0 and later. The document is updated after a new stable version is out. Current testing version may have methods or fields not described here; these methods or fields may change before getting stable.
NZBGet supports XML-RPC, JSON-RPC and JSON-P-RPC. RPC-protocols allow to control the program from other applications. Many programming languages have libraries, which make the usage of XML-RPC, JSON-RPC and JSON-P-RPC very simple. The implementations of all three protocols in NZBGet are equal: all methods are identical. You may choose the protocol, which is better supported by your programming language.
NZBGet has three pairs of username/password:
- options
ControlUsernameandControlPassword- Full access, usually used when connecting to web-interface; - options
RestrictedUsernameandRestrictedPassword-v15.0Restricted user can control the program with few restrictions. He has access to web-interface and can see most program settings. He can not change program settings and can not view security related options or options provided by extension scripts. In terms of RPC-API the user:- cannot use method
saveconfig; - methods
configandloadconfigreturn string***for options those content is protected from the user.
- cannot use method
- options
AddUsernameandAddPassword-v15.0This user has only two permissions:- add new downloads using RPC-method
append; - check program version using RPC-method
version.
- add new downloads using RPC-method
The RPC server uses HTTP basic authentication. The URL would be something like:
- for XML-RPC:
http://username:password@localhost:6789/xmlrpc - for JSON-RPC:
http://username:password@localhost:6789/jsonrpc - for JSON-P-RPC:
http://username:password@localhost:6789/jsonprp
If HTTP basic authentication is somewhat problematic the username/password can also be passed in the URL as the first part of the path:
http://localhost:6789/username:password/xmlrpc
Security warning: HTTP authentication is not secure. Although the password is encoded using Base64 it is not encrypted. For secure communication use HTTPS (needs to be explicitly enabled in NZBGet settings by user).
- Multicalls are supported for
XML-RPCand not supported forJSON-RPC. - Introspection is not supported.
- Only positional parameters are supported in
JSON-RPC. Named parameters are not supported. Therefore parameter names are ignored but the order of parameters is important. All parameters are mandatory. - Each call to
JSON-P-RPChas one additional parameter - the name of callback-function. This parameter must be namedcallbackand must be passed first (before any other parameters). - 64 bit integers are returned in two separate fields
HiandLo(for exampleFileSizeHiandFileSizeLo). These fields are unsigned 32 bit integers. Although dynamic languages such as PHP or Python have no problems with these fields theXML-RPCspecification does not allow unsigned integers. This may cause troubles in statically typed languages such as Java or C++ ifXML-RPC-parser expects only signed integers in 32 bit range. As a solution useJSON-RPC(which does allow unsigned integers) instead ofXML-RPC.