API Documentation
Table of Contents
- nimbusec API v2
- Authentication
- API Resources
- Warning: Everything below must not be current!
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:
- GitHub: https://github.com/cumulodev/nimbusec-php
- Packagist: https://packagist.org/packages/nimbusec/nimbusec-php
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
- version 2 now at: OpenAPI Docs APIv2
- and version 3 at: OpenAPI Docs APIv3
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>