API Overview

Public API

We offer a free REST API as part of your licensing. You can use the API to get your data into to your SIEM (security information and event management) system, such as Splunk or Power BI. Alternatively, you can offload the data into your own backend or integrate seamlessly into your ticketing system. You can read all data you can see in the portal and approve or deny requests through the API.

Pull (API) versus Push (WebHooks)

There are two ways you can get a copy of your data from us. The most typical way to get data is for you to call our public API in interval to download data (pull from your side). You can also subscribe to WebHooks (push from our side).

WebHooks

The advantage of WebHooks is that you get your data in real-time instead of pulling data in intervals. The drawback is that you have to have a public webserver to retrieve the data and you would still need the API to approve requests.

There are also many SaaS systems that allow you to integrate with WebHooks – such as getting notified in Teams or Slack by pointing a WebHook from Admin By Request to such a system.

WebHooks and public API have the same data structure. The difference is only in the delivery model – Push vs Pull. You configure WebHooks in your settings under Settings > Tenant Settings > Webhooks > WEBHOOKS.

API

If you use the API instead of WebHooks, you must first enable the API and set up an API key. This is done by logging into your portal account and navigating to Settings > Tenant Settings > API Keys > API KEYS, then clicking Add New:

Once a key is generated, you can use Click to show, followed by Copy to clipboard in the api key window to copy and paste it.

Authentication

You can authenticate in two ways when consuming the API:

  1. Send the api key as a header named “apikey”:

  2. Use standard basic authentication and send api key as the password (username is ignored).

Please refer to Using PowerShell to Query ABR for further screenshots.

Quota

These quota rules are enforced to avoid flooding the API. If quotas are passed, access will automatically be blocked for your tenant until next business day.

Daily quota: 100,000 API calls

Data

Data are returned in JSON format and standard http status codes apply (e.g. 200 = OK, 404 = Not Found, 500 = Internal Server Error).

The goal is to keep the structures as similar as possible to how they appear in the portal. If you need to do initial investigation or data mining, you can easily extract the data using Postman, Insomnia or other API tool of your choice. All you have to do is add the basic authentication password or add the apikey under “headers” and call a url, as shown above.

For more information on the available APIs from Admin By Request:

Emptying requests from an external system

This section demonstrates how requests can be retrieved and approved from an external system. The goal is to empty the request queue at an interval and approve or deny requests that are already stored in the external system. The scenario could be to create a recurring job in the external system (e.g. ServiceNow) and then add buttons on tickets to approve or deny requests.

NOTE

Integration connectors are added periodically between Admin By Request and other systems. At the time of writing, we have several integrations, including Jira, Teams and ServiceNow. If you use any of the integrations for which there is a predefined application, you do not need to use the API. Refer to Integrations for more information.

API tasks

The following tasks are covered in this section:

Questions?

Feel free to ask any questions you might have. If you do not have a direct contact at Admin By Request, contact us with any questions you might have, or submit a support ticket.