Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Submitting a GET Request to the REST API

For an rpc command, the general format of the endpoints is:

scheme://device-name:port/rpc/method[@attributes]/params

  • scheme: http or https

  • method: The name of any Junos OS rpc command. The method name is identical to the tag element. For more information, see the Junos XML API Explorer.

  • params: Optional parameter values (name[=value]).

To authenticate your request, you can use one of the following methods. We recommend using the netrc option because it is more secure.

  • Submit the base64-encoded username and password included in the Authorization header.

  • Alternatively, use a .netrc file to store the credentials.

    1. In the user's home directory, create the .netrc file, and specify the hostname, username, and password for the remote device. For example:

    2. Ensure that only the user has read and write permission for the file.

    3. In the request, specify the --netrc option. For example:

To specify rpc data as a query string in the URI for GET requests, you can use a ? following the URI with the & delimiter separating multiple arguments, or use the / delimiter, as shown in these equivalent cURL calls:

For example:

HTTP Accept headers can be used to specify the return format using one of the following Content-Type values:

  • application/xml (the default)

  • application/json

  • text/plain

  • text/html

For example, the following cURL call specifies an output format of JSON:

You can also specify the output format using the Junos OS RPC's optional format parameter.

For example, the <get-software-information> tag element retrieves software process revision levels. The following HTTPS GET request executes this command and retrieves the results in JSON format:

The following Python program uses the REST interface to execute the get-route-engine-information RPC, extracts the data from the response, and plots a graph of the CPU load average. The requests module automatically checks the user's .netrc file for credentials associated with the specified device. Alternatively, you can include the auth=(usernamepassword ) argument in the request to supply credentials.