API Documentation

Table of Contents

nimbusec API v2

The API follows the Restful principle of HTTP APIs. This means:

  • GET requests are used to retrieve a existing resource
  • GET requests do not modify any state or cause any side effects
  • PUT requests are used to update a resource or set it to a specific value
  • PUT requests modify state, but the same request can be sent multiple times (the requests are idempotent)
  • POST requests are used to create or add a new resource
  • POST requests modify state, but the same request sent multiple times causes the API to e.g. add a domain multiple times (they are not idempotent)
  • DELETE requests are used to delete a given resource
  • DELETE requests modify state and are not idempotent (a resource can not be deleted twice)

Authentication

The OAuth term is most frequently used when referring to 3-legged OAuth. This was a standardized version of a protocol that many vendors like Yahoo, Google, AOL, etc. had deployed which involved an end-user going through a "dance" where they start on the OAuth consumer site, and are redirected to the OAuth provider site where they are asked to approve access by the consumer site to their data. If their approval is given, they are then bounced back to the OAuth consumer site. While this "dance" has enabled a whole new set of applications and data-interoperability, the user experience can be confusing for an end-user (sort of like ballroom dancing with two partners at the same time).

2-legged OAuth is a term that is used to refer to another variant of OAuth which does not require this dance. This variant is also called Signed Fetch. In fact, the vast majority of actual REST API calls made on the Internet using OAuth are made using 2-legged OAuth, not 3-legged OAuth.

The nimbusec API will use OAuth's parameter signing algorithm. Note that most of the OAuth standard, including token exchange, is not required; nimbusec only plans to use the parameter signing piece of the standard (including timestamp and nonce). nimbusec will permit the HMAC-SHA1 method (except that the key is a shared secret between container and app, not a concatenation of tokens as specified in section 9.2) and the RSA-SHA1 method.

Example code for Python

For python the library https://pypi.python.org/pypi/oauth2 (among others) can be used to access the nimbusec API. Replace key and secret with your assigned values.

import os
import sys
import json
import oauth2 as oauth

consumer = oauth.Consumer("key", "secret")
client = oauth.Client(consumer)

if __name__ == "__main__":
resp, content = client.request("https://api.nimbusec.com/v2/domain")
if resp['status'] != '200':
  print "request failed", resp
  os.Exit(1)

domains = json.loads(content)
for domain in domains:
  print "Domain: %d -> %s" % (domain["id"], domain["name"])

Example code for Go

For the Go integration you can use the official nimbusec SDK available on GitHub: https://github.com/cumulodev/nimbusec. An example of how the SDK can be used is given below. Further examples can also be found in the following GitHub repository: https://github.com/cumulodev/hoster-tools. The offical SDK documentation is found at https://godoc.org/github.com/cumulodev/nimbusec.

package main

import (
  "flag"
  "fmt"
  "log"

  // nimbusec Go SDK
  "github.com/cumulodev/nimbusec"
)

func main() {
  // Define command line flags
  // Filter is expressed by using the Filter Query Langage (FQL)
  filter := flag.String("filter", "severity ge 3 and (event eq \"malware\" or event eq \"webshell\")",
    "filter for when a domain is considered infected")
  domain := flag.String("domain", "ALL",
    "define specific domain or ALL to lookup over all domains and resources")
  url := flag.String("url", nimbusec.DefaultAPI, "url to nimbusec API")
  key := flag.String("key", "", "nimbusec API key")
  secret := flag.String("secret", "", "nimbusec API secret")
  flag.Parse()

  // Creates new nimbusec API client
  api, err := nimbusec.NewAPI(*url, *key, *secret)
  if err != nil {
    log.Fatal(err)
  }

  // Find infected domains
  var domains []nimbusec.Domain
  if *domain != "ALL" {

    // Search for the specific domain
    obj, err := api.GetDomainByName(*domain)
    if err != nil {
        log.Fatal(err)
    }

    // Create new list with the retrieved domain
    domains = []nimbusec.Domain{*obj}
  } else {

    // Retrieve all infected domains whose results matches the given filter
    domains, err = api.FindInfected(*filter)
    if err != nil {
      log.Fatal(err)
    }
  }

  // Fetch resources for each domain found above. That is why a single domain is also
  // put into a list.
  for _, domain := range domains {
    // Retrieve all Result objects for the domain. Results are again filtered with the same
    // query as the infected domains.
    results, err := api.FindResults(domain.Id, *filter)
    if err != nil {
        log.Fatal(err)
    }

    // Loop through the results and print them
    for _, result := range results {
        fmt.Printf("%s,%s\n", domain.Name, result.Resource)
    }
  }
}

Example code for PHP5

For the PHP integration you can use the official nimbusec API client available on:

To integrate the client easily, install it as a dependency with Composer.

composer require nimbusec/nimbusec-php

An explanation on how to install Composer can be found on our Github repository. After installing our client, include Composer's autoloader for more convenience and start communicating.

See the example below on how to use our API Client. Replace $NIMBUSEC_KEY and $NIMBUSEC_SECRET with your credentials.

<?php

// include autoloader to load Nimbusec API automatically
require_once("vendor/autoload.php");

// write alias for Nimbusec API
use Nimbusec\API as API;

// set credentials
$NIMBUSEC_KEY = 'YOUR KEY';
$NIMBUSEC_SECRET = 'YOUR SECRET';

// create new Nimbusec API client
// the default url parameter can be omitted
$api = new API($NIMBUSEC_KEY, $NIMBUSEC_SECRET, API::DEFAULT_URL);

try {
    // fetch domains
    $domains = $api->findDomains();
    foreach ($domains as $domain) {
        echo $domain["name"] . "\n";
    }

    // find specific domain
    $domain = $api->findDomains("name=\"nimbusec.com\"")[0];
    echo "The id of nimbusec.com domain is: {$domain['id']}\n";

    // find all applications
    $applications = $api->findApplications($domain["id"]);
    $mapped = array_map(function ($application) {
        return "{$application['name']}: {$application['version']}";
    }, $applications);
    echo "All applications of nimbusec.com: [" . implode(", ", $mapped) . "]\n";

    // find results
    $results = $api->findResults($domain["id"]);
    echo "Number of results for nimbusec.com: ". count($results) . "\n";

    // create a new user
    $user = array(
        "login" => "john.doe@example.com",
        "mail" => "john.doe@example.com",
        "role" => "user",
        "forename" => "John",
        "surname" => "Doe"
    );
    $created = $api->createUser($user);
    echo "Created a new user with name {$created['forename']} {$created['surname']}\n";

    // update the user
    $created["forename"] = "Franz";
    $updated = $api->updateUser($created["id"], $created);
    echo "Now we have {$updated['forename']} {$updated['surname']}\n";

    // delete the previously created and updated user
    $api->deleteUser($updated["id"]);
    echo "He is gone\n";
} catch (Exception $e) {
    echo "[x] an error occured: {$e->getMessage()}\n";
}

Error Messages

If a entity can't be found, created or updated, the closest matching 4xx HTTP error code will be returned. A more detailed error message will be provided (if available) in the HTTP header field X-Nimbusec-Error.

If a 5xx is returned, this is really an error on our side (regardless of the data you sent) and the request might be retried after a few minutes. If the error is reproduceable, please report it to us.

API Resources

We recently switched to a standardized way to document our APIs. The Open API Specification (OAS) on swaggerhub. You can find docs for

Warning: Everything below must not be current!

Below you find the API documentation as it where before the switch.

Domain

Domains

// domain object
{
  // unique identification of domain
 "id": "int",

 // id of assigned package
 "bundle": "string",

 // whether the domain uses http or https
 "scheme": "string",

 // name of domain (usually DNS name)
 "name": "string",

 // starting point for the domain deep scan
 "deepScan": "string",

 // landing pages of the domain scanned
 "fastScans": "string[]"
}

Create

To create a new domain send a domain object as HTTP body/content via an POST request to the following URL. The id field will be ignored and can be missing or left blank.

The response is the created domain object with its assigned id (status = 200), or an error code otherwise.

POST https://api.nimbusec.com/v2/domain

When doing a POST the client can use the parameter upsert to indicate that the API should not fail when the object to create already exists, but return the existing object instead. With upsert=true, the API updates the existing object also with the provided body, while upsert=false just returns the existing object and ignores the provided body.

Read

To get a list of domains, send a GET request to the following URL. The list can be filtered using the Filter Language (using the parameter q).

The response is a list of matching domain objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain
GET https://api.nimbusec.com/v2/domain?q=filter

To retrieve a specific domain object, send a GET request to the following URL. Replace <id> with the id of the domain.

The response is a domain object (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<id>

Update

To modify an existing domain object, send the new domain object as HTTP body/content via an PUT request to the following URL. Replace <id> with the id of the domain.

The response is the updated domain object (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/domain/<id>

Delete

To delete a domain, send a DELETE request to the following URL. Replace <id> with the id of the domain.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE https://api.nimbusec.com/v2/domain/<id>

Infected Domains

Read

To retrieve a list of infected domains / domains that have results, send a GET request to the following URL. The list can be filtered using the Filter Language (using the parameter q, Note: the filter will be applied on the results, not domains!).

The respone is a list of matching domain objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/infected
GET https://api.nimbusec.com/v2/infected?q=filter

Results

// result object
{
  // unique identification of a result
  "id": "int",

  // status of the result (1 = pending, 2 = acknowledged, 3 = falsepositive, 4 = removed)
  "status": "int",

  // event type of result (e.g added file)
  "event": "string",

  // category of result
  "category": "string",

  // severity level of result (1 = medium to 3 = severe)
  "severity": "int",

  // probability the result is critical
  "probability": "float",

  // flag indicating if the file can be safely deleted without loosing user data
  "safeToDelete": "boolean",

  // timestamp (in ms) of the first occurrence
  "createDate": "date",

  // timestamp (in ms) of the last occurrence the following fields contain more
  // details about the result. Not all fields must be filled or present.
  "lastDate": "date",

  // name identifying the threat of a result. meaning differs per category:
  //   malware & webshell: the virus database name of the malicious software
  //   blacklist: the name of the blacklist containing the domain
  "threatname": "string",

  // affected resource (e.g. file path or URL)
  "resource": "string",

  // MD5 hash sum of the affected file
  "md5": "string",

  // filesize of the affected file
  "filesize": "int",

  // file owner of the affected file
  "owner": "string",

  // file group of the affected file
  "group": "string",

  // permission of the affected file as decimal integer
  "permission": "int",

  // diff of a content change between two scans
  "diff": "string",

  // reason why a domain/URL is blacklisted
  "reason": "string",
}

Read

To get a list of results for a given domain, send a GET request to the following URL. Replace <id> with the id of the domain. The list can be filtered using the Filter Language (using the parameter q).

The response is a list of matching result objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<id>/result
GET https://api.nimbusec.com/v2/domain/<id>/result?q=filter

To retrieve a specific result object, send a GET request to the following URL. Replace <domain-id> with the id of the domain and <result-id> with the id of the result.

The response is a result object (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<domain-id>/result/<result-id>

Update

To acknowledge a specific result, send the new result with the updated status via a PUT request to the following URL. Replace <domain-id> with the id of the domain and <result-id> with the id of the result. All fields except status will be ignored and can be left empty or removed.

The response is the updated result object (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/domain/<domain-id>/result/<result-id>

Domain Metadata

// domain metadata object
{
  // timestamp (in ms) of last external scan of the whole site
  "lastDeepScan": "date",

  // timestamp (in ms) for next external scan of the whole site
  "nextDeepScan": "date",

  // timestamp (in ms) of last external scan of the landing pages
  "lastFastScan": "date",

  // timestamp (in ms) for next external scan of the landing pages
  "nextFastScan": "date",

  // last date server agent sent results to the domain
  "agent": "date",

  // detected CMS vendor and version
  "cms": "string",

  // detected HTTP server vendor and version
  "httpd": "string",

  // detected PHP version
  "php": "string",

  // number of downloaded files/URLs for last deep scan
  "files": "int",

  // size of downloaded files for last deep scan (in byte)
  "size": "int",
}

Read

To retrieve metadata for a given domain, send a GET request to the following URL. Replace <id> with the id of the domain.

The response is a domain metadata object (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<id>/metadata

Screenshots

// screenshot object
{
  // url for which the screenshot was taken
  "target": "string",

  // object containing information for the previous screenshot
  "previous": {
    // timestamp (in ms) when previous screenshot was taken
    "date": "date",

    // mime type of the image (image/jpeg)
    "mime": "string",

    // URL to image
    "url": "string",
  },

  // object containing information for the current screenshot
  "current": {
    "date": "date",
    "mime": "string",
    "url": "string",
  },
}

Read

To retrieve the metadata for the screenshots of a given domain, send a GET request to the following URL. Replace <id> with the id of the domain.

The response is a screenshot object (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<id>/screenshot

To retrieve the actual screenshot, send a GET request to one of the URLs specified in the screenshot object.

GET https://api.nimbusec.com/v2/domain/<id>/screenshot/<current|previous>.jpg

Applications

// application object
{
  // name of the application (in human readable form)
  "name": "string",

  // version of the application (if detected)
  "version": "string",

  // path where the application was detected, only available for application
  // detected by the agent (source = agent)
  "path": "string",

  // category into which the application is grouped (cms, ecommerce,
  // javascript-frameworks, ...)
  "category": "string",

  // source of the finding. either `external` or `agent`
  "source": "string",

  // whether this version is the latest version. `true` if no version could be
  // detected or application is not tracked by nimbusec.
  "latest": bool,

  // whether this version is vulnerable. `false` if no version is detected or
  // application is not tracked by nimbusec.
  "vulnerable": bool
}

Read

To retrieve a list of detected applications for a domain, send a GET request to the following URL. Replace <id> with the id of the domain. This list can not be filtered (yet).

The response is a list of application objects (when status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/domain/<id>/applications

Bundle

Bundles

// bundle object
{
  // unique identification of a bundle
  "id": "string",

  // given name for a bundle
  "name": "string",

  // timestamp in milliseconds when bundle was added / set active
  "startDate": "date",

  // timestamp in milliseconds when bundle will expire
  "endDate": "date",

  // maximum size of files that will be downloaded per scan
  "quota": "string",

  // maximum link depth that will be followed (-1 means no limit)
  "depth": "int",

  // interval of fast scans in minutes (-1 means disabled)
  "fast": "int",

  // interval of deep scans in minutes (-1 means disabled)
  "deep": "int",

  // maximum number of domains that can be assigned
  "contingent": "int",

  // number of currently assigned domains
  "active": "int",

  // list of used anti-virus engines
  "engines": "string[]",
}

Read

To retrieve a list of active bundles, send a GET request to the following URL. The list can be filtered using the Filter Language (using the parameter q).

The response is a list of bundle objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/bundle
GET https://api.nimbusec.com/v2/bundle?q=filter

To retrieve a specific bundle, send a GET request to the following URL. Replace <id> with the id of the bundle.

The response is a bundle object (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/bundle/<id>

User

Users

user object
{
  // unique identification of a user
  "id": "int",

  // login name of user (REQUIRED)
  "login": "string",

  // e-mail contact where mail notifications are sent to (REQUIRED)
  "mail": "string",

  // role of an user (`admin` or `user`)
  "role": "string",

  // company name of user
  "company": "string",

  // surname of user
  "surname": "string",

  // forename of user
  "forename": "string",

  // academic title of user
  "title": "string",

  // phone contact where sms notificatins are sent to
  "mobile": "string",

  // password of user (only used when creating or updating a user)
  "password": "string",

  // secret for SSO (only used when creating or updating a user)
  "signatureKey": "string",
}

Create

To create a new user send a user object as HTTP body/content via an POST request to the following URL. The id field will be ignored and can be missing or left blank.

The response is the created user object with its assigned id (status = 200), or an error code otherwise.

POST https://api.nimbusec.com/v2/user

When doing a POST the client can use the parameter upsert to indicate that the API should not fail when the object to create allready exists, but return the existing object instead. With upsert=true, the API updates the existing object also with the provided body, while upsert=false just returns the existing object and ignores the provided body.

Read

To get a list of available users, send a GET request to the following URL. The list can be filtered using the Filter Language (using the parameter q).

The response is a list of user objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/user
GET https://api.nimbusec.com/v2/user?q=filter

To get a specific user, send a GET request to the following URL. Replace <id> with the id of the user.

The response is an user object (status = 200), or an error code otherwise.

GET http://api.nimbusec.com/v2/user/<id>

Update

To modify an existing user object, send the new user object as HTTP body/content via an PUT request to the following URL. Replace <id> with the id of the user. The id field of the body will be ignored and can be missing or left blank, only the id of the URL will be used.

The response is the updated user object (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/user/<id>

Delete

To delete an user, send a DELETE request to the following URL. Replace <id> with the id of the user.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE https://api.nimbusec.com/v2/user/<id>

Note: the deletion of a user removes also his data and notification settings and cannot be undone. Some user cannot be deleted (such as the first registered user).

Notifications

// notification object
{
  // unique identification of a notification
  "id": "int",

  // id of a domain
  "domain": "int",

   // type of contact (mail, sms)
  "transport": "string"

   // level for server side notifications (see result severity, >3 = disabled)
  "serverside": "int",

  // level for content notifications (see result severity, >3 = disabled)
  "content": "int",

  // level for blacklist notifications (see result severity, >3 = disabled)
  "blacklist": "int",
}

Create

To add a notification for a user send a notification object as HTTP body/content via an POST request to the following URL. Replace <user-id> with the id of the user. The id field will be ignored and can be missing or left blank.

The response is the created notification object with its assigned id (status = 200), or an error code otherwise.

POST https://api.nimbusec.com/v2/user/<user-id>/notification

Read

To get a list of configured notification for a given user, send a GET request to the following URL. Replace <user-id> with the id of the user. The list can be filtered using the Filter Language (using the parameter q). ` The response is a list of notification objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/user/<user-id>/notification
GET https://api.nimbusec.com/v2/user/<user-id>/notification?q=filter

To get a specific notification, send a GET request to the following URL. Replace <user-id> with the id of the user and <notification-id> with the id of the notification.

The response is a notification object (status = 200), or an error code otherwise.

GET http://api.nimbusec.com/v2/user/<user-id>/notification/<notification-id>

Update

To modify an existing notification object, send the new notification object as HTTP body/content via an PUT request to the following URL. Replace <user-id> with the id of the user and <notification-id> with the id of the notification. The id field of the body will be ignored and can be missing or left blank, only the id of the URL will be used.

The response is the updated notification object (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/user/<user-id>/notification/<notification-id>

Delete

To delete a notification, send a DELETE request to the following URL. Replace <user-id> with the id of the user and <notification-id> with the id of the notification.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE https://api.nimbusec.com/v2/user/<user-id>/notification/<notification-id>

User Domain Set

Users (with the role "user") can be limited in the number of domains they can see and manage. The list of domains a user can manage is called the "User Domain Set". For users with the role "administrator" the domain set cannot be restricted. Therefore POST, PUT or DELETE request for such users will result in an error (status = 409).

// user domain set
int[] // list of domain ids

Create

To add a domain to the user domain set, send the id of the domain as a POST request to the following URL. Replace <user-id> with the id of the user whose user domain set should be modified.

The response is the whole user domain set (status = 200), or an error code otherwise.

POST https://api.nimbusec.com/v2/user/<user-id>/domains

Read

To read the assigned domain set of a user, send a GET request to the following URL. Replace <user-id> with the id of the user whose user domain set should be retrieved. This method also works for users with the role "administrator" and returns the complete set of domain ids they can access.

The response is a list of assigned domain ids (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/user/<user-id>/domains

Update

To modify or change the domain set, send the new set of domain ids as a PUT request to the following URL. The sent domain set will overwrite any existing user-domain associations. Replace <user-id> with the id of the user whose user domain set should be modified.

The response is the new list of assigned doman ids (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/user/<user-id>/domains

Delete

To delete a specific domain from a users domain set, send a DELETE request to the following URL. This does not delete the domain itself! Replace <user-id> with the id of the user whose user domain set should be modified.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE  https://api.nimbusec.com/v2/user/<user-id>/domains/<domain-id>

User Configuration

The user configuration is a simple key value store on a per user basis that can override default settings for users. Here is a list of currently supported configuration options.

language : "string"

Set language for the nimbusec portal as well as for the notifications.

Possible languages are:

  • English: "en"
  • German: "de"
  • Estonian: "et"
  • Finnish: "fi"
  • French: "fr"
favorite.XX : "string"

Set your favourite domains displayed at the top of the monitor screen. The range for "XX" goes from [01 - 05].

digest.daily : "true" | "false"
digest.weekly : "true" | "false"

Enable or disable daily and weekly digests.

timezone: "Europe/Vienna"

Set the preferred timezone for the nimbusec portal to display the correct local time.

Possible timezones are listed here:

Read

To read a list of user configurations, send a GET request to the following URL. Replace <user-id> with the id of the user whose user configurations should be retrieved.

The response is a list of keys of the configurations (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/user/<user-id>/config

To retrieve a specific user configuration, send a GET request to the following URL. Replace <user-id> with the id of the user whose configuration should be retrieved and <key> with the name of the specific configuration.

The response is the value of the user configuration (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/user/<user-id>/config/<key>/

Update

To modify or set a specific user configuration, send the value for the configuration as plain text as a PUT request to the following URL. Replace <user-id> with the id of the user whose configuration should be set or modifed and <key> with the name of the specific configuration.

The response is the value of the user configuration (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/user/<user-id>/config/<key>/

Delete

To delete a specific user configuration, send a DELETE request to the following URL. This will remove the customized setting and change it back to the default value. Replace <user-id> with the id of the user whose configuration should be deleted and <key> with the name of the specific configuration.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE  https://api.nimbusec.com/v2/user/<user-id>/config/<key>/

Agent

Agents

// agent object
{
    // operating system of agent (windows, macosx, linux)
    "os": "string",

    // cpu architecture of agent (32bit, 64bit)
    "arch": "string",

    // version of agent
    "version": "int",

    // MD5 hash of download file
    "md5": "string",

    // SHA1 hash of download file
    "sha1": "string",

    // format of downloaded file (zip)
    "format": "string",

    // URL were agent can be downloaded from
    "url": "string",
}

Read

To get a list of available server agents for download, send an GET request to the following URL.

The response is a list of agent objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/agent/download

To download a specific agent version, send and GET request to the URL specified in the agent object.

GET https://api.nimbusec.com/v2/agent/download/nimbusagent-<os>-<arch>-<version>.zip

Agent Tokens

// agent token object
{
    // unique identification of a token
    "id": "int",

    // given name for a token
    "name": "string",

    // oauth key
    "key": "string",

    // oauth secret
    "secret": "string",

    // last timestamp (in ms) an agent used the token
    "lastCall": "date",

    // last agent version that was seen for this key
    "version": "int",
}

Create

To create a new agent token send a agent token object as HTTP body/content via an POST request to the following URL. All fields except name will be ignored and can be missing or left blank.

The response is the created agent token object with its assigned id (status = 200), or an error code otherwise.

POST https://api.nimbusec.com/v2/agent/token

Read

To get a list of available agent tokens, send a GET request to the following URL. The list can be filtered using the Filter Language (using the parameter q).

The response is a list of agent token objects (status = 200), or an error code otherwise.

GET https://api.nimbusec.com/v2/agent/token
GET https://api.nimbusec.com/v2/agent/token?q=filter

To get a specific agent token, send a GET request to the following URL. Replace <id> with the id of the agent token.

The response is a agent token object (status = 200), or an error code otherwise.

GET http://api.nimbusec.com/v2/agent/token/<id>

Update

To modify an existing agent token object, send the new agent token object as HTTP body/content via an PUT request to the following URL. Replace <id> with the id of the agent token. All fields except name of the body will be ignored and can be missing or left blank.

The response is the updated agent token object (status = 200), or an error code otherwise.

PUT https://api.nimbusec.com/v2/agent/token/<id>

Delete

To delete an agent token, send a DELETE request to the following URL. Replace <id> with the id of the agent token.

The response is a HTTP status 200 for success, or an error code otherwise.

DELETE https://api.nimbusec.com/v2/agent/token/<id>
Still need help? Get in touch!
Last updated on 14th Aug 2018