Our web service API makes data collected and generated by AppNeta Performance Manager (APM) available for analysis, reporting, and presentation in third-party systems. Results are delivered in a lightweight JSON format that can be readily consumed by a broad range of clients.

In addition to the APM API, we have an API for administering Enterprise Monitoring Points (EMPs) - the Admin API. For information on accessing the Admin API see Admin API.

Getting started with the API

An interactive interface is available and is the best place to start learning and experimenting with the API. It is also a good place to stage some API calls before implementing them in your integration software. The interactive interface provides detailed documentation about each endpoint and its parameters.

To access the API interface and get a simple response from APM:

  1. Log in to APM.
  2. Navigate to > API.
    • The interactive API interface appears.
  3. Navigate to path > GET /v3/path.
  4. Click Try it out!.
    • The “Curl” field shows the curl command string that can be used from the command line to produce the same result. See Using curl for more information
    • The “Request URL” field shows the URL the request was made to.
    • The “Response Body” field shows the response sent by APM.
    • The “Response Code” is the response code sent by APM. Successful responses have a “200” code.
    • The “Response Headers” is the header information sent by APM.

You can experiment by filling in a few parameters and clicking Try it out!. You can also experiment with other endpoints.

Using curl

One of the outputs from the interactive API interface is a curl command that can be used to generate the same result as is in the “Response Body” but from the command line. One caveat is that the command parameters provided do not include authentication information. For example, the curl command returned by GET /v3/path is:

   curl -X GET --header "Accept: application/json" "https://<your_APM_node>.pm-st.appneta.com/api/v3/path?api_key=v3&api_key=v3"

<your_APM_node> - the name of the APM node you are using.

Using the command directly would fail as there are no credentials included in the list of parameters.

Including basic authentication information

The simplest way to include authentication information in the curl command is with the -u parameter. For example:

   -u <email_address>:<password>

<email_address> - the email address you use to access APM.
<password> - the password you use to access APM.

The updated command looks as follows:

   curl -X GET --header "Accept: application/json" -u <email_address>:<password> "https://<your_APM_node>.pm-st.appneta.com/api/v3/path?api_key=v3&api_key=v3"

If you leave off “:<password>”, you will be prompted for your password.

To make the output more intelligible, use | python -m json.tool after each curl command. For example:

   curl -X GET --header "Accept: application/json" -u <email_address>:<password> "https://<your_APM_node>.pm-st.appneta.com/api/v3/path?api_key=v3&api_key=v3" | python -m json.tool

The downside of the basic authentication is that it is plain text, so your password is visible.

Including encoded authentication information

Another method for including authentication information is to use the “base64” command to encode your credentials. You can then use the encoded credentials in curl. Using this method does not expose your user credentials.

To encode your credentials use:

   echo -n <email_address>:<password> | base64

A string of characters is returned. For example:

   Z21hbGFuZ2UrYWR2Y35jZWRAYsBwbmV0YS5jb206RmFQJTkxMTFA

Use the -H parameter (instead of -u) to include this information. For example:

   -H "Authorization: Basic Z21hbGFuZ2UrYWR2YW5jZWRAYXBwbmV0YS5jb206RmFQMTkxMTFA"

The updated command looks as follows:

   curl -X GET --header "Accept: application/json" -H "Authorization: Basic Z21hbGFuZ2UrYWR2YW5jZWRAYXBwbmV0YS5jb206RmFQMTkxMTFA" "https://<your_APM_node>.pm-st.appneta.com/api/v3/path?api_key=v3&api_key=v3" | python -m json.tool

Obtaining “IDs”

A number of endpoints (for example, GET /v3/path/{id}/data) require an “id” parameter, to filter a result set (for example, “Path ID” or “Web Path ID”). The easiest way to obtain specific IDs is by navigating to a page in the APM user interface showing details of that object. For example, in APM, if you navigate to Delivery > Network Path List and hover over a path name, the “pathid” of the network path will be shown at the bottom left of the page. Similarly, if you navigate to Experience > Web Paths and hover over a web path name, the “webpathid” of the web path will be shown at the bottom left of the page.

Obtaining a timestamp in Unix time

There are endpoints (for example, GET /v3/path/{id}/data) that require a timestamp in “Unix time” (the number of seconds elapsed since midnight (UTC) on January 1, 1970). The simplest way to obtain Unix time is with a free online tool like the Unix timestamp tool.

Rate limit

AppNeta limits the number of API requests that can be made over a given period of time. Currently the rate limit is 50 requests every 10 seconds.