Patrowl Dashboard - API Reference
What is Patrowl? 🦉
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Patrowl is an Offensive Security as a Service solution which allows you to improve your Exposure Management (EM), to secure your External Exposure aka External Security Posture.
Patrowl provides an API to retrieve and manage data from the PatrowlDashboard platform with HTTP requests. This documentation lists all these APIs.
What can I do with this API? 🤖
Everything you're used to dealing with on PatrowlDashboard can be done via API, for example:
- List your assets and retrieve the details,
- List your vulnerabilities and retrieve the details,
- List your retests and retrieve the details,
- ..., etc.
Base URL:
Email: Support
Authentication
How to get your API Token? 🔑
Your API access token is accessible on Patrowl Dashboard in your account settings:
- Go to Patrowl Dashboard > Account > API Token
- Press the button to generate the API token
The token can be renewed or deleted from this same page.
How to use your API Token? 🙇
Your API access token has to be sent in every requests, in the Authorization header of the request:
Authorization: Token <your-API-token>
Users
User accounts and administration.
List Users
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/users/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/users/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/users/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/users/
Returns a paginated list of Users.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | string | false | none | |
| first_name | query | string | false | none |
| id | query | integer | false | none |
| is_active | query | boolean | false | none |
| is_asset_group_owner | query | boolean | false | none |
| is_asset_owner | query | boolean | false | none |
| is_vuln_owner | query | boolean | false | none |
| is_vuln_solution_owner | query | boolean | false | none |
| last_name | query | string | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | string | false | none |
| org_not | query | integer | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| role | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| team_not | query | integer | false | Filter the users that does not belong to a specific team. |
| teams | query | array[integer] | false | none |
| username | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)username- Username-username- Username (desc)email- Email-email- Email (desc)is_active- Is active-is_active- Is active (desc)last_login- Last login-last_login- Last login (desc)role- Role-role- Role (desc)first_name- Firstname-first_name- Firstname (desc)last_name- Lastname-last_name- Lastname (desc)can_be_owner- Can be owner-can_be_owner- Can be owner (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -can_be_owner |
| sorted_by | |
| sorted_by | -first_name |
| sorted_by | -id |
| sorted_by | -is_active |
| sorted_by | -last_login |
| sorted_by | -last_name |
| sorted_by | -role |
| sorted_by | -username |
| sorted_by | can_be_owner |
| sorted_by | |
| sorted_by | first_name |
| sorted_by | id |
| sorted_by | is_active |
| sorted_by | last_login |
| sorted_by | last_name |
| sorted_by | role |
| sorted_by | username |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedUserLiteList |
Create a new User
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/
Creates a new User and assigns them to an Organization and Teams.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | UserSerializerIn | true | none |
Example responses
201 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | User |
| 400 | Bad Request | none | BasicResponseWithMessage |
Bulk delete Users
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/users/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/users/
Deletes multiple Users by ID.
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Get a User
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/users/{id}/
Returns detailed information for a single User by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Update a user
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/{id}/
This endpoint is deprecated. Please use "Partial update a user" with the PUT /api/auth/users/{id}/ endpoint instead.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | UserSerializerIn | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
| 400 | Bad Request | none | BasicResponseWithMessage |
Partially update a User
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/users/{id}/
Updates one or more fields on an existing User.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2,
"teams": [
0
]
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | UserSerializerIn | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
| 400 | Bad Request | none | BasicResponseWithMessage |
Delete a User
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/users/{id}/
Deletes a User.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Assign Ownership to a User
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/{id}/{object_type}
Links Assets, Asset Groups, or Vulnerabilities to a User as ownership.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| object_type | path | string | true | none |
| body | body | User | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Remove Ownership from a User
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type} \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/{object_type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/users/{id}/{object_type}
Unlinks Assets, Asset Groups, or Vulnerabilities previously assigned to a User.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| object_type | path | string | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Activate or deactivate a User
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/deactivate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/{id}/deactivate
Sets the User's active status; you cannot change your own account.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | User | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Reset User One-Time Password (OTP)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/new-otp", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/users/{id}/new-otp
Renew the One-Time Password (OTP) for a User so they can configure it at next login.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
404 Response
{
"detail": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 404 | Not Found | none | NotFoundResponseWithDetail |
Reset User password
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/newpwd", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/users/{id}/newpwd
Renew the password for a User.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Update User email subscriptions
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/users/{id}/subscribe-mail", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/users/{id}/subscribe-mail
Updates notification email subscriptions.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | User | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Export Users in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: text/csv
const headers = {
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/users/export/csv
Exports the filtered User list as a semicolon-separated CSV file.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | string | false | none | |
| first_name | query | string | false | none |
| id | query | integer | false | none |
| is_active | query | boolean | false | none |
| is_asset_group_owner | query | boolean | false | none |
| is_asset_owner | query | boolean | false | none |
| is_vuln_owner | query | boolean | false | none |
| is_vuln_solution_owner | query | boolean | false | none |
| last_name | query | string | false | none |
| org_id | query | string | false | none |
| org_not | query | integer | false | none |
| role | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| team_not | query | integer | false | Filter the users that does not belong to a specific team. |
| teams | query | array[integer] | false | none |
| username | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)username- Username-username- Username (desc)email- Email-email- Email (desc)is_active- Is active-is_active- Is active (desc)last_login- Last login-last_login- Last login (desc)role- Role-role- Role (desc)first_name- Firstname-first_name- Firstname (desc)last_name- Lastname-last_name- Lastname (desc)can_be_owner- Can be owner-can_be_owner- Can be owner (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -can_be_owner |
| sorted_by | |
| sorted_by | -first_name |
| sorted_by | -id |
| sorted_by | -is_active |
| sorted_by | -last_login |
| sorted_by | -last_name |
| sorted_by | -role |
| sorted_by | -username |
| sorted_by | can_be_owner |
| sorted_by | |
| sorted_by | first_name |
| sorted_by | id |
| sorted_by | is_active |
| sorted_by | last_login |
| sorted_by | last_name |
| sorted_by | role |
| sorted_by | username |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Export selected Users in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: text/csv
const inputBody = '{
"user_ids": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/export/csv
Exports only the Users whose IDs are provided in the request body as a CSV file.
Body parameter
{
"user_ids": [
null
]
}
user_ids:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | UserIDs | true | none |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Import Users from CSV
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/users/import/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/users/import/csv
Creates Users in bulk from an uploaded semicolon-separated CSV file for the given Organization.
Body parameter
{
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"role": 2
}
username: string
first_name: string
last_name: string
email: user@example.com
role: 2
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | User | true | none |
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | User |
Organizations
Organizations and their metadata.
List Organizations
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/
List the Organizations for the current User.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| owner | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
name- Organization Name-name- Organization Name (Desc)slug- Slug-slug- Slug (Desc)owner- Owner-owner- Owner (Desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -name |
| sorted_by | -owner |
| sorted_by | -slug |
| sorted_by | name |
| sorted_by | owner |
| sorted_by | slug |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"identity": {
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
},
"members": {
"owner": "string",
"user_count": 0
},
"profile": {
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
},
"features": {
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
},
"credits": {
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
},
"monitoring": {
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedOrganizationSerializerOutList |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Update Auto EASM Option
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"auto_easm": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/auto_easm", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/orgs/{org_id}/settings/auto_easm
Update the Auto EASM option for the Organization.
Body parameter
{
"auto_easm": true
}
auto_easm: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
| body | body | AutoEASMEnabled | true | none |
Example responses
200 Response
{
"auto_easm": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AutoEASMEnabled |
Get Pentest OBH Setting
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/settings/obh
Retrieve the current outside_business_hours setting for the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
Example responses
200 Response
{
"outside_business_hours": true,
"force_obh_assets": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OutsideBusinessHours |
Update OutsideBusinessHours Setting
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"outside_business_hours": true,
"force_obh_assets": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/obh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/orgs/{org_id}/settings/obh
Update the outside_business_hours setting for the Organization.
Body parameter
{
"outside_business_hours": true,
"force_obh_assets": true
}
outside_business_hours: true
force_obh_assets: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
| body | body | OutsideBusinessHours | true | none |
Example responses
200 Response
{
"outside_business_hours": true,
"force_obh_assets": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OutsideBusinessHours |
Get Remediation SLA Settings
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/settings/sla
Returns the Organization's Remediation SLA overdue thresholds per severity.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Organization |
Update Remediation SLA Settings
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"name": "string",
"slug": "string",
"is_active": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/sla", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/orgs/{org_id}/settings/sla
Sets the overdue day thresholds for each Vulnerability severity level.
Body parameter
{
"name": "string",
"slug": "string",
"is_active": true
}
name: string
slug: string
is_active: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
| body | body | Organization | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Organization |
Get Organization's details by ID
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{id}/
Get the details of an Organization by its ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"identity": {
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
},
"members": {
"owner": "string",
"user_count": 0
},
"profile": {
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
},
"features": {
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
},
"credits": {
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
},
"monitoring": {
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OrganizationSerializerOut |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Upload Organization brand image
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"name": "string",
"slug": "string",
"is_active": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/brandimage", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/orgs/{id}/brandimage
Updates the Organization's logo from a base64-encoded image.
Body parameter
{
"name": "string",
"slug": "string",
"is_active": true
}
name: string
slug: string
is_active: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Organization | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Organization |
Get Pentest slot usage
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{id}/pentested/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{id}/pentested/
Returns how many pentested Asset slots are in use versus the Organization's limit.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Organization |
Check Arsenal service status
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/arsenalstatus", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/arsenalstatus
Verifies connectivity to Patrowl Arsenal engine instances.
Example responses
200 Response
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Organization |
Get default Organization's details
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/default/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/default/
Get the details of the default Organization for the current User.
Example responses
200 Response
{
"identity": {
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
},
"members": {
"owner": "string",
"user_count": 0
},
"profile": {
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
},
"features": {
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
},
"credits": {
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
},
"monitoring": {
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OrganizationSerializerOut |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Organization members
Organization membership and roles.
List Organization members
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/users/
Returns a paginated list of Users belonging to the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| org_id | path | integer | true | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)username- Username-username- Username (desc)user__username- Username-user__username- Username (desc)user__email- Email-user__email- Email (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -id |
| sorted_by | -user__email |
| sorted_by | -user__username |
| sorted_by | -username |
| sorted_by | id |
| sorted_by | user__email |
| sorted_by | user__username |
| sorted_by | username |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"organization": 0,
"user": 0,
"username": "string",
"email": "string",
"is_admin": true,
"is_active": true,
"org_name": "string",
"role": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedOrganizationUserList |
Add Users to Organization
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"organization": 0,
"user": 0,
"is_admin": true,
"user_ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/orgs/{org_id}/users/
Adds one or more existing Users to the Organization, respecting User slot limits.
Body parameter
{
"organization": 0,
"user": 0,
"is_admin": true,
"user_ids": [
0
]
}
organization: 0
user: 0
is_admin: true
user_ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
| body | body | OrganizationUser | true | none |
Example responses
201 Response
{
"id": 0,
"organization": 0,
"user": 0,
"username": "string",
"email": "string",
"is_admin": true,
"is_active": true,
"org_name": "string",
"role": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | OrganizationUser |
Get Organization member
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/users/{id}/
Returns details for a single Organization membership record.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"organization": 0,
"user": 0,
"username": "string",
"email": "string",
"is_admin": true,
"is_active": true,
"org_name": "string",
"role": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OrganizationUser |
Remove User from Organization
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/users/{id}/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/orgs/{org_id}/users/{id}/delete
Removes a User's membership from the Organization without deleting the User account.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Organization settings
Organization-level configuration.
List Organization Settings
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/settings/
Returns a paginated list of key-value Settings for the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| org_id | path | integer | true | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
key- Key-key- Key (Desc)value- Value-value- Value (Desc)comments- Comments-comments- Comments (Desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -comments |
| sorted_by | -key |
| sorted_by | -value |
| sorted_by | comments |
| sorted_by | key |
| sorted_by | value |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"key": "string",
"value": "string",
"is_secret": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedOrganizationSettingList |
Get Organization Setting
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/orgs/{org_id}/settings/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/orgs/{org_id}/settings/{id}/
Returns a single Organization Setting by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"key": "string",
"value": "string",
"is_secret": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OrganizationSetting |
Authentication
Authenticated user profile and session actions.
Get current User's profile
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/current',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/user/current',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/user/current', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/user/current', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/current");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/user/current", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/user/current
Returns the authenticated User's profile.
Example responses
200 Response
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | CurrentUser |
Request password reset email
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/user/current/password_change", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/user/current/password_change
Send a password reset email.
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | No response body | None |
Reset current User's OTP
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/user/current/renew_otp", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/user/current/renew_otp
Resets the authenticated non-SSO User's OTP so they can configure it at next login.
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
Update current User's email subscriptions
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/user/current/subscribe-to-email", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/user/current/subscribe-to-email
Updates which notification email types the authenticated User is subscribed to.
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
Update current User's name
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/user/current/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/user/current/update
Updates the authenticated User's first name and/or last name.
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | No response body | None |
Get API Token
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/user/token \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/user/token HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/token',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/user/token',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/user/token', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/user/token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/user/token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/user/token
Returns the authenticated User's current REST API Token, or null if none exists.
Example responses
200 Response
{
"property1": null,
"property2": null
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | any | false | none | none |
Delete API Token
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/user/token/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/user/token/delete
Revokes and deletes the authenticated User's REST API Token.
Example responses
200 Response
{
"property1": null,
"property2": null
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | any | false | none | none |
Generate API Token
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/user/token/generate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/user/token/generate
Creates a new REST API Token for the authenticated User, replacing any existing one.
Example responses
200 Response
{
"token": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | GenerateTokenResponse |
Teams
Team management and access control.
List Teams
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/teams \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/teams HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/teams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/teams', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/teams
Returns a paginated list of Teams.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | integer | false | The id of the organization to teams from. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | Full-text case insensitive search in teams. |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
name- Name-name- Name (descending)updated_at- Updated at-updated_at- Updated at (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -name |
| sorted_by | -updated_at |
| sorted_by | name |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"campaigns": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"asset_groups": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"users": {
"count": 0,
"items": [
{
"id": 0,
"email": "user@example.com"
}
]
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTeamListList |
Create a Team
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"name": "string",
"description": "",
"organization": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams
Creates a new Team in the given Organization.
Body parameter
{
"name": "string",
"description": "",
"organization": 0
}
name: string
description: ""
organization: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamCreateSerializerIn | true | none |
Example responses
201 Response
{
"id": 0,
"name": "string",
"description": "string",
"organization": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | TeamCreateSerializerOut |
Bulk delete Teams
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams
Deletes multiple Teams by their IDs.
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Retrieve a Team
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/teams/{id}
Returns detailed information for a single Team, including counts (Users, Asset Groups, Assets, Campaigns, operational scope) and Owners.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"description": "string",
"counts": {
"users": 0,
"asset_groups": 0,
"assets": 0,
"campaigns": 0,
"operational_scope": 0
},
"owners": [
{
"id": 0,
"email": "string"
}
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": "string",
"created_by": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | TeamDetail |
Update a Team (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"name": "string",
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/teams/{id}
Updates Team name and/or description.
Body parameter
{
"name": "string",
"description": "string"
}
name: string
description: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedTeamPartialUpdateSerializerIn | false | none |
Example responses
200 Response
{
"name": "string",
"description": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | TeamPartialUpdateSerializerIn |
Delete a single Team
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams/{id}
Deletes a single Team by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Remove Asset Groups from a Team
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/asset-groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams/{id}/asset-groups
Removes a list of Asset Groups from the Team.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Remove Assets from a Team
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams/{id}/assets
Revokes the Team's access to the given Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Get Asset Access Control
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"asset_ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/assets/access-control", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/{id}/assets/access-control
Returns, for each given Asset, the Asset Groups and Campaigns through which the Team has access to that Asset.
Body parameter
{
"asset_ids": [
0
]
}
asset_ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | TeamAssetBulk | true | none |
Example responses
200 Response
{
"results": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | TeamAssetAccessControl |
Remove Campaigns from a Team
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/campaigns", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams/{id}/campaigns
Removes a list of Campaigns (Pentests) from the Team.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Update Team User Ownership (bulk)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"content": [
{
"user_id": 0,
"owner": true
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/teams/{id}/users
Updates the owner flag for multiple Users in the Team. Each User must already be in the Team.
Body parameter
{
"content": [
{
"user_id": 0,
"owner": true
}
]
}
content:
- user_id: 0
owner: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedTeamUserPartialUpdate | false | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Remove Users from a Team
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/{id}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/teams/{id}/users
Removes a list of Users from the specified Team.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Assign Asset Groups to Teams
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"team_ids": [
1
],
"asset_group_ids": [
1
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/asset-groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/asset-groups
Grants the Team access to a list of Asset Groups. Asset Groups must belong to the Team's Organization
Body parameter
{
"team_ids": [
1
],
"asset_group_ids": [
1
]
}
team_ids:
- 1
asset_group_ids:
- 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamAssetGroupCreateBulk | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Assign Assets to Teams
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"team_ids": [
0
],
"asset_ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/assets
Grants the Team access to a list of Assets. Assets must belong to the Team's Organization
Body parameter
{
"team_ids": [
0
],
"asset_ids": [
0
]
}
team_ids:
- 0
asset_ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamsAssetBulkCreateSerialier | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Assign Campaigns to multiple Teams
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"team_ids": [
1
],
"campaign_ids": [
1
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/campaigns", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/campaigns
Assign a list of Campaigns to multiple Teams in one action. All Teams must belong to the same Organization; Campaigns must belong to that Organization.
Body parameter
{
"team_ids": [
1
],
"campaign_ids": [
1
]
}
team_ids:
- 1
campaign_ids:
- 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamPentestBulkCreate | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Export Teams in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/teams/export \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/teams/export HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: text/csv
const headers = {
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/export',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/export',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/teams/export', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/teams/export', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/export", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/teams/export
Returns a CSV file of Teams matching the current filters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | false | The id of the organization to teams from. |
| search | query | string | false | Full-text case insensitive search in teams. |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
name- Name-name- Name (descending)updated_at- Updated at-updated_at- Updated at (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -name |
| sorted_by | -updated_at |
| sorted_by | name |
| sorted_by | updated_at |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Export selected Teams in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/export \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/export HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: text/csv
const inputBody = '{
"team_ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/export',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/export',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/export', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/export', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/export", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/export
Returns a CSV file for the Teams whose IDs are in the request body.
Body parameter
{
"team_ids": [
0
]
}
team_ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamIDsList | true | none |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Assign Users to Teams
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/teams/users HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"user_ids": [
1
],
"team_ids": [
1
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/teams/users',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/teams/users',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/teams/users', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/teams/users', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/teams/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/teams/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/teams/users
Assign a list of Users to multiple Teams in one action. All Teams must belong to the same Organization; Users must belong to that Organization.
Body parameter
{
"user_ids": [
1
],
"team_ids": [
1
]
}
user_ids:
- 1
team_ids:
- 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TeamUserBulkCreate | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Assets
Asset inventory and lifecycle.
List Assets
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/
Returns a paginated list of Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset_owners | query | string | false | none |
| asset_tags | query | string | false | none |
| before | query | string(date) | false | none |
| belong_to_a_team | query | boolean | false | Filter assets that belong to at least one team. |
| belong_to_an_asset_group | query | boolean | false | Filter assets that belong to at least one asset group. |
| campaign | query | string | false | none |
| created_by | query | string | false | none |
| criticality | query | integer | false | * 1 - Low |
| cve | query | integer | false | none |
| description__icontains | query | string | false | none |
| group | query | string | false | none |
| group_not | query | string | false | none |
| groups_or | query | string | false | none |
| groups_value | query | string | false | none |
| ip_state | query | string | false | Filter by a list of ip states separated by comma. |
| ip_type | query | string | false | Filter by a list of ip types separated by comma. |
| limit | query | integer | false | Number of results to return per page. |
| liveness | query | string | false | none |
| no_tags | query | boolean | false | No Tags |
| not_asset_owner | query | string | false | none |
| org_id | query | string | false | none |
| outside_business_hours | query | string | false | * 0 - unactivated |
| page | query | integer | false | A page number within the paginated result set. |
| ports_available | query | boolean | false | none |
| protection | query | array[string] | false | Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| related_domains | query | array[integer] | false | none |
| related_ips | query | array[integer] | false | none |
| related_subdomains | query | array[integer] | false | none |
| score | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| top_domain | query | boolean | false | Filter domain Assets that are top domains. |
| type | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
| value | query | string | false | none |
| value__icontains | query | string | false | none |
Detailed descriptions
criticality: * 1 - Low
* 2 - Medium
* 3 - High
outside_business_hours: * 0 - unactivated
* 1 - activated
protection: Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)description- Description-description- Description (desc)score- Score-score- Score (desc)type- Type-type- Type (desc)criticality- Criticality-criticality- Criticality (desc)created_at- Created at-created_at- Created at (desc)activevulns- Active vulnerabilities-activevulns- Active vulnerabilities (desc)asset_tags- Tags-asset_tags- Tags (desc)ports- Ports-ports- Ports (desc)groups- Groups-groups- Groups (desc)asset_owners- Owners-asset_owners- Owners (desc)created_by- Created_by with Patrowl last-created_by- Created_by (desc) with Patrowl first
Enumerated Values
| Parameter | Value |
|---|---|
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| outside_business_hours | 0 |
| outside_business_hours | 1 |
| protection | easm |
| protection | pentested |
| protection | unavailable |
| protection | unprotected |
| sorted_by | -activevulns |
| sorted_by | -asset_owners |
| sorted_by | -asset_tags |
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -criticality |
| sorted_by | -description |
| sorted_by | -groups |
| sorted_by | -id |
| sorted_by | -ports |
| sorted_by | -score |
| sorted_by | -type |
| sorted_by | -value |
| sorted_by | activevulns |
| sorted_by | asset_owners |
| sorted_by | asset_tags |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | criticality |
| sorted_by | description |
| sorted_by | groups |
| sorted_by | id |
| sorted_by | ports |
| sorted_by | score |
| sorted_by | type |
| sorted_by | value |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"created_by": "string",
"activevulns": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_tags": {
"property1": null,
"property2": null
},
"organization": 0,
"score_level": 0.1,
"asset_owners": {
"property1": null,
"property2": null
},
"liveness": "unknown",
"outside_business_hours": 0,
"monitored_slot_locked": true,
"ip_type": "cdn",
"related_technologies": {
"id": 0,
"product": "string",
"vendor": "string",
"version": "string",
"impacted_by_cve": true
},
"thumbnail_url": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedAssetInListList |
Create an Asset
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/?org_id=1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"organization": 0,
"value": "string",
"description": "string",
"criticality": 1,
"exposure": "unknown",
"tags": [
0
],
"owners": [
0
],
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/?org_id=1',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/
Creates a new Asset in the given Organization.
Body parameter
{
"organization": 0,
"value": "string",
"description": "string",
"criticality": 1,
"exposure": "unknown",
"tags": [
0
],
"owners": [
0
],
"teams": [
0
]
}
organization: 0
value: string
description: string
criticality: 1
exposure: unknown
tags:
- 0
owners:
- 0
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | none |
| body | body | CreateAsset | true | none |
Example responses
201 Response
{
"status": "success",
"message": "string",
"data": {
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | create_asset_response_serializer |
| 208 | Unknown | none | already_reported_response_serializer |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Bulk update Assets (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"asset_ids": [
0
],
"criticality": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/
Partially updates multiple Assets in a single request.
Body parameter
{
"asset_ids": [
0
],
"criticality": 1
}
asset_ids:
- 0
criticality: 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | PatchedBulkPartialUpdateSerializerIn | false | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Retrieve an Asset
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/{id}/
Returns detailed information for a single Asset.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Asset |
Update an Asset
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/{id}/
Fully updates an Asset with the provided data.
Body parameter
{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}
value: string
criticality: 1
type: ip
description: string
exposure: unknown
outside_business_hours: 0
tags:
- 0
owners:
- 0
organization: 0
related_easm:
domains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
subdomains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
ips:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Asset | true | none |
Example responses
200 Response
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Asset |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Update an Asset (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/{id}/
Partially updates an Asset's fields such as criticality and description.
Body parameter
{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}
value: string
criticality: 1
type: ip
description: string
exposure: unknown
outside_business_hours: 0
tags:
- 0
owners:
- 0
organization: 0
related_easm:
domains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
subdomains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
ips:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedAsset | false | none |
Example responses
200 Response
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Asset |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Add Owners to an Asset
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"users_id": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/{id}/owners
Assigns one or more Users as Owners of an Asset.
Body parameter
{
"users_id": [
null
]
}
users_id:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | add_owners | true | none |
Example responses
200 Response
{
"score": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetsAddOwnersSuccess |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Owners from an Asset
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/{id}/owners
Removes one or more Users as Owners of an Asset.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"score": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetsRemoveOwnersSuccess |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Refresh Asset Score
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/refresh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/{id}/refresh
Recalculates and returns the score for a single Asset.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"score": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetsRefreshScoreSuccess |
| 400 | Bad Request | none | BasicResponse |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Tags from an Asset
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/{id}/tags
Remove Tags from an Asset
Body parameter
{
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"outside_business_hours": 0,
"tags": [
0
],
"owners": [
0
],
"organization": 0,
"related_easm": {
"domains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"value": "string",
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
]
}
value: string
criticality: 1
type: ip
description: string
exposure: unknown
outside_business_hours: 0
tags:
- 0
owners:
- 0
organization: 0
related_easm:
domains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
subdomains:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
ips:
easm_objects:
- value: string
outside_business_hours: 0
count: 0
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Asset | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 404 | Not Found | none | NotFoundResponseWithDetail |
List Teams with their access status for the Asset
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/{id}/teams
List all Teams from the Organization with their access status to the Asset.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| has_access | query | boolean | false | Filter teams by access status (org admins only) |
| id | path | integer | true | none |
| org_id | query | integer | true | The id of the organization to filter teams from. Required. |
| search | query | string | false | Full-text case insensitive search in teams |
Example responses
200 Response
[
{
"id": 0,
"name": "string",
"description": "string",
"users": [
{
"id": 0,
"email": "user@example.com"
}
],
"has_access": true,
"access_control": {
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"campaigns": [
{
"id": 0,
"title": "string"
}
]
}
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [TeamAccessAsset] | false | none | [Serializer for team access to a given asset: id, name, description, users, has_access, access.] |
| » id | integer | true | none | none |
| » name | string | true | none | none |
| » description | string | true | none | none |
| » users | [TeamAccessUser] | true | none | [Serializer for user information in team response.] |
| »» id | integer | true | none | none |
| string(email) | true | none | none | |
| » has_access | boolean | true | none | none |
| » access_control | AccessControl | true | none | Nested control with asset_groups and campaigns lists. |
| »» asset_groups | [AccessControlItem] | true | none | [Serializer for asset group or campaign in access control.] |
| »»» id | integer | true | none | none |
| »»» title | string | true | none | none |
| »» campaigns | [AccessControlItem] | true | none | [Serializer for asset group or campaign in access control.] |
List Assets by Control (impacted)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-impacted", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/by-control-impacted
Returns a paginated list of Assets with an impacted feed level for the given Control.
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
List Assets by Control (warning)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/by-control-warning
Returns a paginated list of Assets with a warning feed level for the given Control.
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
List Assets by Control (warning or impacted)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted?control_id=0&org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted?control_id=0&org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted?control_id=0&org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted',
params: {
'control_id' => 'integer',
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted', params={
'control_id': '0', 'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted?control_id=0&org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-control-warning-impacted", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/by-control-warning-impacted
Returns a paginated list of Assets linked to a Control with warning or impacted feed levels.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset_owners | query | string | false | none |
| asset_tags | query | string | false | none |
| before | query | string(date) | false | none |
| belong_to_a_team | query | boolean | false | Filter assets that belong to at least one team. |
| belong_to_an_asset_group | query | boolean | false | Filter assets that belong to at least one asset group. |
| campaign | query | string | false | none |
| control_id | query | integer | true | none |
| control_impact | query | integer | false | Impact of the control on the assets. |
| created_by | query | string | false | none |
| criticality | query | integer | false | * 1 - Low |
| cve | query | integer | false | none |
| description__icontains | query | string | false | none |
| group | query | string | false | none |
| group_not | query | string | false | none |
| groups_or | query | string | false | none |
| groups_value | query | string | false | none |
| ip_state | query | string | false | Filter by a list of ip states separated by comma. |
| ip_type | query | string | false | Filter by a list of ip types separated by comma. |
| limit | query | integer | false | Number of results to return per page. |
| liveness | query | string | false | none |
| no_tags | query | boolean | false | No Tags |
| not_asset_owner | query | string | false | none |
| org_id | query | integer | true | none |
| outside_business_hours | query | string | false | * 0 - unactivated |
| page | query | integer | false | A page number within the paginated result set. |
| ports_available | query | boolean | false | none |
| protection | query | array[string] | false | Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| related_domains | query | array[integer] | false | none |
| related_ips | query | array[integer] | false | none |
| related_subdomains | query | array[integer] | false | none |
| score | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | string | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| top_domain | query | boolean | false | Filter domain Assets that are top domains. |
| type | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
| value | query | string | false | none |
| value__icontains | query | string | false | none |
Detailed descriptions
control_impact: Impact of the control on the assets.
0- Impacted1- Warning
criticality: * 1 - Low
* 2 - Medium
* 3 - High
outside_business_hours: * 0 - unactivated
* 1 - activated
protection: Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)description- Description-description- Description (desc)score- Score-score- Score (desc)type- Type-type- Type (desc)criticality- Criticality-criticality- Criticality (desc)created_at- Created at-created_at- Created at (desc)activevulns- Active vulnerabilities-activevulns- Active vulnerabilities (desc)asset_tags- Tags-asset_tags- Tags (desc)ports- Ports-ports- Ports (desc)groups- Groups-groups- Groups (desc)asset_owners- Owners-asset_owners- Owners (desc)created_by- Created_by with Patrowl last-created_by- Created_by (desc) with Patrowl firstcontrol_impact- Impact of control on assets (asc)-control_impact- Impact of contron assets (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| control_impact | 0 |
| control_impact | 1 |
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| outside_business_hours | 0 |
| outside_business_hours | 1 |
| protection | easm |
| protection | pentested |
| protection | unavailable |
| protection | unprotected |
| sorted_by | id |
| sorted_by | -id |
| sorted_by | value |
| sorted_by | -value |
| sorted_by | description |
| sorted_by | -description |
| sorted_by | score |
| sorted_by | -score |
| sorted_by | type |
| sorted_by | -type |
| sorted_by | criticality |
| sorted_by | -criticality |
| sorted_by | created_at |
| sorted_by | -created_at |
| sorted_by | activevulns |
| sorted_by | -activevulns |
| sorted_by | asset_tags |
| sorted_by | -asset_tags |
| sorted_by | ports |
| sorted_by | -ports |
| sorted_by | groups |
| sorted_by | -groups |
| sorted_by | asset_owners |
| sorted_by | -asset_owners |
| sorted_by | created_by |
| sorted_by | -created_by |
| sorted_by | control_impact |
| sorted_by | -control_impact |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"criticality": 1,
"score_level": 0,
"type": "ip",
"control_impact": "Warning",
"outside_business_hours": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedAssetControlMultiLevelList |
Count Assets per type
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/by-types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/by-types
Return the count of Assets per type.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset_owners | query | string | false | none |
| asset_tags | query | string | false | none |
| before | query | string(date) | false | none |
| belong_to_a_team | query | boolean | false | Filter assets that belong to at least one team. |
| belong_to_an_asset_group | query | boolean | false | Filter assets that belong to at least one asset group. |
| campaign | query | string | false | none |
| created_by | query | string | false | none |
| criticality | query | integer | false | * 1 - Low |
| cve | query | integer | false | none |
| description__icontains | query | string | false | none |
| group | query | string | false | none |
| group_not | query | string | false | none |
| groups_or | query | string | false | none |
| groups_value | query | string | false | none |
| ip_state | query | string | false | Filter by a list of ip states separated by comma. |
| ip_type | query | string | false | Filter by a list of ip types separated by comma. |
| liveness | query | string | false | none |
| no_tags | query | boolean | false | No Tags |
| not_asset_owner | query | string | false | none |
| org_id | query | string | false | none |
| outside_business_hours | query | string | false | * 0 - unactivated |
| ports_available | query | boolean | false | none |
| protection | query | array[string] | false | Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| related_domains | query | array[integer] | false | none |
| related_ips | query | array[integer] | false | none |
| related_subdomains | query | array[integer] | false | none |
| score | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| top_domain | query | boolean | false | Filter domain Assets that are top domains. |
| type | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
| value | query | string | false | none |
| value__icontains | query | string | false | none |
Detailed descriptions
criticality: * 1 - Low
* 2 - Medium
* 3 - High
outside_business_hours: * 0 - unactivated
* 1 - activated
protection: Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)description- Description-description- Description (desc)score- Score-score- Score (desc)type- Type-type- Type (desc)criticality- Criticality-criticality- Criticality (desc)created_at- Created at-created_at- Created at (desc)activevulns- Active vulnerabilities-activevulns- Active vulnerabilities (desc)asset_tags- Tags-asset_tags- Tags (desc)ports- Ports-ports- Ports (desc)groups- Groups-groups- Groups (desc)asset_owners- Owners-asset_owners- Owners (desc)created_by- Created_by with Patrowl last-created_by- Created_by (desc) with Patrowl first
Enumerated Values
| Parameter | Value |
|---|---|
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| outside_business_hours | 0 |
| outside_business_hours | 1 |
| protection | easm |
| protection | pentested |
| protection | unavailable |
| protection | unprotected |
| sorted_by | -activevulns |
| sorted_by | -asset_owners |
| sorted_by | -asset_tags |
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -criticality |
| sorted_by | -description |
| sorted_by | -groups |
| sorted_by | -id |
| sorted_by | -ports |
| sorted_by | -score |
| sorted_by | -type |
| sorted_by | -value |
| sorted_by | activevulns |
| sorted_by | asset_owners |
| sorted_by | asset_tags |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | criticality |
| sorted_by | description |
| sorted_by | groups |
| sorted_by | id |
| sorted_by | ports |
| sorted_by | score |
| sorted_by | type |
| sorted_by | value |
Example responses
200 Response
{
"types": {
"ip": 0,
"domain": 0,
"custom": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetTypes |
Count Assets per criticality
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/criticalities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/criticalities
Return the count of Assets per criticality.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset_owners | query | string | false | none |
| asset_tags | query | string | false | none |
| before | query | string(date) | false | none |
| belong_to_a_team | query | boolean | false | Filter assets that belong to at least one team. |
| belong_to_an_asset_group | query | boolean | false | Filter assets that belong to at least one asset group. |
| campaign | query | string | false | none |
| created_by | query | string | false | none |
| criticality | query | integer | false | * 1 - Low |
| cve | query | integer | false | none |
| description__icontains | query | string | false | none |
| group | query | string | false | none |
| group_not | query | string | false | none |
| groups_or | query | string | false | none |
| groups_value | query | string | false | none |
| ip_state | query | string | false | Filter by a list of ip states separated by comma. |
| ip_type | query | string | false | Filter by a list of ip types separated by comma. |
| liveness | query | string | false | none |
| no_tags | query | boolean | false | No Tags |
| not_asset_owner | query | string | false | none |
| org_id | query | string | false | none |
| outside_business_hours | query | string | false | * 0 - unactivated |
| ports_available | query | boolean | false | none |
| protection | query | array[string] | false | Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| related_domains | query | array[integer] | false | none |
| related_ips | query | array[integer] | false | none |
| related_subdomains | query | array[integer] | false | none |
| score | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| top_domain | query | boolean | false | Filter domain Assets that are top domains. |
| type | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
| value | query | string | false | none |
| value__icontains | query | string | false | none |
Detailed descriptions
criticality: * 1 - Low
* 2 - Medium
* 3 - High
outside_business_hours: * 0 - unactivated
* 1 - activated
protection: Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)description- Description-description- Description (desc)score- Score-score- Score (desc)type- Type-type- Type (desc)criticality- Criticality-criticality- Criticality (desc)created_at- Created at-created_at- Created at (desc)activevulns- Active vulnerabilities-activevulns- Active vulnerabilities (desc)asset_tags- Tags-asset_tags- Tags (desc)ports- Ports-ports- Ports (desc)groups- Groups-groups- Groups (desc)asset_owners- Owners-asset_owners- Owners (desc)created_by- Created_by with Patrowl last-created_by- Created_by (desc) with Patrowl first
Enumerated Values
| Parameter | Value |
|---|---|
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| outside_business_hours | 0 |
| outside_business_hours | 1 |
| protection | easm |
| protection | pentested |
| protection | unavailable |
| protection | unprotected |
| sorted_by | -activevulns |
| sorted_by | -asset_owners |
| sorted_by | -asset_tags |
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -criticality |
| sorted_by | -description |
| sorted_by | -groups |
| sorted_by | -id |
| sorted_by | -ports |
| sorted_by | -score |
| sorted_by | -type |
| sorted_by | -value |
| sorted_by | activevulns |
| sorted_by | asset_owners |
| sorted_by | asset_tags |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | criticality |
| sorted_by | description |
| sorted_by | groups |
| sorted_by | id |
| sorted_by | ports |
| sorted_by | score |
| sorted_by | type |
| sorted_by | value |
Example responses
200 Response
{
"criticalities": {
"low": 0,
"medium": 0,
"high": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetCriticalities |
Delete Assets
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/delete
Delete Several Assets from list by their IDs
Example responses
200 Response
{
"status": "string",
"message": "string",
"count": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | DeleteAssetsOut |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | BasicResponseWithMessage |
Export Assets in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: text/csv
const headers = {
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/export/csv
Returns a CSV file of Assets matching the current filters.
Example responses
200 Response
400 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
| 400 | Bad Request | none | BasicResponse |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | BasicResponseWithMessage |
Export selected Assets in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: text/csv
const inputBody = '{
"assets_id": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/export/csv
Returns a CSV file for the Assets whose IDs are in the request body.
Body parameter
{
"assets_id": [
0
]
}
assets_id:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | asset_id_seriliazer | true | none |
Example responses
200 Response
400 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
| 400 | Bad Request | none | BasicResponse |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | BasicResponseWithMessage |
Export Asset as JSON
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/export/json", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/export/json
Exports a single Asset with its Vulnerabilities and attack surface data as a JSON file.
Example responses
200 Response
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Asset |
Import Assets from CSV
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/import \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/import HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"organization": 0,
"file": "http://example.com",
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/import',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/import',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/import', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/import', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/import");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/import", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/import
Imports Assets from an uploaded CSV file into the given Organization.
Body parameter
{
"organization": 0,
"file": "http://example.com",
"teams": [
0
]
}
organization: 0
file: http://example.com
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | ImportCSVAsset | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
Get Asset Monitoring Metrics
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/metrics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/metrics
Returns the count of monitored and unmonitored Assets and the Organization pentest limit.
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
Get open Ports information for Assets
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/ports", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/ports
Returns open Port information for the Assets matching the given IDs.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"screenshot_url": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Asset |
Get Assets Statistics
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics?org_id=1 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics?org_id=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/statistics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/statistics
Return the statistics of the Assets. It contains the total number of Assets, the number of Assets with EASM protection, the number of Assets with PENTESTED protection, and the number of Assets with other protection.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset_owners | query | string | false | none |
| asset_tags | query | string | false | none |
| before | query | string(date) | false | none |
| belong_to_a_team | query | boolean | false | Filter assets that belong to at least one team. |
| belong_to_an_asset_group | query | boolean | false | Filter assets that belong to at least one asset group. |
| campaign | query | string | false | none |
| created_by | query | string | false | none |
| criticality | query | integer | false | * 1 - Low |
| cve | query | integer | false | none |
| delta | query | integer | false | none |
| description__icontains | query | string | false | none |
| group | query | string | false | none |
| group_not | query | string | false | none |
| groups_or | query | string | false | none |
| groups_value | query | string | false | none |
| ip_state | query | string | false | Filter by a list of ip states separated by comma. |
| ip_type | query | string | false | Filter by a list of ip types separated by comma. |
| liveness | query | string | false | none |
| no_tags | query | boolean | false | No Tags |
| not_asset_owner | query | string | false | none |
| org_id | query | integer | true | none |
| outside_business_hours | query | string | false | * 0 - unactivated |
| ports_available | query | boolean | false | none |
| protection | query | array[string] | false | Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| related_domains | query | array[integer] | false | none |
| related_ips | query | array[integer] | false | none |
| related_subdomains | query | array[integer] | false | none |
| score | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| top_domain | query | boolean | false | Filter domain Assets that are top domains. |
| type | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
| value | query | string | false | none |
| value__icontains | query | string | false | none |
Detailed descriptions
criticality: * 1 - Low
* 2 - Medium
* 3 - High
outside_business_hours: * 0 - unactivated
* 1 - activated
protection: Filters the assets based on their protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)description- Description-description- Description (desc)score- Score-score- Score (desc)type- Type-type- Type (desc)criticality- Criticality-criticality- Criticality (desc)created_at- Created at-created_at- Created at (desc)activevulns- Active vulnerabilities-activevulns- Active vulnerabilities (desc)asset_tags- Tags-asset_tags- Tags (desc)ports- Ports-ports- Ports (desc)groups- Groups-groups- Groups (desc)asset_owners- Owners-asset_owners- Owners (desc)created_by- Created_by with Patrowl last-created_by- Created_by (desc) with Patrowl first
Enumerated Values
| Parameter | Value |
|---|---|
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| outside_business_hours | 0 |
| outside_business_hours | 1 |
| protection | easm |
| protection | pentested |
| protection | unavailable |
| protection | unprotected |
| sorted_by | -activevulns |
| sorted_by | -asset_owners |
| sorted_by | -asset_tags |
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -criticality |
| sorted_by | -description |
| sorted_by | -groups |
| sorted_by | -id |
| sorted_by | -ports |
| sorted_by | -score |
| sorted_by | -type |
| sorted_by | -value |
| sorted_by | activevulns |
| sorted_by | asset_owners |
| sorted_by | asset_tags |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | criticality |
| sorted_by | description |
| sorted_by | groups |
| sorted_by | id |
| sorted_by | ports |
| sorted_by | score |
| sorted_by | type |
| sorted_by | value |
Example responses
200 Response
{
"all": {
"total": 0,
"since_last_week": 0
},
"easm": {
"total": 0,
"since_last_week": 0,
"remaining_credits": 0
},
"protected": {
"total": 0,
"since_last_week": 0,
"remaining_slots": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetStatsOut |
| 400 | Bad Request | none | BaseApiResponse |
| 403 | Forbidden | none | BaseApiResponse |
| 422 | Unprocessable Entity | none | BaseApiResponse |
Asset protection
Asset protection status and updates.
Retrieve Asset Protection Status
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/{id}/protection/
Returns the protection status and availability for a single Asset.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | query | integer | true | none |
Example responses
200 Response
{
"protection": {
"status": "unprotected",
"availability": "available"
},
"easm": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"auto": true,
"auto_from": "none",
"total_credits": 0,
"credits_in_use": 0
},
"pentested": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"slot_locked_until": "2019-08-24T14:15:22Z",
"outside_business_hours": 0,
"auto": true,
"auto_from": "none",
"total_slots": 0,
"slots_in_use": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetProtectionStatus |
Update Asset Protection
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"protection": "unprotected",
"outside_business_hours": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/{id}/protection/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/{id}/protection/
Updates the protection level of a single Asset.
Body parameter
{
"protection": "unprotected",
"outside_business_hours": 0
}
protection: unprotected
outside_business_hours: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | query | integer | true | none |
| body | body | PatchedProtectionUpdateSerializerIn | false | none |
Example responses
200 Response
{
"status": "success",
"message": "string",
"object": {
"protection": {
"status": "unprotected",
"availability": "available"
},
"easm": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"auto": true,
"auto_from": "none",
"total_credits": 0,
"credits_in_use": 0
},
"pentested": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"slot_locked_until": "2019-08-24T14:15:22Z",
"outside_business_hours": 0,
"auto": true,
"auto_from": "none",
"total_slots": 0,
"slots_in_use": 0
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ObjectUpdateResponse |
| 400 | Bad Request | none | BaseApiResponse |
| 403 | Forbidden | none | BaseApiResponse |
| 422 | Unprocessable Entity | none | BaseApiResponse |
Bulk update Asset Protection
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/?org_id=1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"asset_ids": [
0
],
"protection": "unprotected",
"outside_business_hours": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/?org_id=1',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/protection/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/protection/
Updates the protection level of multiple Assets in a single request.
Body parameter
{
"asset_ids": [
0
],
"protection": "unprotected",
"outside_business_hours": 0
}
asset_ids:
- 0
protection: unprotected
outside_business_hours: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | none |
| body | body | PatchedBulkProtectionUpdateSerializerIn | false | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Asset tags
Bulk operations on asset tags.
Associate Tags to Assets
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"asset_ids": [
1
],
"tag_ids": [
1
],
"organization_id": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/tags/
Associate Tags to Assets
Body parameter
{
"asset_ids": [
1
],
"tag_ids": [
1
],
"organization_id": 1
}
asset_ids:
- 1
tag_ids:
- 1
organization_id: 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AssetTagBulkCreate | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Dissociate Tags from Assets
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/tags/
Dissociate Tags from Assets. Can dissociate certain Tags from Assets or remove them all. Assetless Tags are deleted.
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Tags
Tag definitions and management.
List Tags
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/tags/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/tags/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/tags/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/tags/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tags/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/tags/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/tags/
Returns a paginated list of Tags. When related is True, it retuns all the fields. When related is False, it returns only the id and value fields.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| exclude_tag_asset | query | string | false | none |
| exclude_tag_asset_group | query | string | false | none |
| id | query | integer | false | none |
| is_asset_group_tag | query | boolean | false | none |
| is_asset_tag | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | string | false | The id of the organization to list tags from. |
| organization | query | integer | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| related | query | boolean | false | When True, the response will include related data. |
| search | query | string | false | Full-text case insensitive search on tag value and description. |
| sorted_by | query | array[string] | false | Ordering |
| used | query | boolean | false | Filter tags by their usage: true keeps tags linked to at least one asset or asset-group; false keeps orphan tags linked to nothing. |
| value | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)value- Value-value- Value (desc)organization- Organization-organization- Organization (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)created_by- Created by email (NULL last)-created_by- Created by email (desc, NULL first)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -id |
| sorted_by | -organization |
| sorted_by | -updated_at |
| sorted_by | -value |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | id |
| sorted_by | organization |
| sorted_by | updated_at |
| sorted_by | value |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTagListResponseList |
Create a Tag
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/tags/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/tags/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string",
"description": "",
"organization": 0,
"asset_ids": [
1
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/tags/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/tags/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tags/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/tags/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/tags/
Creates a Tag in the provided Organization.
Body parameter
{
"value": "string",
"description": "",
"organization": 0,
"asset_ids": [
1
]
}
value: string
description: ""
organization: 0
asset_ids:
- 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateTag | true | none |
Example responses
201 Response
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Tag |
Delete Tags
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/tags/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/tags/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/tags/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/tags/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/tags/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tags/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/tags/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/tags/
Deletes one or more Tags by ID.
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
Edit a Tag
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string",
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/tags/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/tags/{id}/
Updates a Tag's value and/or description.
Body parameter
{
"value": "string",
"description": "string"
}
value: string
description: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedUpdateTag | false | none |
Example responses
200 Response
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Tag |
Asset groups
Asset group management.
List Asset Groups
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/group/
Returns a paginated list of Asset Groups.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| asset_group_owners | query | string | false | none |
| asset_group_tags | query | string | false | none |
| belong_to_a_team | query | boolean | false | Filter asset groups that belong to at least one team. |
| criticality | query | integer | false | * 1 - Low |
| description__icontains | query | string | false | none |
| exclude_asset | query | string | false | none |
| is_dynamic | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| not_asset_group_owner | query | string | false | none |
| org_id | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tags | query | integer | false | none |
| tags_value | query | string | false | none |
| tags_value_union | query | string | false | none |
| team_not | query | integer | false | Filter assets that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user | query | integer | false | Filter assets that are accessible by the current user and another specific user. |
Detailed descriptions
criticality: * 1 - Low
* 2 - Medium
* 3 - High
sorted_by: Ordering
id- ID-id- ID (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)asset_group_tags- Tags-asset_group_tags- Tags (desc)assets- Assets-assets- Assets (desc)asset_group_owners- Asset Group Owners-asset_group_owners- Asset Group Owners (desc)is_dynamic- Dynamic-is_dynamic- Dynamic (desc)criticality- Criticality-criticality- Criticality (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| criticality | 1 |
| criticality | 2 |
| criticality | 3 |
| sorted_by | -asset_group_owners |
| sorted_by | -asset_group_tags |
| sorted_by | -assets |
| sorted_by | -created_at |
| sorted_by | -criticality |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -is_dynamic |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | asset_group_owners |
| sorted_by | asset_group_tags |
| sorted_by | assets |
| sorted_by | created_at |
| sorted_by | criticality |
| sorted_by | description |
| sorted_by | id |
| sorted_by | is_dynamic |
| sorted_by | title |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"assets": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"criticality": 1
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedAssetGroupLiteList |
Create an Asset Group
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/
Creates a new Asset Group in the given Organization.
Body parameter
{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}
title: string
description: string
organization: 0
tags:
- 0
owners:
- 0
is_dynamic: true
criticality: 1
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AssetGroup | true | none |
Example responses
201 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | AssetGroup |
Bulk delete Asset Groups
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/
Deletes multiple Asset Groups.
Example responses
204 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | none | BasicResponse |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Retrieve an Asset Group
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/group/{id}/
Returns detailed information for a single Asset Group including Assets, Tags, Owners, and Filters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetGroup |
Update an Asset Group (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/group/{id}/
Partially updates an Asset Group's fields.
Body parameter
{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}
title: string
description: string
organization: 0
tags:
- 0
owners:
- 0
is_dynamic: true
criticality: 1
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedAssetGroup | false | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetGroup |
Delete an Asset Group
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/{id}/
Deletes a single Asset Group.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Add Assets to an Asset Group
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"assets_id": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/{id}/assets
Adds one or more Assets to an Asset Group. Do not work with dynamic Asset Groups.
Body parameter
{
"assets_id": [
null
]
}
assets_id:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | assets_group_add_assets | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Assets from an Asset Group
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/{id}/assets
Removes one or more Assets from an Asset Group. Do not work with dynamic Asset Groups.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Add Filters to an Asset Group
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '[
{
"type": "asset_protection",
"operation": "string",
"value": "string"
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/{id}/filters
Adds one or more dynamic Filters to a dynamic Asset Group.
Body parameter
[
{
"type": "asset_protection",
"operation": "string",
"value": "string"
}
]
- type: asset_protection
operation: string
value: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | DynamicFilterGeneric | true | none |
Example responses
201 Response
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": "unprotected",
"type": "string",
"asset_group": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | DynamicFiltersBase |
| 400 | Bad Request | none | BasicResponseWithMessage |
Update an Asset Group Filter
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": null,
"id": 0,
"type": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/assets/group/{id}/filters
Updates an existing dynamic Filter on a dynamic Asset Group.
Body parameter
{
"value": null,
"id": 0,
"type": "string"
}
value: null
id: 0
type: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | update_asset_group_filters | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Delete Asset Group Filters
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/filters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/{id}/filters
Removes one or more dynamic Filters from a dynamic Asset Group.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Add Owners to an Asset Group
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/{id}/owners
Assigns one or more Users as Owners of an Asset Group.
Body parameter
{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}
title: string
description: string
organization: 0
tags:
- 0
owners:
- 0
is_dynamic: true
criticality: 1
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | AssetGroup | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetGroup |
Remove Owners from an Asset Group
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/{id}/owners
Removes one or more Users as Owners of an Asset Group.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Add a Tag to an Asset Group
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"value": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/{id}/tag
Associates a Tag with an Asset Group. If the Tag does not exist, it will be created.
Body parameter
{
"value": "string"
}
value: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | assets_group_add_tag | true | none |
Example responses
200 Response
{
"status": "string",
"data": {
"id": 0,
"value": "string",
"organization": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | response_assets_group_add_tag |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove a Tag from an Asset Group
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag} \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/tag/{pk_tag}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/group/{id}/tag/{pk_tag}
Dissociates a Tag from an Asset Group.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| pk_tag | path | integer | true | none |
Example responses
204 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
List Teams with their access status for the Asset Group
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/{id}/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/group/{id}/teams
List all Teams from the Organization with their access status to the Asset Group.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| has_access | query | boolean | false | Filter teams by access status (org admins only) |
| id | path | integer | true | none |
| org_id | query | integer | true | The id of the organization to filter teams from. Required. |
| search | query | string | false | Full-text case insensitive search in teams |
Example responses
200 Response
[
{
"id": 0,
"name": "string",
"description": "string",
"users": [
{
"id": 0,
"email": "user@example.com"
}
],
"has_access": true
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [TeamAccessBase] | false | none | [Serializer for team access information with users] |
| » id | integer | true | none | none |
| » name | string | true | none | none |
| » description | string | true | none | none |
| » users | [TeamAccessUser] | true | none | [Serializer for user information in team response.] |
| »» id | integer | true | none | none |
| string(email) | true | none | none | |
| » has_access | boolean | true | none | none |
Export Asset Groups in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/group/export/csv
Returns a CSV file of Asset Groups matching the current filters.
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetGroup |
Export selected Asset Groups in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/group/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/group/export/csv
Returns a CSV file for the Asset Groups whose IDs are in the request body.
Body parameter
{
"title": "string",
"description": "string",
"organization": 0,
"tags": [
0
],
"owners": [
0
],
"is_dynamic": true,
"criticality": 1,
"teams": [
0
]
}
title: string
description: string
organization: 0
tags:
- 0
owners:
- 0
is_dynamic: true
criticality: 1
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AssetGroup | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AssetGroup |
Auto-tag policies
Automatic tagging policies and filters.
List Auto-Tag Policies
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/tags/policies/
Returns a paginated list of Auto-Tag Policies.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| before | query | string(date) | false | none |
| is_enabled | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| tag_value | query | string | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)title- Title-title- Title (desc)tag_value- Tag Value-tag_value- Tag Value (desc)updated_at- Updated at Value-updated_at- Updated at (desc)created_at- Created at Value-created_at- Created at (desc)is_enabled- Is Enabled Value-is_enabled- Is Enabled (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -is_enabled |
| sorted_by | -tag_value |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | is_enabled |
| sorted_by | tag_value |
| sorted_by | title |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedAutoTagPolicyList |
Create an Auto-Tag Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"is_enabled": true,
"tag": "string",
"organization": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/tags/policies/
Creates a new Auto-Tag Policy in the given Organization.
Body parameter
{
"title": "string",
"is_enabled": true,
"tag": "string",
"organization": 0
}
title: string
is_enabled: true
tag: string
organization: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AutoTagPolicy | true | none |
Example responses
201 Response
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | AutoTagPolicy |
Retrieve an Auto-Tag Policy
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/assets/tags/policies/{id}/
Returns detailed information for a single Auto-Tag Policy.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AutoTagPolicy |
Update an Auto-Tag Policy (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"is_enabled": true,
"tag": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/tags/policies/{id}/
Partially updates an Auto-Tag Policy's fields.
Body parameter
{
"title": "string",
"is_enabled": true,
"tag": "string"
}
title: string
is_enabled: true
tag: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedUpdateAutoTagPolicy | false | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | UpdateAutoTagPolicy |
Delete an Auto-Tag Policy
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/assets/tags/policies/{id}/
Deletes a single Auto-Tag Policy and optionally removes associated Tags from Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Add Filters to an Auto-Tag Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"filters": {
"field": "asset_value",
"operation": "contains",
"value": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/tags/policies/{id}/filters/
Adds one or more Filters to an Auto-Tag Policy.
Body parameter
{
"filters": {
"field": "asset_value",
"operation": "contains",
"value": "string"
}
}
filters:
field: asset_value
operation: contains
value: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | add_filters_serializer_request | true | none |
Example responses
200 Response
{
"results": [
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | add_filters_serializer_response |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Filters from an Auto-Tag Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{id}/filters/remove/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/tags/policies/{id}/filters/remove/
Removes one or more Filters from an Auto-Tag Policy.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | IDsList | true | none |
Example responses
201 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | AutoTagPoliciesRemoveFiltersSuccess |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Update an Auto-Tag Policy Filter
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"operation": "exact",
"value": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/assets/tags/policies/{policy_id}/filters/{filter_id}/
Partially updates a Filter linked to an Auto-Tag Policy.
Body parameter
{
"operation": "exact",
"value": "string"
}
operation: exact
value: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| filter_id | path | integer | true | none |
| policy_id | path | integer | true | none |
| body | body | PatchedAutotagFiltersUpdateIn | false | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | AutotagFiltersUpdateOut |
Bulk delete Auto-Tag Policies
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
[
0
]
],
"remove_tag": false,
"remove_tag_all": false
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/assets/tags/policies/delete/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/assets/tags/policies/delete/
Deletes multiple Auto-Tag Policies and optionally removes associated Tags from Assets.
Body parameter
{
"ids": [
[
0
]
],
"remove_tag": false,
"remove_tag_all": false
}
ids:
- - 0
remove_tag: false
remove_tag_all: false
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AutoTagPolicyBulkDelete | true | none |
Example responses
201 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | AutoTagPoliciesBulkDeleteSuccess |
| 400 | Bad Request | none | BasicResponseWithMessage |
Domains
Domain discovery and details.
List Domains
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/domain/
Returns a paginated list of Domains.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset | query | integer | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| name | query | string | false | none |
| name__icontains | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)name- Name-name- Name (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -name |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | name |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"asset": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0,
"parent_domain": {
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
},
"subdomains": [
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
],
"whois": {
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
},
"is_registered": true,
"dnsrecords": [
null
],
"ip_addresses": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
],
"popularity_ranks": [
null
],
"categories": [
null
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedDomainList |
Retrieve a Domain
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/domain/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/domain/{id}/
Returns detailed information for a single Domain by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"asset": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0,
"parent_domain": {
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
},
"subdomains": [
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
],
"whois": {
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
},
"is_registered": true,
"dnsrecords": [
null
],
"ip_addresses": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
],
"popularity_ranks": [
null
],
"categories": [
null
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Domain |
Subdomains
Subdomain enumeration and details.
List Subdomains
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/subdomain/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/subdomain/
Returns a paginated list of Subdomains.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset | query | integer | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| name | query | string | false | none |
| name__icontains | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)name- Name-name- Name (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -name |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | name |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"asset": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0,
"parent_domain": {
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
},
"subdomains": [
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
],
"whois": {
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
},
"is_registered": true,
"dnsrecords": [
null
],
"ip_addresses": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
],
"popularity_ranks": [
null
],
"categories": [
null
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedDomainList |
IP addresses
IP address inventory and metadata.
List IP Addresses
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/ip-address/
Returns a paginated list of IP Addresses.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | query | string | false | none |
| address__icontains | query | string | false | none |
| asset | query | integer | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| type | query | string | false | * cdn - Cdn |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)address- Address-address- Address (desc)type- Type-type- Type (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
type: * cdn - Cdn
* saas - Saas
* waf - Waf
* cloud - Cloud
* static - Static
* other - Other
* private - Private
* unknown - Unknown
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -address |
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -type |
| sorted_by | -updated_at |
| sorted_by | address |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | type |
| sorted_by | updated_at |
| type | cdn |
| type | cloud |
| type | other |
| type | private |
| type | saas |
| type | static |
| type | unknown |
| type | waf |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"asset": 0,
"address": "string",
"type": "cdn",
"in_blocklist": true,
"general_infos": {
"id": 0,
"asn_cidr": "string",
"asn_number": "string",
"asn_registry": "string",
"asn_description": "string",
"asn_country_code": "string"
},
"domains": [
{
"id": 0,
"name": "string",
"asset_id": 0,
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
}
}
],
"blocklists": [
null
],
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedIPAddressList |
Retrieve an IP Address
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/ip-address/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/ip-address/{id}/
Returns detailed information for a single IP Address by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"asset": 0,
"address": "string",
"type": "cdn",
"in_blocklist": true,
"general_infos": {
"id": 0,
"asn_cidr": "string",
"asn_number": "string",
"asn_registry": "string",
"asn_description": "string",
"asn_country_code": "string"
},
"domains": [
{
"id": 0,
"name": "string",
"asset_id": 0,
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
}
}
],
"blocklists": [
null
],
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | IPAddress |
Ports
Open ports and services.
List Ports
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/port/
Returns a paginated list of open Ports discovered on Organization Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| created_at | query | string(date-time) | false | none |
| id | query | integer | false | none |
| ip_address | query | integer | false | none |
| is_ssl | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| number | query | integer | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| protocol | query | string | false | * tcp - TCP |
| search | query | string | false | none |
| service_name | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| state | query | string | false | * open - Open |
| updated_at | query | string(date-time) | false | none |
| web_server | query | number | false | Web server |
Detailed descriptions
protocol: * tcp - TCP
* udp - UDP
sorted_by: Ordering
id- ID-id- ID (desc)number- Number-number- Number (desc)protocol- Protocol-protocol- Protocol (desc)state- State-state- State (desc)service_name- Service Name-service_name- Service Name (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
state: * open - Open
* filtered - Filtered
* closed - Closed
* unknown - Unknown
Enumerated Values
| Parameter | Value |
|---|---|
| protocol | tcp |
| protocol | udp |
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -number |
| sorted_by | -protocol |
| sorted_by | -service_name |
| sorted_by | -state |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | number |
| sorted_by | protocol |
| sorted_by | service_name |
| sorted_by | state |
| sorted_by | updated_at |
| state | closed |
| state | filtered |
| state | open |
| state | unknown |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"ip_address": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"certificates": [
{
"id": 0,
"port": 0,
"host": "string",
"serial_number": "string",
"data_text": "string"
}
],
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
],
"webservers": [
{
"id": 0,
"url": "string",
"server": "string",
"title": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedPortList |
Retrieve a Port
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/port/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/port/{id}/
Returns detailed information for a single Port by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"ip_address": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"certificates": [
{
"id": 0,
"port": 0,
"host": "string",
"serial_number": "string",
"data_text": "string"
}
],
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
],
"webservers": [
{
"id": 0,
"url": "string",
"server": "string",
"title": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Port |
Web servers
Web server fingerprinting.
List Web Servers
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/web/
Returns a paginated list of Web Servers discovered on Organization Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset | query | integer | false | Asset |
| created_at | query | string(date-time) | false | none |
| host | query | string | false | none |
| id | query | integer | false | none |
| jarm | query | string | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
| server | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| status_code | query | string | false | none |
| title | query | string | false | none |
| updated_at | query | string(date-time) | false | none |
| url | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)host- Host-host- Host (desc)url- URL-url- URL (desc)server- Server-server- Server (desc)title- Title-title- Title (desc)status_code- Status Code-status_code- Status Code (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -host |
| sorted_by | -id |
| sorted_by | -server |
| sorted_by | -status_code |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -url |
| sorted_by | created_at |
| sorted_by | host |
| sorted_by | id |
| sorted_by | server |
| sorted_by | status_code |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | url |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"host": "string",
"url": "string",
"server": "string",
"path": "string",
"title": "string",
"asset": 0,
"response_time": "string",
"status_code": "string",
"content_length": "string",
"content_type": "string",
"jarm": "string",
"favicon_hash": "string",
"technologies": [
null
],
"ips": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
]
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedWebServerList |
Retrieve a Web Server
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/web/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/web/{id}/
Returns detailed information for a single Web Server by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"host": "string",
"url": "string",
"server": "string",
"path": "string",
"title": "string",
"asset": 0,
"response_time": "string",
"status_code": "string",
"content_length": "string",
"content_type": "string",
"jarm": "string",
"favicon_hash": "string",
"technologies": [
null
],
"ips": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
]
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | WebServer |
Certificates
TLS certificate inventory.
List Certificates
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cert/
Returns a paginated list of TLS Certificates discovered on Organization Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset | query | integer | false | Asset |
| created_at | query | string(date-time) | false | none |
| host | query | string | false | none |
| id | query | integer | false | none |
| is_expired | query | boolean | false | none |
| is_mismatched | query | boolean | false | none |
| is_selfsigned | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| port | query | integer | false | none |
| search | query | string | false | Search |
| serial_number | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| updated_at | query | string(date-time) | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)port- Port-port- Port (desc)host- Host-host- Host (desc)serial_number- Serial Number-serial_number- Serial Number (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -host |
| sorted_by | -id |
| sorted_by | -port |
| sorted_by | -serial_number |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | host |
| sorted_by | id |
| sorted_by | port |
| sorted_by | serial_number |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"port": -2147483648,
"host_id": 0,
"host": "string",
"serial_number": "string",
"data_text": "string",
"data_pem": "string",
"data_parsed": null,
"is_expired": true,
"is_mismatched": true,
"is_selfsigned": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedCertificateList |
Retrieve a Certificate
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cert/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cert/{id}/
Returns detailed information for a single Certificate by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"port": -2147483648,
"host_id": 0,
"host": "string",
"serial_number": "string",
"data_text": "string",
"data_pem": "string",
"data_parsed": null,
"is_expired": true,
"is_mismatched": true,
"is_selfsigned": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Certificate |
Technologies
Detected technologies on assets.
List Products
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/product/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/product/
Returns a paginated list of software Products referenced by detected Technologies.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| ordering | query | string | false | Which field to use when ordering the results. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"vendor": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedNewProductList |
List Vendors
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/vendor/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/vendor/
Returns a paginated list of software Vendors referenced by detected Technologies.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| ordering | query | string | false | Which field to use when ordering the results. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | none |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedVendorList |
CVEs
CVE intelligence and statistics.
List CVEs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cve/
List the CVEs with page number pagination.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| asset_id | query | integer | false | none |
| asset_liveness | query | string | false | * unknown - Unknown |
| before | query | string(date) | false | none |
| is_exploitable | query | boolean | false | none |
| is_in_the_news | query | boolean | false | none |
| is_in_the_wild | query | boolean | false | none |
| is_kev | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| product | query | integer | false | none |
| related_to_org_assets | query | boolean | false | none |
| search | query | string | false | Search in the CVE identifier. |
| severity | query | integer | false | * 0 - Info |
| sorted_by | query | array[string] | false | Ordering |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| vendor | query | integer | false | none |
Detailed descriptions
asset_liveness: * unknown - Unknown
* up - Up
* down - Down
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
sorted_by: Ordering
identifier- Identifier-identifier- Identifier (descending)-identifier- -identifier--identifier- -identifier (descending)severity- Severity-severity- Severity (descending)-severity- -severity--severity- -severity (descending)cvss_score- Cvss score-cvss_score- Cvss score (descending)-cvss_score- -cvss score--cvss_score- -cvss score (descending)published_at- Published at-published_at- Published at (descending)-published_at- -published at--published_at- -published at (descending)description- Description-description- Description (descending)-description- -description--description- -description (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| severity | null |
| sorted_by | --cvss_score |
| sorted_by | --description |
| sorted_by | --identifier |
| sorted_by | --published_at |
| sorted_by | --severity |
| sorted_by | -cvss_score |
| sorted_by | -cvss_score |
| sorted_by | -description |
| sorted_by | -description |
| sorted_by | -identifier |
| sorted_by | -identifier |
| sorted_by | -published_at |
| sorted_by | -published_at |
| sorted_by | -severity |
| sorted_by | -severity |
| sorted_by | cvss_score |
| sorted_by | description |
| sorted_by | identifier |
| sorted_by | published_at |
| sorted_by | severity |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
],
"related_assets_count": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedCVEList |
Retrieve a CVE by its identifier
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}?org_id=1 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}?org_id=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/{identifier}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cve/{identifier}
Retrieve a CVE by its identifier.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| identifier | path | string | true | none |
| org_id | query | integer | true | none |
Example responses
200 Response
{
"id": 0,
"identifier": "string",
"cwe": "string",
"cwe_name": "string",
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"exploits": [
{
"id": 0,
"reference": "http://example.com",
"source": "string",
"published_at": "2019-08-24T14:15:22Z",
"modified_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
],
"cvss_score": 0.1,
"cvss_vector": "string",
"cvss_version": "4",
"epss_score": 0.1,
"epss_percentile": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"published_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | CVEDetailSerializerOut |
Retrieve CVEs count
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/count/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cve/count/
Retrieve the count of CVEs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| asset_id | query | integer | false | none |
| asset_liveness | query | string | false | * unknown - Unknown |
| before | query | string(date) | false | none |
| is_exploitable | query | boolean | false | none |
| is_in_the_news | query | boolean | false | none |
| is_in_the_wild | query | boolean | false | none |
| is_kev | query | boolean | false | none |
| product | query | integer | false | none |
| related_to_org_assets | query | boolean | false | none |
| search | query | string | false | Search in the CVE identifier. |
| severity | query | integer | false | * 0 - Info |
| sorted_by | query | array[string] | false | Ordering |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| vendor | query | integer | false | none |
Detailed descriptions
asset_liveness: * unknown - Unknown
* up - Up
* down - Down
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
sorted_by: Ordering
identifier- Identifier-identifier- Identifier (descending)-identifier- -identifier--identifier- -identifier (descending)severity- Severity-severity- Severity (descending)-severity- -severity--severity- -severity (descending)cvss_score- Cvss score-cvss_score- Cvss score (descending)-cvss_score- -cvss score--cvss_score- -cvss score (descending)published_at- Published at-published_at- Published at (descending)-published_at- -published at--published_at- -published at (descending)description- Description-description- Description (descending)-description- -description--description- -description (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| severity | null |
| sorted_by | --cvss_score |
| sorted_by | --description |
| sorted_by | --identifier |
| sorted_by | --published_at |
| sorted_by | --severity |
| sorted_by | -cvss_score |
| sorted_by | -cvss_score |
| sorted_by | -description |
| sorted_by | -description |
| sorted_by | -identifier |
| sorted_by | -identifier |
| sorted_by | -published_at |
| sorted_by | -published_at |
| sorted_by | -severity |
| sorted_by | -severity |
| sorted_by | cvss_score |
| sorted_by | description |
| sorted_by | identifier |
| sorted_by | published_at |
| sorted_by | severity |
Example responses
200 Response
{
"count": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Count |
Retrieve the last refresh time of the CVEs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/last-refresh-time/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cve/last-refresh-time/
Retrieve the last refresh time of the CVEs.
Example responses
200 Response
{
"last_refresh_time": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | SynchronizationLastRefreshTime |
Retrieve related Asset's count for a list of CVEs
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/?org_id=1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/?org_id=1',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/related-assets-count/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/asm/cve/related-assets-count/
Retrieve the count of related Assets for a list of CVEs.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset_availability | query | string | false | * unknown - Unknown |
| org_id | query | integer | true | none |
| teams | query | array[integer] | false | none |
| body | body | IDsList | true | none |
Detailed descriptions
asset_availability: * unknown - Unknown
* up - Up
* down - Down
Enumerated Values
| Parameter | Value |
|---|---|
| asset_availability | unknown |
| asset_availability | up |
| asset_availability | down |
| asset_availability | null |
Example responses
200 Response
{
"counts": [
{
"id": 1,
"count": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | RelatedAssetSerializerOut |
List CVEs with cursor pagination
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/?org_id=1 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/?org_id=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/asm/cve/v2/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/asm/cve/v2/
List CVEs paginated by their date of publication. The list is sorted by the date of publication in descending order.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| asset_id | query | integer | false | none |
| asset_liveness | query | string | false | * unknown - Unknown |
| before | query | string(date) | false | none |
| cursor | query | string | false | The pagination cursor value. |
| is_exploitable | query | boolean | false | none |
| is_in_the_news | query | boolean | false | none |
| is_in_the_wild | query | boolean | false | none |
| is_kev | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | integer | true | none |
| product | query | integer | false | none |
| related_to_org_assets | query | boolean | false | none |
| search | query | string | false | Search in the CVE identifier. |
| severity | query | integer | false | * 0 - Info |
| sorted_by | query | array[string] | false | Ordering |
| teams | query | array[integer] | false | none |
| technology | query | integer | false | none |
| vendor | query | integer | false | none |
Detailed descriptions
asset_liveness: * unknown - Unknown
* up - Up
* down - Down
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
sorted_by: Ordering
identifier- Identifier-identifier- Identifier (descending)-identifier- -identifier--identifier- -identifier (descending)severity- Severity-severity- Severity (descending)-severity- -severity--severity- -severity (descending)cvss_score- Cvss score-cvss_score- Cvss score (descending)-cvss_score- -cvss score--cvss_score- -cvss score (descending)published_at- Published at-published_at- Published at (descending)-published_at- -published at--published_at- -published at (descending)description- Description-description- Description (descending)-description- -description--description- -description (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| severity | null |
| sorted_by | --cvss_score |
| sorted_by | --description |
| sorted_by | --identifier |
| sorted_by | --published_at |
| sorted_by | --severity |
| sorted_by | -cvss_score |
| sorted_by | -cvss_score |
| sorted_by | -description |
| sorted_by | -description |
| sorted_by | -identifier |
| sorted_by | -identifier |
| sorted_by | -published_at |
| sorted_by | -published_at |
| sorted_by | -severity |
| sorted_by | -severity |
| sorted_by | cvss_score |
| sorted_by | description |
| sorted_by | identifier |
| sorted_by | published_at |
| sorted_by | severity |
Example responses
200 Response
{
"next": "string",
"previous": "string",
"results": [
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedCVESerializerV2List |
Vulnerabilities
Vulnerability findings and management.
List Vulnerabilities
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/
Returns a paginated list of Vulnerabilities.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | Filters by source of vulnerability. Free search filter that accepts the following specific entries: |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
source: Filters by source of vulnerability. Free search filter that accepts the following specific entries:
source_patrowl- source_patrowlsource_ri_user- source_ri_usersource_ri_policy- source_ri_policysource_typosquatting- source_typosquattingsource_cybelangel- source_cybelangelsource_campaign- source_campaignsource_user- source_user
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| source | source_patrowl |
| source | source_ri_user |
| source | source_ri_policy |
| source | source_typosquatting |
| source | source_cybelangel |
| source | source_campaign |
| source | source_user |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"user_friendly_id": "string",
"description": "string",
"solution_headline": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"is_quickwin": true,
"title": "string",
"source": "string",
"status": "new",
"severity": 0,
"asset_id": "string",
"asset_value": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_criticality": "string",
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"asset": 0,
"asset_outside_business_hours": 0,
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"last_ticket": {
"property1": null,
"property2": null
},
"solution_duedate": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedVulnerabilityLiteList |
Create a Vulnerability
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/
Creates a new Vulnerability on an Asset.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Vulnerability | true | none |
Example responses
201 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Vulnerability |
Bulk update Vulnerability Status
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"vulnerabilities_id": [
null
],
"status": "new"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/vulns/
Updates the status of multiple Vulnerabilities at once.
Body parameter
{
"vulnerabilities_id": [
null
],
"status": "new"
}
vulnerabilities_id:
- null
status: new
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Patchedbulk_update_vulns_status | false | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
Bulk delete Vulnerabilities
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/vulns/
Deletes multiple Vulnerabilities. Only Vulnerabilities that are not created by Patrowl or from Risk Insight can be deleted.
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Retrieve a Vulnerability
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/
Returns detailed information for a single Vulnerability.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Vulnerability |
Update a Vulnerability (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/vulns/{id}/
Partially updates Vulnerability fields (excluding Owners and Solution Owners).
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedVulnerability | false | none |
Example responses
200 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Vulnerability |
Delete a Vulnerability
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/vulns/{id}/
Deletes a Vulnerability if it was not created by Patrowl or a Risk Insight.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Upload Vulnerability Attachment
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"file": "http://example.com"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/attachements", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/{id}/attachements
Uploads an image Attachment to a Vulnerability.
Body parameter
{
"title": "string",
"file": "http://example.com"
}
title: string
file: http://example.com
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | upload_file_attachements | true | none |
Example responses
201 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Create a Vulnerability Comment
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/{id}/comments
Adds a new observation Comment to a Vulnerability.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Vulnerability | true | none |
Example responses
201 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | string |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Edit a Vulnerability Comment
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/comments/{comment_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/vulns/{id}/comments/{comment_id}
Updates an existing observation Comment on a Vulnerability.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| comment_id | path | integer | true | none |
| id | path | integer | true | none |
| body | body | PatchedVulnerability | false | none |
Example responses
200 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
| 404 | Not Found | none | NotFoundResponseWithDetail |
List Vulnerability Events
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/events", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/events
Returns a paginated list of Events and Comments for a Vulnerability.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | path | integer | true | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"author": "user@example.com",
"text": "string",
"scope": "string",
"updated_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedEventCommentList |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Add Vulnerability Owners
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/{id}/owners
Assigns one or more Users as Owners of a Vulnerability.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Vulnerability | true | none |
Example responses
200 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Vulnerability |
Remove Vulnerability Owners
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/vulns/{id}/owners
Removes one or more Users from a Vulnerability's Owners.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Get periodic Retest Status
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/periodic-retest", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/periodic-retest
Returns the status and last Retest date of a Vulnerability's periodic Retest.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string",
"last_retest_date": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | get-periodic-retest |
| 404 | Not Found | none | NotFoundResponseWithDetail |
List Vulnerability Retests
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/retests
Returns a paginated list of Retests for a Vulnerability.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | path | integer | true | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedRetestList |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Request a Vulnerability Retest
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/retests/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/retests/add
Enqueues a new Retest request for a Vulnerability, subject to Organization limits.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
400 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
| 429 | Too Many Requests | none | BasicResponseWithMessage |
Add Vulnerability Solution Owners
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/{id}/solution-owners
Assigns one or more Users as Solution Owners of a Vulnerability.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Vulnerability | true | none |
Example responses
200 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Vulnerability |
Remove Vulnerability Solution Owners
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/solution-owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/vulns/{id}/solution-owners
Removes one or more Users from a Vulnerability's Solution Owners.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
List Vulnerability Tickets
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{id}/tickets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{id}/tickets
Returns a paginated list of Tickets linked to a Vulnerability.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | path | integer | true | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"identifier": "string",
"status": 0,
"status_name": "string",
"link": "string",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTicketList |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Retrieve a Vulnerability by User-friendly ID
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/{user_friendly_id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/{user_friendly_id}/
Returns detailed information for a Vulnerability identified by its User-friendly ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user_friendly_id | path | string | true | none |
Example responses
200 Response
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Vulnerability |
Delete Vulnerability Attachment
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/attachements/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/vulns/attachements/{id}/
Deletes a user-uploaded file Attachment from a Vulnerability.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
204 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | none | string |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Count Vulnerabilities by solution effort
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-efforts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/by-efforts
Returns the count of Vulnerabilities grouped by solution effort.
Example responses
200 Response
{
"efforts": {
"low": 0,
"medium": 0,
"high": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | by-efforts |
Count Vulnerabilities by solution priority
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-priorities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/by-priorities
Returns the count of active Vulnerabilities grouped by solution priority.
Example responses
200 Response
{
"priorities": {
"hardening": 0,
"moderate": 0,
"urgent": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | by-priorities |
Count Vulnerabilities by severity and age
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-severity-and-time", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/by-severity-and-time
Returns Vulnerability counts grouped by severity and time interval.
Example responses
200 Response
{
"data": [
{
"interval": "string",
"critical": "string",
"high": "string",
"info": "string",
"low": "string",
"medium": "string",
"quickwin": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | by-severity-time |
Count Vulnerabilities by Status
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/by-vulns-status", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/by-vulns-status
Returns the count of open and closed Vulnerabilities.
Example responses
200 Response
{
"vulns_status": {
"open": 0,
"close": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | by-vuln-status |
Export Vulnerabilities in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: text/csv
const headers = {
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/export/csv
Returns a CSV file of Vulnerabilities matching the query filters.
Example responses
200 Response
400 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
Export selected Vulnerabilities in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: text/csv
const inputBody = '{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/export/csv
Returns a CSV file for the Vulnerabilities whose IDs are in the request body.
Body parameter
{
"patrowl_id": -2147483648,
"asset": 0,
"organization": 0,
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"source": "string",
"external_id": null,
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"ticketstatus": -2147483648,
"solution_owners": [
0
],
"updated_by_user_at": "2019-08-24T14:15:22Z"
}
patrowl_id: -2147483648
asset: 0
organization: 0
severity: 0
cvss_vector: string
cvss_score: 10
status: new
title: string
description: string
source: string
external_id: null
has_exploit: true
solution_headline: string
solution: string
solution_priority: urgent
solution_effort: low
solution_gain: -2147483648
owners:
- 0
solution_duedate: 2019-08-24T14:15:22Z
is_quickwin: true
is_auto: true
is_greybox: true
remediation_date: 2019-08-24T14:15:22Z
last_status_update: 2019-08-24T14:15:22Z
found_at: 2019-08-24T14:15:22Z
last_checked_at: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
ticketstatus: -2147483648
solution_owners:
- 0
updated_by_user_at: 2019-08-24T14:15:22Z
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Vulnerability | true | none |
Example responses
200 Response
400 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
Bulk remove Vulnerability Owners
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/owners/clear", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/vulns/owners/clear
Clears all Owners and Solution Owners from multiple Vulnerabilities.
Body parameter
{
"ids": [
null
]
}
ids:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | bulk_remove_owners | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
Retrieve the count of Vulnerabilities by severity.
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/severities
Retrieve the count of Vulnerabilities by severity.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"severities": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"info": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | VulnerabilityBySeverity |
Retrieve the count of Vulnerabilities by severity over time.
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/over-time", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/severities/over-time
Retrieve the count of Vulnerabilities by severity over time.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"severities": {
"critical": [
0
],
"high": [
0
],
"medium": [
0
],
"low": [
0
],
"info": [
0
]
},
"labels": [
""
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | OverTime |
Retrieve the statistics of Vulnerabilities.
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/severities/statistics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/severities/statistics
Retrieve the statistics of Vulnerabilities. It corresponds to the number of opened and closed Vulnerabilities on the last 7 days.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accessible_by_users | query | array[integer] | false | none |
| after | query | string(date) | false | none |
| asset__type | query | string | false | Deprecated: use CoreAsset.type instead. |
| asset__value | query | string | false | none |
| asset_value_icontains | query | string | false | none |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the vulns by the linked asset's asset_groups. |
| asset_id | query | number | false | none |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | none |
| asset_value | query | string | false | none |
| assets_id | query | string | false | none |
| before | query | string(date) | false | none |
| campaign | query | string | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| id | query | integer | false | none |
| insight_policy | query | string | false | none |
| is_auto | query | boolean | false | none |
| is_greybox | query | boolean | false | none |
| not_remediation_id | query | string | false | none |
| not_vuln_owner | query | array[integer] | false | none |
| not_vuln_solution_owner | query | array[integer] | false | none |
| org | query | string | false | none |
| overdue | query | boolean | false | none |
| remediation_id | query | string | false | none |
| reteststatus | query | array[string] | false | Multiple values may be separated by commas. |
| search | query | string | false | none |
| security_check | query | string | false | none |
| severity | query | integer | false | * 0 - Info |
| solution__icontains | query | string | false | none |
| solution_effort | query | string | false | * low - Low |
| solution_gain | query | integer | false | none |
| solution_gain__gte | query | integer | false | none |
| solution_gain__lte | query | integer | false | none |
| solution_headline | query | string | false | none |
| solution_headline__icontains | query | string | false | none |
| solution_priority | query | string | false | * urgent - Urgent |
| sorted_by | query | array[string] | false | Ordering |
| source | query | string | false | none |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
| ticketstatus | query | integer | false | none |
| title | query | string | false | none |
| title__icontains | query | string | false | none |
| user_friendly_id | query | string | false | none |
| user_friendly_id__icontains | query | string | false | none |
| vuln_owners | query | string | false | none |
| vuln_solution_owners | query | string | false | none |
Detailed descriptions
asset__type: Deprecated: use CoreAsset.type instead.
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the vulnerabilities depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
severity: * 0 - Info
* 1 - Low
* 2 - Medium
* 3 - High
* 4 - Critical
solution_effort: * low - Low
* medium - Medium
* high - High
solution_priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
id- ID-id- ID (desc)severity- Severity-severity- Severity (desc)asset_value- Asset Value-asset_value- Asset Value (desc)user_friendly_id- User Friendly ID-user_friendly_id- User Friendly ID (desc)source- Source-source- Source (desc)title- Title-title- Title (desc)description- Description-description- Description (desc)status- Status-status- Status (desc)solution_priority- Solution Priority-solution_priority- Solution Priority (desc)solution_effort- Solution Effort-solution_effort- Solution Effort (desc)solution_gain- Solution Gain-solution_gain- Solution Gain (desc)solution_headline- Solution Headline-solution_headline- Solution Headline (desc)solution_duedate- Solution Due Date-solution_duedate- Solution Due Date (desc)solution- Solution-solution- Solution (desc)ticketstatus- Ticket status-ticketstatus- Ticket status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)remediation_date- Remediation at-remediation_date- Remediation at (desc)last_status_update- Last Status Update-last_status_update- Last Status Update (desc)vuln_owners- Owners-vuln_owners- Owners (desc)vuln_solution_owners- Owners-vuln_solution_owners- Owners (desc)reteststatus- Status of last retest-reteststatus- Status of last retest (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| asset__type | domain |
| asset__type | fqdn |
| asset__type | ip |
| asset__type | ip-range |
| asset__type | ip-subnet |
| asset__type | keyword |
| asset__type | other |
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| solution_effort | high |
| solution_effort | low |
| solution_effort | medium |
| solution_priority | hardening |
| solution_priority | moderate |
| solution_priority | urgent |
| sorted_by | -asset_value |
| sorted_by | -created_at |
| sorted_by | -description |
| sorted_by | -id |
| sorted_by | -last_status_update |
| sorted_by | -remediation_date |
| sorted_by | -reteststatus |
| sorted_by | -severity |
| sorted_by | -solution |
| sorted_by | -solution_duedate |
| sorted_by | -solution_effort |
| sorted_by | -solution_gain |
| sorted_by | -solution_headline |
| sorted_by | -solution_priority |
| sorted_by | -source |
| sorted_by | -status |
| sorted_by | -ticketstatus |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -user_friendly_id |
| sorted_by | -vuln_owners |
| sorted_by | -vuln_solution_owners |
| sorted_by | asset_value |
| sorted_by | created_at |
| sorted_by | description |
| sorted_by | id |
| sorted_by | last_status_update |
| sorted_by | remediation_date |
| sorted_by | reteststatus |
| sorted_by | severity |
| sorted_by | solution |
| sorted_by | solution_duedate |
| sorted_by | solution_effort |
| sorted_by | solution_gain |
| sorted_by | solution_headline |
| sorted_by | solution_priority |
| sorted_by | source |
| sorted_by | status |
| sorted_by | ticketstatus |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | user_friendly_id |
| sorted_by | vuln_owners |
| sorted_by | vuln_solution_owners |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"open": {
"total": 0,
"since_last_week": 0
},
"close": {
"total": 0,
"since_last_week": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Statistics |
Get average times to fix Vulnerabilities
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix?org_id=1 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix?org_id=1 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix?org_id=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix', params={
'org_id': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix?org_id=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/vulns/times-to-fix", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/vulns/times-to-fix
Returns average time-to-fix metrics per severity for a given Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | none |
Example responses
200 Response
{
"info": 0,
"low": 0,
"medium": 0,
"high": 0,
"critical": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | VulnerabilitiesTimesToFixSerializerOut |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
Retests
Vulnerability retest workflows.
List Retests
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/retests/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/retests/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/retests/
Returns a paginated list of Vulnerability Retests.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| created_at | query | string(date-time) | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | string | false | * none - None |
| updated_at | query | string(date-time) | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)status- Status-status- Status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
status: * none - None
* pending - Pending
* in-progress - In Progress
* done-fixed - Done (Fixed)
* done-not-fixed - Done (Not Fixed)
* error - Error
* canceled - Canceled
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -status |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | status |
| sorted_by | updated_at |
| status | canceled |
| status | done-fixed |
| status | done-not-fixed |
| status | error |
| status | in-progress |
| status | none |
| status | pending |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedRetestList |
Retrieve a Retest
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/retests/{id}/
Returns detailed information for a single Vulnerability Retest.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Retest |
Update Retest Comment
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"comment": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/retests/{id}/
Updates the Comment on a Vulnerability Retest.
Body parameter
{
"comment": "string"
}
comment: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | retests_update_comment | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Cancel a Retest
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/cancel", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/retests/{id}/cancel
Cancels a Vulnerability Retest.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Refresh a Retest
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/{id}/refresh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/retests/{id}/refresh
Fetches the latest Retest status.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Retest |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Get Retest Settings
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/retests/settings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/retests/settings
Returns Retest limits and remaining quota for an Organization.
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remediations
Remediation tracking.
List Remediations
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/remediations', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/remediations', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/remediations
Returns a paginated list of custom Remediations.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date-time) | false | none |
| before | query | string(date-time) | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| effort | query | string | false | * low - Low |
| gain | query | number | false | none |
| gain__gte | query | number | false | none |
| gain__lte | query | number | false | none |
| headline | query | string | false | none |
| headline__icontains | query | string | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | string | false | none |
| owners | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| priority | query | string | false | * urgent - Urgent |
| search | query | string | false | none |
| solution__icontains | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
Detailed descriptions
effort: * low - Low
* medium - Medium
* high - High
priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
headline- Headline-headline- Headline (desc)priority- Priority-priority- Priority (desc)effort- Effort-effort- Effort (desc)status- Status-status- Status (desc)count_vulns- Vulnerabilities-count_vulns- Vulnerabilities (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| effort | high |
| effort | low |
| effort | medium |
| priority | hardening |
| priority | moderate |
| priority | urgent |
| sorted_by | -count_vulns |
| sorted_by | -effort |
| sorted_by | -headline |
| sorted_by | -priority |
| sorted_by | -status |
| sorted_by | count_vulns |
| sorted_by | effort |
| sorted_by | headline |
| sorted_by | priority |
| sorted_by | status |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedRemediationList |
Create a Remediation
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"organization": 0,
"headline": "string",
"solution": "string",
"priority": "urgent",
"effort": "low",
"due_date": "2019-08-24T14:15:22Z",
"status": "new"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/remediations', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/remediations', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/remediations
Creates a new custom Remediation in the specified Organization.
Body parameter
{
"organization": 0,
"headline": "string",
"solution": "string",
"priority": "urgent",
"effort": "low",
"due_date": "2019-08-24T14:15:22Z",
"status": "new"
}
organization: 0
headline: string
solution: string
priority: urgent
effort: low
due_date: 2019-08-24T14:15:22Z
status: new
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Remediation | true | none |
Example responses
201 Response
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Remediation |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Bulk delete Remediations
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/remediations', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/remediations', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/remediations
Permanently deletes multiple custom Remediations by ID.
Example responses
204 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Retrieve a Remediation
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/remediations/{id}/
Returns detailed information for a single custom Remediation.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Remediation |
Update a Remediation (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"organization": 0,
"headline": "string",
"solution": "string",
"priority": "urgent",
"effort": "low",
"due_date": "2019-08-24T14:15:22Z",
"status": "new"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/remediations/{id}/
Partially updates custom Remediation fields.
Body parameter
{
"organization": 0,
"headline": "string",
"solution": "string",
"priority": "urgent",
"effort": "low",
"due_date": "2019-08-24T14:15:22Z",
"status": "new"
}
organization: 0
headline: string
solution: string
priority: urgent
effort: low
due_date: 2019-08-24T14:15:22Z
status: new
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedRemediation | false | none |
Example responses
200 Response
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Remediation |
| 400 | Bad Request | none | BasicResponseWithMessage |
Delete a Remediation
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/remediations/{id}/
Permanently deletes a custom Remediation by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
List Remediation Comments
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/remediations/{id}/comments
Returns a paginated list of Comments on a custom Remediation.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date-time) | false | none |
| before | query | string(date-time) | false | none |
| created_at | query | string(date-time) | false | none |
| created_at__gte | query | string(date-time) | false | none |
| created_at__lte | query | string(date-time) | false | none |
| effort | query | string | false | * low - Low |
| gain | query | number | false | none |
| gain__gte | query | number | false | none |
| gain__lte | query | number | false | none |
| headline | query | string | false | none |
| headline__icontains | query | string | false | none |
| id | path | integer | true | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | string | false | none |
| owners | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| priority | query | string | false | * urgent - Urgent |
| search | query | string | false | none |
| solution__icontains | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| status | query | string | false | * new - New |
| status__icontains | query | string | false | none |
| teams | query | array[integer] | false | none |
Detailed descriptions
effort: * low - Low
* medium - Medium
* high - High
priority: * urgent - Urgent
* moderate - Moderate
* hardening - Hardening
sorted_by: Ordering
headline- Headline-headline- Headline (desc)priority- Priority-priority- Priority (desc)effort- Effort-effort- Effort (desc)status- Status-status- Status (desc)count_vulns- Vulnerabilities-count_vulns- Vulnerabilities (desc)
status: * new - New
* ack - Acknowledged
* assigned - Assigned
* patched - Patched
* closed - Closed
* closed-benign - Closed (Benign)
* closed-fp - Closed (False-Positive)
* closed-duplicate - Closed (Duplicate)
* closed-workaround - Closed (Workaround)
* closed-risk-acceptance - Closed (Risk acceptance)
Enumerated Values
| Parameter | Value |
|---|---|
| effort | high |
| effort | low |
| effort | medium |
| priority | hardening |
| priority | moderate |
| priority | urgent |
| sorted_by | -count_vulns |
| sorted_by | -effort |
| sorted_by | -headline |
| sorted_by | -priority |
| sorted_by | -status |
| sorted_by | count_vulns |
| sorted_by | effort |
| sorted_by | headline |
| sorted_by | priority |
| sorted_by | status |
| status | ack |
| status | assigned |
| status | closed |
| status | closed-benign |
| status | closed-duplicate |
| status | closed-fp |
| status | closed-risk-acceptance |
| status | closed-workaround |
| status | new |
| status | patched |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"text": "string",
"author": "string",
"created_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedCommentList |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Create Remediation Comment
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"text": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/remediations/{id}/comments
Adds a new Comment to a custom Remediation.
Body parameter
{
"text": "string"
}
text: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Comment | true | none |
Example responses
201 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | BasicResponse |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Add Owners to Remediation
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"users_id": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/remediations/{id}/owners
Assigns one or more Users as Owners of a custom Remediation.
Body parameter
{
"users_id": [
null
]
}
users_id:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | custom_remediations_add_owners | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Owners from Remediation
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/remediations/{id}/owners
Removes one or more Owners from a custom Remediation.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Add Vulnerabilities to Remediation
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"vulnerabilities_id": [
null
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/remediations/{id}/vulnerabilities
Links one or more Vulnerabilities to a custom Remediation.
Body parameter
{
"vulnerabilities_id": [
null
]
}
vulnerabilities_id:
- null
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | custom_remediations_add_vulnerabilities | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Remove Vulnerabilities from Remediation
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/remediations/{id}/vulnerabilities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/remediations/{id}/vulnerabilities
Unlinks one or more Vulnerabilities from a custom Remediation.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Insights
Risk insights and recommendations.
List Risk Insights
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/',
params: {
'org_id' => 'number'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/
Returns a paginated list of Risk Insights for the specified Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| asset | query | integer | false | Filter insights by asset_id |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the insights by the linked asset's asset_groups. |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the insights depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | Full-text case insensitive contains filter against the linked assets asset_type. |
| asset_value | query | string | false | Full-text case insensitive contains filter against the linked assets asset_value. |
| before | query | string(date) | false | none |
| content | query | string | false | Full-text case insensitive contains filter against the content of a certificate. |
| light_description | query | string | false | Full-text case insensitive contains filter against description. |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | number | true | The id of the organization to filter insights from. |
| page | query | integer | false | A page number within the paginated result set. |
| permissions | query | string | false | none |
| policy | query | string | false | Full-text case insensitive contains filter against available policy. |
| port | query | string | false | Full-text case insensitive contains filter against available ports. |
| product | query | string | false | Full-text case insensitive contains filter against the product names. |
| protection | query | boolean | false | Filter the insights that have protection or not. |
| protocol | query | string | false | Full-text case insensitive contains filter against the name of the security protocol. |
| provider | query | string | false | Full-text case insensitive contains filter against available provider. |
| qualifier | query | string | false | Full-text case insensitive contains filter against available qualifier. |
| search | query | string | false | Full-text case insensitive search in all the insight data. |
| security_check | query | integer | false | Filter insights by security check. |
| selector | query | string | false | Full-text case insensitive contains filter against available selector. |
| serial_number | query | string | false | Full-text case insensitive contains filter against available serial number. |
| severity | query | integer | false | OR filter against a list of severity. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | integer | false | OR filter against a list of status. |
| subtopic | query | integer | false | OR filter against a list of subtopic title. |
| subtopic_title | query | string | false | Full-text case insensitive contains filter against subtopic title. |
| teams | query | array[integer] | false | none |
| title | query | string | false | Full-text case insensitive contains filter against insight title. |
| topic | query | integer | false | Filter insights by topic_id. |
| topic_title | query | string | false | Full-text case insensitive contains filter against topic title. |
| type | query | integer | false | * 0 - No SPF record |
| version | query | string | false | Full-text case insensitive contains filter against available version. |
Detailed descriptions
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the insights depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
title- TITLE-title- TITLE (desc)severity- SEVERITY-severity- SEVERITY (desc)status- STATUS-status- STATUS (desc)created_at- CREATED_AT-created_at- CREATED_AT (desc)last_seen_at- LAST_SEEN_AT-last_seen_at- LAST_SEEN_AT (desc)asset- ASSET NAME-asset- ASSET NAME (desc)subtopic- SUBTOPIC NAME-subtopic- SUBTOPIC NAME (desc)topic- TOPIC NAME-topic- TOPIC NAME (desc)port- PORT (asc)-port- PORT (desc)product- PRODUCT (asc)-product- PRODUCT (desc)expiration_date- EXPIRATION_DATE (asc)-expiration_date- EXPIRATION_DATE (desc)protection- PROTECTION (asc)-protection- PROTECTION (desc)provider- PROVIDER (asc)-provider- PROVIDER (desc)serial_number- SERIAL NUMBER (asc)-serial_number- SERIAL NUMBER (desc)selector- SELECTOR (asc)-selector- SELECTOR (desc)qualifier- QUALIFIER (asc)-qualifier- QUALIFIER (desc)policy- POLICY (asc)-policy- POLICY (desc)protocol- PROTOCOL (asc)-protocol- PROTOCOL (desc)hosts- HOSTS (asc)-hosts- HOSTS (desc)response- RESPONSE (asc)-response- RESPONSE (desc)cipher_type- CIPHER_TYPE (asc)-cipher_type- CIPHER_TYPE (desc)ciphersuite- CIPHERSUITE (asc)-ciphersuite- CIPHERSUITE (desc)protocol- PROTOCOL (asc)-protocol- PROTOCOL (desc)type- TYPE (asc)-type- TYPE (desc)version- VERSION (asc)-version- VERSION (desc)blocklist_name- BLOCKLIST_NAME (asc)-blocklist_name- BLOCKLIST_NAME (desc)bucket_name- BUCKET_NAME (asc)-bucket_name- BUCKET_NAME (desc)cloud_provider- CLOUD_PROVIDER (asc)-cloud_provider- CLOUD_PROVIDER (desc)
type: * 0 - No SPF record
* 1 - Multiple SPF records
* 2 - A TXT record contains a string longer than 255 characters
* 3 - High number of DNS lookup
* 4 - Directives after ALL not allowed
* 5 - Mechanism PTR not recommended
* 6 - Deprecated SPF record
* 7 - Malformed SPF record
* 8 - Permissive SPF record
* 9 - SPF record termination missing
* 10 - SPF record is set
* 11 - No DKIM record
* 12 - Weak DKIM key
* 13 - Multiple DKIM records detected
* 14 - DKIM public key not found
* 15 - Invalid DKIM record
* 16 - No DMARC record
* 17 - Lax DMARC policy
* 18 - Lax DMARC subdomain policy
* 19 - Partial DMARC coverage
* 20 - Multiple DMARC records
* 21 - Invalid DMARC record
* 22 - No DMARC reporting configured
Enumerated Values
| Parameter | Value |
|---|---|
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| sorted_by | -asset |
| sorted_by | -blocklist_name |
| sorted_by | -bucket_name |
| sorted_by | -cipher_type |
| sorted_by | -ciphersuite |
| sorted_by | -cloud_provider |
| sorted_by | -created_at |
| sorted_by | -expiration_date |
| sorted_by | -hosts |
| sorted_by | -last_seen_at |
| sorted_by | -policy |
| sorted_by | -port |
| sorted_by | -product |
| sorted_by | -protection |
| sorted_by | -protocol |
| sorted_by | -protocol |
| sorted_by | -provider |
| sorted_by | -qualifier |
| sorted_by | -response |
| sorted_by | -selector |
| sorted_by | -serial_number |
| sorted_by | -severity |
| sorted_by | -status |
| sorted_by | -subtopic |
| sorted_by | -title |
| sorted_by | -topic |
| sorted_by | -type |
| sorted_by | -version |
| sorted_by | asset |
| sorted_by | blocklist_name |
| sorted_by | bucket_name |
| sorted_by | cipher_type |
| sorted_by | ciphersuite |
| sorted_by | cloud_provider |
| sorted_by | created_at |
| sorted_by | expiration_date |
| sorted_by | hosts |
| sorted_by | last_seen_at |
| sorted_by | policy |
| sorted_by | port |
| sorted_by | product |
| sorted_by | protection |
| sorted_by | protocol |
| sorted_by | protocol |
| sorted_by | provider |
| sorted_by | qualifier |
| sorted_by | response |
| sorted_by | selector |
| sorted_by | serial_number |
| sorted_by | severity |
| sorted_by | status |
| sorted_by | subtopic |
| sorted_by | title |
| sorted_by | topic |
| sorted_by | type |
| sorted_by | version |
| status | 0 |
| status | 1 |
| status | 2 |
| status | 3 |
| status | 4 |
| status | 5 |
| status | 6 |
| status | 7 |
| type | 0 |
| type | 1 |
| type | 10 |
| type | 11 |
| type | 12 |
| type | 13 |
| type | 14 |
| type | 15 |
| type | 16 |
| type | 17 |
| type | 18 |
| type | 19 |
| type | 2 |
| type | 20 |
| type | 21 |
| type | 22 |
| type | 3 |
| type | 4 |
| type | 5 |
| type | 6 |
| type | 7 |
| type | 8 |
| type | 9 |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedInsightPolymorphicList |
Bulk update Risk Insights
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/risks/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/risks/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
],
"status": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/risks/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/risks/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/risks/
Updates the status of multiple Risk Insights at once.
Body parameter
{
"ids": [
0
],
"status": 0
}
ids:
- 0
status: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | InsightBulkUpdate | true | none |
Example responses
200 Response
{
"status": "success"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | insight_bulk_update_serializer |
Retrieve a Risk Insight
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/{id}/
Returns detailed information for a single Risk Insight.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | InsightPolymorphic |
Update a Risk Insight (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"resourcetype": "string",
"light_description": "string",
"subtopic": {
"title": "string"
},
"asset": {
"value": "string"
},
"topic": {
"title": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/risks/{id}/
Partially updates fields on a Risk Insight.
Body parameter
{
"resourcetype": "string",
"light_description": "string",
"subtopic": {
"title": "string"
},
"asset": {
"value": "string"
},
"topic": {
"title": "string"
}
}
resourcetype: string
light_description: string
subtopic:
title: string
asset:
value: string
topic:
title: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedInsightPolymorphic | false | none |
Example responses
200 Response
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | InsightPolymorphic |
Export Risk Insight PEM Certificate
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/ \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: text/csv
const headers = {
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/{id}/pem/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/{id}/pem/
Returns the PEM certificate data for a certificate-related Risk Insight.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | Insight id |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Count all open Risk Insights
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/',
params: {
'org_id' => 'number'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/all-opened-count/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/all-opened-count/
Returns the total count of open Risk Insights matching the current filters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| asset | query | integer | false | Filter insights by asset_id |
| asset_group_id | query | integer | false | none |
| asset_groups | query | integer | false | Filters the insights by the linked asset's asset_groups. |
| asset_liveness | query | string | false | Deprecated: use CoreAsset.liveness instead. |
| asset_outside_business_hours | query | string | false | * 0 - unactivated |
| asset_protection | query | array[string] | false | Filters the insights depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm. |
| asset_type | query | string | false | Full-text case insensitive contains filter against the linked assets asset_type. |
| asset_value | query | string | false | Full-text case insensitive contains filter against the linked assets asset_value. |
| before | query | string(date) | false | none |
| content | query | string | false | Full-text case insensitive contains filter against the content of a certificate. |
| light_description | query | string | false | Full-text case insensitive contains filter against description. |
| org_id | query | number | true | The id of the organization to filter insights from. |
| permissions | query | string | false | none |
| policy | query | string | false | Full-text case insensitive contains filter against available policy. |
| port | query | string | false | Full-text case insensitive contains filter against available ports. |
| product | query | string | false | Full-text case insensitive contains filter against the product names. |
| protection | query | boolean | false | Filter the insights that have protection or not. |
| protocol | query | string | false | Full-text case insensitive contains filter against the name of the security protocol. |
| provider | query | string | false | Full-text case insensitive contains filter against available provider. |
| qualifier | query | string | false | Full-text case insensitive contains filter against available qualifier. |
| search | query | string | false | Full-text case insensitive search in all the insight data. |
| security_check | query | integer | false | Filter insights by security check. |
| selector | query | string | false | Full-text case insensitive contains filter against available selector. |
| serial_number | query | string | false | Full-text case insensitive contains filter against available serial number. |
| severity | query | integer | false | OR filter against a list of severity. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | integer | false | OR filter against a list of status. |
| subtopic | query | integer | false | OR filter against a list of subtopic title. |
| subtopic_title | query | string | false | Full-text case insensitive contains filter against subtopic title. |
| teams | query | array[integer] | false | none |
| title | query | string | false | Full-text case insensitive contains filter against insight title. |
| topic | query | integer | false | Filter insights by topic_id. |
| topic_title | query | string | false | Full-text case insensitive contains filter against topic title. |
| type | query | integer | false | * 0 - No SPF record |
| version | query | string | false | Full-text case insensitive contains filter against available version. |
Detailed descriptions
asset_liveness: Deprecated: use CoreAsset.liveness instead.
unknown- Unknownup- Updown- Down
asset_outside_business_hours: * 0 - unactivated
* 1 - activated
asset_protection: Filters the insights depending on their asset's protection. It accepts an array of values separated by commas. ex: unprotected,easm.
unavailable- Unavailableunprotected- Unprotectedeasm- EASMpentested- Pentested
sorted_by: Ordering
title- TITLE-title- TITLE (desc)severity- SEVERITY-severity- SEVERITY (desc)status- STATUS-status- STATUS (desc)created_at- CREATED_AT-created_at- CREATED_AT (desc)last_seen_at- LAST_SEEN_AT-last_seen_at- LAST_SEEN_AT (desc)asset- ASSET NAME-asset- ASSET NAME (desc)subtopic- SUBTOPIC NAME-subtopic- SUBTOPIC NAME (desc)topic- TOPIC NAME-topic- TOPIC NAME (desc)port- PORT (asc)-port- PORT (desc)product- PRODUCT (asc)-product- PRODUCT (desc)expiration_date- EXPIRATION_DATE (asc)-expiration_date- EXPIRATION_DATE (desc)protection- PROTECTION (asc)-protection- PROTECTION (desc)provider- PROVIDER (asc)-provider- PROVIDER (desc)serial_number- SERIAL NUMBER (asc)-serial_number- SERIAL NUMBER (desc)selector- SELECTOR (asc)-selector- SELECTOR (desc)qualifier- QUALIFIER (asc)-qualifier- QUALIFIER (desc)policy- POLICY (asc)-policy- POLICY (desc)protocol- PROTOCOL (asc)-protocol- PROTOCOL (desc)hosts- HOSTS (asc)-hosts- HOSTS (desc)response- RESPONSE (asc)-response- RESPONSE (desc)cipher_type- CIPHER_TYPE (asc)-cipher_type- CIPHER_TYPE (desc)ciphersuite- CIPHERSUITE (asc)-ciphersuite- CIPHERSUITE (desc)protocol- PROTOCOL (asc)-protocol- PROTOCOL (desc)type- TYPE (asc)-type- TYPE (desc)version- VERSION (asc)-version- VERSION (desc)blocklist_name- BLOCKLIST_NAME (asc)-blocklist_name- BLOCKLIST_NAME (desc)bucket_name- BUCKET_NAME (asc)-bucket_name- BUCKET_NAME (desc)cloud_provider- CLOUD_PROVIDER (asc)-cloud_provider- CLOUD_PROVIDER (desc)
type: * 0 - No SPF record
* 1 - Multiple SPF records
* 2 - A TXT record contains a string longer than 255 characters
* 3 - High number of DNS lookup
* 4 - Directives after ALL not allowed
* 5 - Mechanism PTR not recommended
* 6 - Deprecated SPF record
* 7 - Malformed SPF record
* 8 - Permissive SPF record
* 9 - SPF record termination missing
* 10 - SPF record is set
* 11 - No DKIM record
* 12 - Weak DKIM key
* 13 - Multiple DKIM records detected
* 14 - DKIM public key not found
* 15 - Invalid DKIM record
* 16 - No DMARC record
* 17 - Lax DMARC policy
* 18 - Lax DMARC subdomain policy
* 19 - Partial DMARC coverage
* 20 - Multiple DMARC records
* 21 - Invalid DMARC record
* 22 - No DMARC reporting configured
Enumerated Values
| Parameter | Value |
|---|---|
| asset_liveness | down |
| asset_liveness | unknown |
| asset_liveness | up |
| asset_outside_business_hours | 0 |
| asset_outside_business_hours | 1 |
| asset_protection | easm |
| asset_protection | pentested |
| asset_protection | unavailable |
| asset_protection | unprotected |
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| sorted_by | -asset |
| sorted_by | -blocklist_name |
| sorted_by | -bucket_name |
| sorted_by | -cipher_type |
| sorted_by | -ciphersuite |
| sorted_by | -cloud_provider |
| sorted_by | -created_at |
| sorted_by | -expiration_date |
| sorted_by | -hosts |
| sorted_by | -last_seen_at |
| sorted_by | -policy |
| sorted_by | -port |
| sorted_by | -product |
| sorted_by | -protection |
| sorted_by | -protocol |
| sorted_by | -protocol |
| sorted_by | -provider |
| sorted_by | -qualifier |
| sorted_by | -response |
| sorted_by | -selector |
| sorted_by | -serial_number |
| sorted_by | -severity |
| sorted_by | -status |
| sorted_by | -subtopic |
| sorted_by | -title |
| sorted_by | -topic |
| sorted_by | -type |
| sorted_by | -version |
| sorted_by | asset |
| sorted_by | blocklist_name |
| sorted_by | bucket_name |
| sorted_by | cipher_type |
| sorted_by | ciphersuite |
| sorted_by | cloud_provider |
| sorted_by | created_at |
| sorted_by | expiration_date |
| sorted_by | hosts |
| sorted_by | last_seen_at |
| sorted_by | policy |
| sorted_by | port |
| sorted_by | product |
| sorted_by | protection |
| sorted_by | protocol |
| sorted_by | protocol |
| sorted_by | provider |
| sorted_by | qualifier |
| sorted_by | response |
| sorted_by | selector |
| sorted_by | serial_number |
| sorted_by | severity |
| sorted_by | status |
| sorted_by | subtopic |
| sorted_by | title |
| sorted_by | topic |
| sorted_by | type |
| sorted_by | version |
| status | 0 |
| status | 1 |
| status | 2 |
| status | 3 |
| status | 4 |
| status | 5 |
| status | 6 |
| status | 7 |
| type | 0 |
| type | 1 |
| type | 10 |
| type | 11 |
| type | 12 |
| type | 13 |
| type | 14 |
| type | 15 |
| type | 16 |
| type | 17 |
| type | 18 |
| type | 19 |
| type | 2 |
| type | 20 |
| type | 21 |
| type | 22 |
| type | 3 |
| type | 4 |
| type | 5 |
| type | 6 |
| type | 7 |
| type | 8 |
| type | 9 |
Example responses
200 Response
{
"count": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | InsightLightCount |
List Risk Insight Blocklists
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/blocklists/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/blocklists/
Returns a paginated list of Blocklist names from Risk Insights.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | integer | true | The id of the organization to filter blocklists from. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | Full-text case insensitive search in all the blocklists. |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedBlocklistList |
Count Risk Insights by Topic
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/count/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/count/
Returns Risk Insight counts grouped by Topic and Subtopic.
Example responses
{
"All": {
"count": 200
},
"Certificates": {
"count": 45,
"subtopics": {
"Expired": 8,
"Mismatched": 7,
"Revoked": 8,
"Self-signed": 7,
"Soon to expire": 8,
"Untrusted": 7
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | insights_counts_serializer |
Export Risk Insights (CSV)
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/ \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: text/csv
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/csv',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/csv',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/csv',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/csv"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/csv/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/export/csv/
Returns a CSV file of Risk Insights, optionally filtered or selected by IDs.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Export Risk Insights (JSON)
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/export/json/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/export/json/
Returns a JSON file of Risk Insights, optionally filtered or selected by IDs.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Create Vulnerabilities from Risk Insights
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/vulns/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/vulns/
Enqueues background tasks to create Vulnerabilities from the specified Risk Insights.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
{
"failures": [
{
"id": 0,
"message": "string",
"title": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | CreateVulnerabilitiesInsightSerializerOut |
Insight policies
Insight policy configuration.
List Risk Insight Policies
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/policies/
Returns a paginated list of Risk Insight Policies.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| after | query | string(date) | false | none |
| before | query | string(date) | false | none |
| is_enabled | query | boolean | false | Filter the policies that are enabled or not. |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | number | false | The id of the organization to filter policies from. |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | Full-text case insensitive search in all the policies data. |
| severity | query | integer | false | OR filter against a list of severity. |
| sorted_by | query | array[string] | false | Ordering |
| title | query | string | false | Full-text case insensitive contains filter against policy title. |
Detailed descriptions
sorted_by: Ordering
title- TITLE-title- TITLE (desc)is_enabled- IS ENABLED-is_enabled- IS ENABLED (desc)severity- SEVERITY-severity- SEVERITY (desc)created_by- CREATED_BY-created_by- CREATED_BY (desc)created_at- CREATED_AT-created_at- CREATED_AT (desc)updated_at- UPDATED_AT-updated_at- UPDATED_AT (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| severity | 0 |
| severity | 1 |
| severity | 2 |
| severity | 3 |
| severity | 4 |
| sorted_by | -created_at |
| sorted_by | -created_by |
| sorted_by | -is_enabled |
| sorted_by | -severity |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | created_by |
| sorted_by | is_enabled |
| sorted_by | severity |
| sorted_by | title |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedInsightPolicyList |
Create a Risk Insight Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"organization": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/policies/
Creates a new Risk Insight Policy for the Organization.
Body parameter
{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"organization": 0
}
title: string
description: string
is_enabled: true
severity: 0
organization: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateInsightPolicy | true | none |
Example responses
201 Response
{
"status": "success",
"data": {
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Insight_policy_create_serializer |
Bulk update Risk Insight Policies
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
],
"is_enabled": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/risks/policies/
Updates the is_enabled field on multiple Risk Insight Policies.
Body parameter
{
"ids": [
0
],
"is_enabled": true
}
ids:
- 0
is_enabled: true
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | PatchedInsightPolicyBulkUpdate | false | none |
Example responses
200 Response
{
"status": "success"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Insight_policy_bulk_update_serializer |
Retrieve a Risk Insight Policy
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/policies/{id}/
Returns detailed information for a single Risk Insight Policy.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | InsightPolicy |
Update a Risk Insight Policy (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/risks/policies/{id}/
Partially updates fields on a Risk Insight Policy.
Body parameter
{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0
}
title: string
description: string
is_enabled: true
severity: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedUpdateInsightPolicy | false | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | UpdateInsightPolicy |
Delete a Risk Insight Policy
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/risks/policies/{id}/
Deletes a Risk Insight Policy by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Apply a Risk Insight Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"organization": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/apply/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/policies/{id}/apply/
Applies a Risk Insight Policy to create Vulnerabilities from eligible Insights.
Body parameter
{
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"organization": 0
}
title: string
description: string
is_enabled: true
severity: 0
organization: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | Insight policy id |
| body | body | InsightPolicy | true | none |
Example responses
200 Response
{
"status": "enqueued"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Insight_policy_apply_serializer |
Add Filters to a Risk Insight Policy
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"type": "insight_severity",
"value": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/policies/{id}/filters/
Creates Filters for a Risk Insight Policy and optionally applies the Policy.
Body parameter
{
"type": "insight_severity",
"value": 1
}
type: insight_severity
value: 1
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | Insight policy id |
| body | body | Insight_policy_add_filters_request_serializer | true | none |
Example responses
200 Response
{
"status": "success",
"results": [
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Insight_policy_add_filters_serializer |
Delete Risk Insight Policy Filters
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{id}/filters/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/risks/policies/{id}/filters/
Deletes the specified Filters from a Risk Insight Policy.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | Insight policy id |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Update a Risk Insight Policy Filter
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"operation": "contains",
"value": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/{policy_id}/filters/{filter_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/risks/policies/{policy_id}/filters/{filter_id}
Partially updates a Filter linked to a Risk Insight Policy.
Body parameter
{
"operation": "contains",
"value": "string"
}
operation: contains
value: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| filter_id | path | integer | true | none |
| policy_id | path | integer | true | none |
| body | body | PatchedUpdateFilterPolymorphic | false | none |
Example responses
200 Response
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | UpdatedFilterPolymorphic |
Bulk delete Risk Insight Policies
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/policies/delete/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/risks/policies/delete/
Deletes multiple Risk Insight Policies by ID.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
{
"status": "success"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Insight_policy_bulk_delete_serializer |
Topics
Insight topic taxonomy.
List Risk Insight Topics
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/topics/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/topics/
Returns available Risk Insight Topics and their Subtopics.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"slug": "string",
"is_available": true,
"subtopics": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTopicList |
Sub-topics
Insight sub-topic taxonomy.
List Risk Insight Subtopics
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/risks/subtopics/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/risks/subtopics/
Returns available Risk Insight Subtopics.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedSubTopicList |
Pentests (Campaigns)
Pentest campaigns
List Pentests
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/
Returns a paginated list of Pentests (Campaigns).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| belong_to_a_team | query | boolean | false | Filter campaigns that belong to at least one team. |
| created_at | query | string(date-time) | false | none |
| id | query | integer | false | none |
| is_greybox | query | boolean | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org | query | string | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| requested_by | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| team_not | query | number | false | Filter campaigns that do not belong to a specific team. |
| teams | query | array[integer] | false | none |
| title | query | string | false | none |
| updated_at | query | string(date-time) | false | none |
| user | query | number | false | Filter campaigns that are accessible by the current user and another specific user. |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)title- Title-title- Title (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)nb_assets- Assets count-nb_assets- Assets count (desc)nb_vulns- Vulnerabilities count-nb_vulns- Vulnerabilities count (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -nb_assets |
| sorted_by | -nb_vulns |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | nb_assets |
| sorted_by | nb_vulns |
| sorted_by | title |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedPentestList |
Create a Pentest
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/
Creates a new Pentest (Campaign) in the specified Organization.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Pentest | true | none |
Example responses
201 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Pentest |
Bulk delete Pentests
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/pentests/
Deletes multiple Pentest (Campaigns) by ID, optionally including their related Vulnerabilities.
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Retrieve a Pentest
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/{id}/
Returns detailed information for a single Pentest (Campaign).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Update a Pentest (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/pentests/{id}/
Partially updates Pentest (Campaign) fields.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedPentest | false | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Delete a Pentest
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/pentests/{id}/
Deletes a Pentest Campaign, optionally including its related Vulnerabilities.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Export Pentest Assets (CSV)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/{id}/assets/export/csv
Returns a CSV file of Assets linked to a Pentest (Campaign).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Import Assets from CSV
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv?org_id=0',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/import/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/{id}/assets/import/csv
Imports Assets into a Pentest (Campaign) from a CSV file.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| org_id | query | integer | true | Organization |
| body | body | Pentest | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
Remove Assets from Pentest
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/assets/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/{id}/assets/remove
Removes Assets and their related Vulnerabilities from a Pentest (Campaign).
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Pentest | true | none |
Example responses
200 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponse |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Upload Pentest Attachment
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/attachements", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/{id}/attachements
Uploads an image Attachment to a Pentest Campaign.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Pentest | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
List Teams with their access status for the Campaign
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/{id}/teams
List all Teams from the Organization with their access status to the Pentest (Campaign).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| has_access | query | boolean | false | Filter teams by access status (org admins only) |
| id | path | integer | true | none |
| org_id | query | integer | true | The id of the organization to filter teams from. Required. |
| search | query | string | false | Full-text case insensitive search in teams |
Example responses
200 Response
[
{
"id": 0,
"name": "string",
"description": "string",
"users": [
{
"id": 0,
"email": "user@example.com"
}
],
"has_access": true
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [TeamAccessBase] | false | none | [Serializer for team access information with users] |
| » id | integer | true | none | none |
| » name | string | true | none | none |
| » description | string | true | none | none |
| » users | [TeamAccessUser] | true | none | [Serializer for user information in team response.] |
| »» id | integer | true | none | none |
| string(email) | true | none | none | |
| » has_access | boolean | true | none | none |
Export Pentest Vulnerabilities (CSV)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/{id}/vulns/export/csv
Returns a CSV file of Vulnerabilities linked to a Pentest (Campaign).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Import Vulnerabilities from CSV
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/{id}/vulns/import/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/{id}/vulns/import/csv
Imports Vulnerabilities into a Pentest (Campaign) from a CSV or XLSX file.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | Pentest | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Delete Pentest Attachment
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/attachements/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/pentests/attachements/{id}/
Deletes a user-uploaded Attachment from a Pentest (Campaign).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Export Pentests in CSV format
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/pentests/org/{org_id}/export/csv
Returns a CSV file of Pentest (Campaigns) matching the current filters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Export selected Pentests in CSV format
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/pentests/org/{org_id}/export/csv", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/pentests/org/{org_id}/export/csv
Returns a CSV file for the Pentest (Campaigns) whose IDs are in the request body.
Body parameter
{
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_greybox": true,
"teams": [
0
]
}
title: string
provider: string
organization: 0
description: string
comments: string
date_from: 2019-08-24T14:15:22Z
date_to: 2019-08-24T14:15:22Z
created_at: 2019-08-24T14:15:22Z
updated_at: 2019-08-24T14:15:22Z
is_greybox: true
teams:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | integer | true | none |
| body | body | Pentest | true | none |
Example responses
200 Response
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Pentest |
Security checks
Security check definitions and scans.
List Security Checks
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/security-checks/
List all Security Checks with their open Vulnerabilities and open Risk Insights per severity.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| has_risk_insights | query | boolean | false | none |
| id | query | integer | false | none |
| org_id | query | integer | false | none |
| scan_type | query | string | false | * passive - Passive |
| search | query | string | false | none |
| teams | query | array[integer] | false | none |
| title | query | string | false | none |
Detailed descriptions
scan_type: * passive - Passive
* offensive - Offensive
* others - Others
Enumerated Values
| Parameter | Value |
|---|---|
| scan_type | offensive |
| scan_type | others |
| scan_type | passive |
Example responses
200 Response
[
{
"id": 0,
"title": "string",
"description": "string",
"scan_type": "passive",
"is_available": true,
"is_auto": true,
"latest_scans": [
{
"finished_at": "2019-08-24T14:15:22Z"
}
],
"vulnerabilities": [
{
"severity": 0,
"count": 0
}
],
"webservers_required": true,
"risk_insights": [
{
"severity": 0,
"count": 0
}
]
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [SecurityCheck] | false | none | none |
| » id | integer | true | read-only | none |
| » title | string | true | none | none |
| » description | string¦null | false | none | none |
| » scan_type | ScanTypeEnum | false | none | * passive - Passive* offensive - Offensive* others - Others |
| » is_available | boolean | false | none | none |
| » is_auto | boolean | false | none | none |
| » latest_scans | [LatestScans] | true | read-only | none |
| »» finished_at | string(date-time) | true | none | none |
| » vulnerabilities | [BySeverity] | true | read-only | none |
| »» severity | integer | true | none | none |
| »» count | integer | true | none | none |
| » webservers_required | boolean | true | read-only | none |
| » risk_insights | [BySeverity] | true | read-only | none |
Enumerated Values
| Property | Value |
|---|---|
| scan_type | passive |
| scan_type | offensive |
| scan_type | others |
List Security Checks with data specific to an Asset
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id} \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/asset/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/security-checks/asset/{asset_id}
List the Security Checks for a specific Asset with their open Vulnerabilities and open Risk Insights per severity.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asset_id | path | integer | true | none |
Example responses
200 Response
{
"status": "success",
"results": [
{
"id": 0,
"title": "string",
"description": "string",
"scan_type": "passive",
"is_available": true,
"is_auto": true,
"latest_scans": [
{
"finished_at": "2019-08-24T14:15:22Z"
}
],
"vulnerabilities": [
{
"severity": 0,
"count": 0
}
],
"webservers_required": true,
"risk_insights": [
{
"severity": 0,
"count": 0
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | SecurityCheckAsset |
List Security Check Scans
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans',
params: {
'org_id' => 'number'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/security-checks/scans", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/security-checks/scans
Returns a paginated list of Security Check scan runs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | number | true | none |
| page | query | integer | false | A page number within the paginated result set. |
| security_check | query | integer | false | none |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"finished_at": "2019-08-24T14:15:22Z",
"security_check": 0,
"id": 0,
"assets": {
"property1": [
{
"property1": "string",
"property2": "string"
}
],
"property2": [
{
"property1": "string",
"property2": "string"
}
]
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedScanInListList |
Greybox
Greybox assessment requests.
List Greybox Requests
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/greyboxes/
Returns a paginated list of Greybox Pentest Requests.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| comments | query | string | false | none |
| comments__icontains | query | string | false | none |
| contact_info | query | string | false | none |
| contact_info__icontains | query | string | false | none |
| in_scope | query | string | false | none |
| in_scope__icontains | query | string | false | none |
| limit | query | integer | false | Number of results to return per page. |
| org_id | query | integer | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| requested_by | query | string | false | none |
| search | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| user_friendly_id | query | string | false | none |
Detailed descriptions
sorted_by: Ordering
id- id-id- id (desc)user_friendly_id- user_friendly_id-user_friendly_id- user_friendly_id (desc)requested_by- requested by-requested_by- requested by (desc)complexity- complexity-complexity- complexity (desc)started_at- started at-started_at- started at (desc)finished_at- finished at-finished_at- finished at (desc)created_at- created at-created_at- created at (desc)organization_name- organization_name-organization_name- organization_name (desc)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -complexity |
| sorted_by | -created_at |
| sorted_by | -finished_at |
| sorted_by | -id |
| sorted_by | -organization_name |
| sorted_by | -requested_by |
| sorted_by | -started_at |
| sorted_by | -user_friendly_id |
| sorted_by | complexity |
| sorted_by | created_at |
| sorted_by | finished_at |
| sorted_by | id |
| sorted_by | organization_name |
| sorted_by | requested_by |
| sorted_by | started_at |
| sorted_by | user_friendly_id |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"user_friendly_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"complexity": 1,
"in_scope": "string",
"contact_info": "string",
"complexity_text": "string",
"requested_by": "string",
"comments": "string",
"organization": 0,
"organization_name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedReadGreyboxRequestList |
Create Greybox Request
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"requested_by": 0,
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"in_scope": "string",
"comments": "string",
"contact_info": "string",
"complexity": 1,
"organization": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/greyboxes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/greyboxes/
Submits a new Greybox Pentest Request for an Organization.
Body parameter
{
"requested_by": 0,
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"in_scope": "string",
"comments": "string",
"contact_info": "string",
"complexity": 1,
"organization": 0
}
requested_by: 0
started_at: 2019-08-24T14:15:22Z
finished_at: 2019-08-24T14:15:22Z
in_scope: string
comments: string
contact_info: string
complexity: 1
organization: 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | WriteGreyboxRequest | true | none |
Example responses
201 Response
{
"status": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Success |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 403 | Forbidden | none | BasicResponseWithMessage |
Typosquatting
Typosquatted domain monitoring.
List Typosquatted Domains
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains
Returns a paginated list of Typosquatted Domains (Permutations).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| active_vulnerabilities | query | boolean | false | none |
| asset | query | integer | false | none |
| asset_groups | query | array[integer] | false | none |
| asset_protection | query | array[string] | false | Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested. |
| detection_date_after | query | string(date) | false | none |
| detection_date_before | query | string(date) | false | none |
| last_seen_after | query | string(date) | false | none |
| last_seen_before | query | string(date) | false | none |
| limit | query | integer | false | Number of results to return per page. |
| mail_service | query | boolean | false | none |
| modification_date_after | query | string(date) | false | none |
| modification_date_before | query | string(date) | false | none |
| org_id | query | integer | false | none |
| page | query | integer | false | A page number within the paginated result set. |
| parked | query | boolean | false | none |
| registrar_name | query | string | false | none |
| registration_date_after | query | string(date) | false | none |
| registration_date_before | query | string(date) | false | none |
| search | query | string | false | none |
| severity | query | array[string] | false | Multiple values may be separated by commas. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | array[string] | false | Multiple values may be separated by commas. |
| teams | query | array[integer] | false | none |
| vulnerability | query | integer | false | none |
Detailed descriptions
asset_protection: Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested.
easm- EASMpentested- Pentested
severity: Multiple values may be separated by commas.
low- Lowmedium- Mediumhigh- High
sorted_by: Ordering
permutation- Permutation-permutation- Permutation (descending)top_domain__value- Top domain value-top_domain__value- Top domain value (descending)status- Status-status- Status (descending)vulnerability- Vulnerability-vulnerability- Vulnerability (descending)ip_addresses- Ip addresses-ip_addresses- Ip addresses (descending)takedown_status- Takedown status-takedown_status- Takedown status (descending)severity- Severity-severity- Severity (descending)mail_service- Mail service-mail_service- Mail service (descending)nameservers- Nameservers-nameservers- Nameservers (descending)registrar_name- Registrar name-registrar_name- Registrar name (descending)registrar_country- Registrar country-registrar_country- Registrar country (descending)registration_date- Registration date-registration_date- Registration date (descending)registrar_mail- Registrar mail-registrar_mail- Registrar mail (descending)parked- Parked-parked- Parked (descending)first_detection_date- First detection date-first_detection_date- First detection date (descending)last_modification_date- Last modification date-last_modification_date- Last modification date (descending)last_seen- Last seen-last_seen- Last seen (descending)
status: Multiple values may be separated by commas.
detected- Detectedtracked- Trackedignored- Ignoredresolved- Resolved
Enumerated Values
| Parameter | Value |
|---|---|
| asset_protection | easm |
| asset_protection | pentested |
| severity | high |
| severity | low |
| severity | medium |
| sorted_by | -first_detection_date |
| sorted_by | -ip_addresses |
| sorted_by | -last_modification_date |
| sorted_by | -last_seen |
| sorted_by | -mail_service |
| sorted_by | -nameservers |
| sorted_by | -parked |
| sorted_by | -permutation |
| sorted_by | -registrar_country |
| sorted_by | -registrar_mail |
| sorted_by | -registrar_name |
| sorted_by | -registration_date |
| sorted_by | -severity |
| sorted_by | -status |
| sorted_by | -takedown_status |
| sorted_by | -top_domain__value |
| sorted_by | -vulnerability |
| sorted_by | first_detection_date |
| sorted_by | ip_addresses |
| sorted_by | last_modification_date |
| sorted_by | last_seen |
| sorted_by | mail_service |
| sorted_by | nameservers |
| sorted_by | parked |
| sorted_by | permutation |
| sorted_by | registrar_country |
| sorted_by | registrar_mail |
| sorted_by | registrar_name |
| sorted_by | registration_date |
| sorted_by | severity |
| sorted_by | status |
| sorted_by | takedown_status |
| sorted_by | top_domain__value |
| sorted_by | vulnerability |
| status | detected |
| status | ignored |
| status | resolved |
| status | tracked |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"permutation": {
"value": "string",
"type": "string"
},
"top_domain": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"status": "detected",
"takedown_status": "evidence_collection",
"severity": "low",
"ip_addresses": [
"string"
],
"mail_service": true,
"vulnerability": {
"id": 0,
"user_friendly_id": "string",
"title": "string"
},
"first_detection_date": "2019-08-24T14:15:22Z",
"registrar": {
"name": "string",
"date": "2019-08-24T14:15:22Z"
},
"last_modification_date": "2019-08-24T14:15:22Z",
"last_seen": "2019-08-24T14:15:22Z",
"parked": true,
"potentially_down": true,
"webservice": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTyposquattedDomainListList |
Update Typosquatted Domains
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
1
],
"status": "detected",
"takedown_status": "evidence_collection"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/typosquatted-domains
Update the status and takedown status of multiple Typosquatted Domains (Permutations).
Body parameter
{
"ids": [
1
],
"status": "detected",
"takedown_status": "evidence_collection"
}
ids:
- 1
status: detected
takedown_status: evidence_collection
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | PatchedTyposquattedDomainsUpdate | false | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
List Typosquatted Domain history
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/history", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains/{id}/history
Returns chronological history rows for a Typosquatted Domain (Permutation).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
[
{
"id": 0,
"typosquatted_domain": 0,
"user": {
"id": 0,
"email": "user@example.com"
},
"description": "string",
"date": "2019-08-24T14:15:22Z"
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [TyposquattedDomainHistory] | false | none | none |
| » id | integer | true | none | none |
| » typosquatted_domain | integer | true | none | none |
| » user | TyposquattedDomainHistoryUser¦null | false | none | none |
| »» id | integer | true | none | none |
| string(email) | true | none | none | |
| » description | string¦null | false | none | none |
| » date | string(date-time) | true | none | none |
Get a Typosquatted Domain details by ID
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains/{id}
Returns the details of a Typosquatted Domain (Permutation) by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"permutation": {
"value": "string",
"type": "string"
},
"top_domain": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"status": "detected",
"takedown_status": "evidence_collection",
"severity": "low",
"ip_addresses": [
"string"
],
"mail_service": [
"string"
],
"vulnerability": {
"id": 0,
"user_friendly_id": "string",
"title": "string"
},
"first_detection_date": "2019-08-24T14:15:22Z",
"registrar": {
"name": "string",
"country": "string",
"mail": "string",
"date": "2019-08-24T14:15:22Z"
},
"last_modification_date": "2019-08-24T14:15:22Z",
"last_seen": "2019-08-24T14:15:22Z",
"parked": true,
"potentially_down": true,
"ns_records": [
"string"
],
"webservice": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | TyposquattedDomainDetails |
Export Takedown Evidences of a Typosquatted Domain
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/{id}/export/takedown-evidences", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains/{id}/export/takedown-evidences
Export the Takedown Evidences of a Typosquatted Domain in PDF format. It is available if a Vulnerability was created from this Typosquatted Domain.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Count Typosquatted Domains by status
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/by-status", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains/by-status
Returns the count of Typosquatted Domains (Permutations) by status.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| active_vulnerabilities | query | boolean | false | none |
| asset | query | integer | false | none |
| asset_groups | query | array[integer] | false | none |
| asset_protection | query | array[string] | false | Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested. |
| detection_date_after | query | string(date) | false | none |
| detection_date_before | query | string(date) | false | none |
| last_seen_after | query | string(date) | false | none |
| last_seen_before | query | string(date) | false | none |
| mail_service | query | boolean | false | none |
| modification_date_after | query | string(date) | false | none |
| modification_date_before | query | string(date) | false | none |
| org_id | query | integer | false | none |
| parked | query | boolean | false | none |
| registrar_name | query | string | false | none |
| registration_date_after | query | string(date) | false | none |
| registration_date_before | query | string(date) | false | none |
| search | query | string | false | none |
| severity | query | array[string] | false | Multiple values may be separated by commas. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | array[string] | false | Multiple values may be separated by commas. |
| teams | query | array[integer] | false | none |
| vulnerability | query | integer | false | none |
Detailed descriptions
asset_protection: Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested.
easm- EASMpentested- Pentested
severity: Multiple values may be separated by commas.
low- Lowmedium- Mediumhigh- High
sorted_by: Ordering
permutation- Permutation-permutation- Permutation (descending)top_domain__value- Top domain value-top_domain__value- Top domain value (descending)status- Status-status- Status (descending)vulnerability- Vulnerability-vulnerability- Vulnerability (descending)ip_addresses- Ip addresses-ip_addresses- Ip addresses (descending)takedown_status- Takedown status-takedown_status- Takedown status (descending)severity- Severity-severity- Severity (descending)mail_service- Mail service-mail_service- Mail service (descending)nameservers- Nameservers-nameservers- Nameservers (descending)registrar_name- Registrar name-registrar_name- Registrar name (descending)registrar_country- Registrar country-registrar_country- Registrar country (descending)registration_date- Registration date-registration_date- Registration date (descending)registrar_mail- Registrar mail-registrar_mail- Registrar mail (descending)parked- Parked-parked- Parked (descending)first_detection_date- First detection date-first_detection_date- First detection date (descending)last_modification_date- Last modification date-last_modification_date- Last modification date (descending)last_seen- Last seen-last_seen- Last seen (descending)
status: Multiple values may be separated by commas.
detected- Detectedtracked- Trackedignored- Ignoredresolved- Resolved
Enumerated Values
| Parameter | Value |
|---|---|
| asset_protection | easm |
| asset_protection | pentested |
| severity | high |
| severity | low |
| severity | medium |
| sorted_by | -first_detection_date |
| sorted_by | -ip_addresses |
| sorted_by | -last_modification_date |
| sorted_by | -last_seen |
| sorted_by | -mail_service |
| sorted_by | -nameservers |
| sorted_by | -parked |
| sorted_by | -permutation |
| sorted_by | -registrar_country |
| sorted_by | -registrar_mail |
| sorted_by | -registrar_name |
| sorted_by | -registration_date |
| sorted_by | -severity |
| sorted_by | -status |
| sorted_by | -takedown_status |
| sorted_by | -top_domain__value |
| sorted_by | -vulnerability |
| sorted_by | first_detection_date |
| sorted_by | ip_addresses |
| sorted_by | last_modification_date |
| sorted_by | last_seen |
| sorted_by | mail_service |
| sorted_by | nameservers |
| sorted_by | parked |
| sorted_by | permutation |
| sorted_by | registrar_country |
| sorted_by | registrar_mail |
| sorted_by | registrar_name |
| sorted_by | registration_date |
| sorted_by | severity |
| sorted_by | status |
| sorted_by | takedown_status |
| sorted_by | top_domain__value |
| sorted_by | vulnerability |
| status | detected |
| status | ignored |
| status | resolved |
| status | tracked |
Example responses
200 Response
{
"detected": 0,
"tracked": 0,
"ignored": 0,
"resolved": 0
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | TyposquattedDomainCountByStatus |
Export Typosquatted Domains
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/typosquatted-domains/export
Export Typosquatted Domains (Permutations) data of the Organization in a csv format or json format
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| active_vulnerabilities | query | boolean | false | none |
| asset | query | integer | false | none |
| asset_groups | query | array[integer] | false | none |
| asset_protection | query | array[string] | false | Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested. |
| detection_date_after | query | string(date) | false | none |
| detection_date_before | query | string(date) | false | none |
| export_format | query | string | false | * csv - CSV |
| last_seen_after | query | string(date) | false | none |
| last_seen_before | query | string(date) | false | none |
| mail_service | query | boolean | false | none |
| modification_date_after | query | string(date) | false | none |
| modification_date_before | query | string(date) | false | none |
| org_id | query | integer | false | none |
| parked | query | boolean | false | none |
| registrar_name | query | string | false | none |
| registration_date_after | query | string(date) | false | none |
| registration_date_before | query | string(date) | false | none |
| search | query | string | false | none |
| severity | query | array[string] | false | Multiple values may be separated by commas. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | array[string] | false | Multiple values may be separated by commas. |
| teams | query | array[integer] | false | none |
| vulnerability | query | integer | false | none |
Detailed descriptions
asset_protection: Filters the typosquatted domains based on their top domain's protection. It accepts an array of values separated by commas. ex: easm,pentested.
easm- EASMpentested- Pentested
export_format: * csv - CSV
* json - JSON
severity: Multiple values may be separated by commas.
low- Lowmedium- Mediumhigh- High
sorted_by: Ordering
permutation- Permutation-permutation- Permutation (descending)top_domain__value- Top domain value-top_domain__value- Top domain value (descending)status- Status-status- Status (descending)vulnerability- Vulnerability-vulnerability- Vulnerability (descending)ip_addresses- Ip addresses-ip_addresses- Ip addresses (descending)takedown_status- Takedown status-takedown_status- Takedown status (descending)severity- Severity-severity- Severity (descending)mail_service- Mail service-mail_service- Mail service (descending)nameservers- Nameservers-nameservers- Nameservers (descending)registrar_name- Registrar name-registrar_name- Registrar name (descending)registrar_country- Registrar country-registrar_country- Registrar country (descending)registration_date- Registration date-registration_date- Registration date (descending)registrar_mail- Registrar mail-registrar_mail- Registrar mail (descending)parked- Parked-parked- Parked (descending)first_detection_date- First detection date-first_detection_date- First detection date (descending)last_modification_date- Last modification date-last_modification_date- Last modification date (descending)last_seen- Last seen-last_seen- Last seen (descending)
status: Multiple values may be separated by commas.
detected- Detectedtracked- Trackedignored- Ignoredresolved- Resolved
Enumerated Values
| Parameter | Value |
|---|---|
| asset_protection | easm |
| asset_protection | pentested |
| export_format | csv |
| export_format | json |
| severity | high |
| severity | low |
| severity | medium |
| sorted_by | -first_detection_date |
| sorted_by | -ip_addresses |
| sorted_by | -last_modification_date |
| sorted_by | -last_seen |
| sorted_by | -mail_service |
| sorted_by | -nameservers |
| sorted_by | -parked |
| sorted_by | -permutation |
| sorted_by | -registrar_country |
| sorted_by | -registrar_mail |
| sorted_by | -registrar_name |
| sorted_by | -registration_date |
| sorted_by | -severity |
| sorted_by | -status |
| sorted_by | -takedown_status |
| sorted_by | -top_domain__value |
| sorted_by | -vulnerability |
| sorted_by | first_detection_date |
| sorted_by | ip_addresses |
| sorted_by | last_modification_date |
| sorted_by | last_seen |
| sorted_by | mail_service |
| sorted_by | nameservers |
| sorted_by | parked |
| sorted_by | permutation |
| sorted_by | registrar_country |
| sorted_by | registrar_mail |
| sorted_by | registrar_name |
| sorted_by | registration_date |
| sorted_by | severity |
| sorted_by | status |
| sorted_by | takedown_status |
| sorted_by | top_domain__value |
| sorted_by | vulnerability |
| status | detected |
| status | ignored |
| status | resolved |
| status | tracked |
Example responses
200 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Export selected Typosquatted Domains
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/export", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/typosquatted-domains/export
Export selected Typosquatted Domains (Permutations) data of the Organization in a csv format or json format
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| export_format | query | string | false | * csv - CSV |
| body | body | ExportSelectedIDs | true | none |
Detailed descriptions
export_format: * csv - CSV
* json - JSON
Enumerated Values
| Parameter | Value |
|---|---|
| export_format | csv |
| export_format | json |
Example responses
200 Response
"string"
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | string |
Create Vulnerabilities from Typosquatted Domains
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/typosquatted-domains/vulns", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/typosquatted-domains/vulns
Create Vulnerabilities from Typosquatted Domains IDs.
Body parameter
{
"ids": [
0
]
}
ids:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | IDsList | true | none |
Example responses
200 Response
{
"status": "success",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BaseApiResponse |
| 400 | Bad Request | none | NotEligibleResults |
CybelAngel
CybelAngel brand protection data.
List Cybelangel Configurations
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/cybelangel/
Returns Cybelangel integration Configurations.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | false | Filter by organization id |
| page | query | integer | false | A page number within the paginated result set. |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedCybelangelList |
Create Cybelangel Configuration
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/cybelangel/
Creates a new Cybelangel integration Configuration for an Organization.
Body parameter
{
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false
}
org_id: 0
name: string
client_id: string
client_secret: string
periodic_import_enabled: false
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Cybelangel | true | none |
Example responses
201 Response
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | none | Cybelangel |
Retrieve Cybelangel Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/cybelangel/{id}/
Returns detailed information for a single Cybelangel integration Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Cybelangel |
Update Cybelangel Configuration (partial)
Code samples
# You can also use wget
curl -X PATCH https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PATCH https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.patch 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.patch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PATCH','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH /api/auth/cybelangel/{id}/
Partially updates Cybelangel integration credentials or settings.
Body parameter
{
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false
}
org_id: 0
name: string
client_id: string
client_secret: string
periodic_import_enabled: false
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
| body | body | PatchedCybelangel | false | none |
Example responses
200 Response
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Cybelangel |
Delete Cybelangel Configuration
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
const headers = {
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/cybelangel/{id}/
Permanently deletes a Cybelangel integration Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | No response body | None |
Check Cybelangel Connection
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/connection", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/cybelangel/{id}/connection
Validates Cybelangel API credentials by fetching a new access token.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | BasicResponseWithMessage |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Import Cybelangel Reports
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/cybelangel/{id}/import", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/cybelangel/{id}/import
Imports all Cybelangel Reports into Patrowl Dashboard for the given Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 400 | Bad Request | none | NotFoundResponseWithDetail |
| 401 | Unauthorized | none | NotFoundResponseWithDetail |
| 404 | Not Found | none | NotFoundResponseWithDetail |
Tickets
Internal ticketing.
List Tickets
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/tickets/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/tickets/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tickets/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/tickets/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/tickets/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/tickets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tickets/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/tickets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/tickets/
Returns a paginated list of ITSM Tickets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| created_at | query | string(date-time) | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| sorted_by | query | array[string] | false | Ordering |
| status | query | integer | false | * 0 - Unknown |
| status_name | query | string | false | none |
| updated_at | query | string(date-time) | false | none |
Detailed descriptions
sorted_by: Ordering
id- ID-id- ID (desc)status- Status-status- Status (desc)created_at- Created at-created_at- Created at (desc)updated_at- Updated at-updated_at- Updated at (desc)
status: * 0 - Unknown
* 1 - New
* 2 - In Progress
* 3 - On Hold
* 4 - Resolved
* 5 - Closed
* 6 - Canceled
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -id |
| sorted_by | -status |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | id |
| sorted_by | status |
| sorted_by | updated_at |
| status | 0 |
| status | 1 |
| status | 2 |
| status | 3 |
| status | 4 |
| status | 5 |
| status | 6 |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"identifier": "string",
"status": 0,
"status_name": "string",
"link": "string",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedTicketList |
Retrieve a Ticket
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/tickets/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/tickets/{id}/
Returns detailed information for a single ITSM Ticket.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"identifier": "string",
"status": 0,
"status_name": "string",
"link": "string",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Ticket |
Alerts
Security alerts and acknowledgements.
List Alerts
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/alerts/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/alerts/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/alerts/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/alerts/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/alerts/
Returns a paginated list of Feed Alerts.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ack | query | boolean | false | Ack |
| created_at | query | string(date-time) | false | none |
| id | query | integer | false | none |
| level | query | string | false | Level |
| limit | query | integer | false | Number of results to return per page. |
| not_ack | query | boolean | false | Not ack |
| org_id | query | integer | false | Organization |
| page | query | integer | false | A page number within the paginated result set. |
| search | query | string | false | Search in title and message. |
| sorted_by | query | array[string] | false | Ordering |
| title | query | string | false | none |
| type | query | string | false | Type |
| updated_at | query | string(date-time) | false | none |
Detailed descriptions
sorted_by: Ordering
title- Title-title- Title (descending)type- Type-type- Type (descending)level- Level-level- Level (descending)created_at- Created at-created_at- Created at (descending)updated_at- Updated at-updated_at- Updated at (descending)
Enumerated Values
| Parameter | Value |
|---|---|
| sorted_by | -created_at |
| sorted_by | -level |
| sorted_by | -title |
| sorted_by | -type |
| sorted_by | -updated_at |
| sorted_by | created_at |
| sorted_by | level |
| sorted_by | title |
| sorted_by | type |
| sorted_by | updated_at |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"type": "Control",
"level": "Information",
"message": "string",
"ack": "string",
"control": 0,
"assets": [
{
"id": 0,
"value": "string"
}
],
"vulnerabilities": [
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedFeedList |
Acknowledge an Alert
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/alerts/{id}/ack", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/alerts/{id}/ack
Marks a single Feed Alert as acknowledged.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
| 404 | Not Found | none | BasicResponseWithMessage |
Acknowledge all Alerts
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/alerts/ack", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/alerts/ack
Marks all pending Feed Alerts as acknowledged.
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | BasicResponseWithMessage |
Trending attacks (Controls)
Security control feeds.
List Controls
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/controls/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/controls/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/controls/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/controls/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/controls/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/controls/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/controls/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/controls/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/controls/
Returns a paginated list of security Controls with impacted and warning Assets.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cve_identifiers | query | string | false | none |
| cvss_vector | query | string | false | none |
| description | query | string | false | none |
| finished_at | query | string(date-time) | false | none |
| finished_at__gte | query | string(date-time) | false | none |
| finished_at__lte | query | string(date-time) | false | none |
| id | query | integer | false | none |
| limit | query | integer | false | Number of results to return per page. |
| page | query | integer | false | A page number within the paginated result set. |
| products | query | string | false | none |
| result | query | string | false | Result |
| search | query | string | false | Search in title, description, status and CVE identifiers. |
| severity | query | string | false | none |
| sorted_by | query | array[string] | false | Ordering |
| started_at | query | string(date-time) | false | none |
| started_at__gte | query | string(date-time) | false | none |
| started_at__lte | query | string(date-time) | false | none |
| status | query | integer | false | * 0 - In progress |
| teams | query | array[integer] | false | none |
| title | query | string | false | none |
| updated_at | query | string(date-time) | false | none |
| vendor | query | string | false | none |
Detailed descriptions
result: Result
0- In progress1- Not impacted3- Potentially impacted2- Impacted
sorted_by: Ordering
id- ID-id- ID (descending)title- Title-title- Title (descending)status- Status-status- Status (descending)cvss_vector- CVSS Vector-cvss_vector- CVSS Vector (descending)cve_identifiers- CVE identifiers-cve_identifiers- CVE identifiers (descending)severity- Severity-severity- Severity (descending)vendor- Vendor-vendor- Vendor (descending)products- Products-products- Products (descending)started_at- Started at-started_at- Started at (descending)finished_at- Finished at-finished_at- Finished at (descending)created_at- Created at-created_at- Created at (descending)updated_at- Updated at-updated_at- Updated at (descending)
status: * 0 - In progress
* 1 - Finished
Enumerated Values
| Parameter | Value |
|---|---|
| result | 0 |
| result | 1 |
| result | 2 |
| result | 3 |
| sorted_by | -created_at |
| sorted_by | -cve_identifiers |
| sorted_by | -cvss_vector |
| sorted_by | -finished_at |
| sorted_by | -id |
| sorted_by | -products |
| sorted_by | -severity |
| sorted_by | -started_at |
| sorted_by | -status |
| sorted_by | -title |
| sorted_by | -updated_at |
| sorted_by | -vendor |
| sorted_by | created_at |
| sorted_by | cve_identifiers |
| sorted_by | cvss_vector |
| sorted_by | finished_at |
| sorted_by | id |
| sorted_by | products |
| sorted_by | severity |
| sorted_by | started_at |
| sorted_by | status |
| sorted_by | title |
| sorted_by | updated_at |
| sorted_by | vendor |
| status | 0 |
| status | 1 |
Example responses
200 Response
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"status": "string",
"result": 0,
"cve_identifiers": [
"string"
],
"cvss_vector": "string",
"cvss_score": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"vendor": "string",
"products": [
"string"
],
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | PaginatedControlLiteList |
Retrieve a Control
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/ \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/ HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/controls/{id}/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/controls/{id}/
Returns detailed information for a single security Control.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"title": "string",
"status": "string",
"result": 0,
"cve_identifiers": [
"string"
],
"cvss_vector": "string",
"cvss_score": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"vendor": "string",
"products": [
"string"
],
"assets_impacted": [
{
"id": 0,
"value": "string"
}
],
"assets_warning": [
{
"id": 0,
"value": "string"
}
],
"vulnerabilities": [
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
],
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Control |
ITSM
ITSM integrations (Jira, GLPI, ServiceNow).
Retrieve ITSM Configuration by Config ID
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/config/
Returns the ITSM Configuration matching the given Config ID for the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | Organization id. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"options": [
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigListResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Delete ITSM Configuration
Code samples
# You can also use wget
curl -X DELETE https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
DELETE https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/?org_id=0',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.delete 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.delete('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/del/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /api/auth/itsm/{config_id}/config/del/
Deletes the ITSM Configuration identified by Config ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | Organization id. |
Example responses
200 Response
{
"status": "string",
"reason": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmBasicResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Create ITSM Configuration by Config ID
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/itsm/{config_id}/config/set/
Creates a new ITSM Configuration for the Organization using the specified Config ID path parameter.
Body parameter
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
id: string
name: string
vendor: string
auth_mode: string
is_saas: true
instance: string
ssltls_disable: true
is_default: true
app_token: string
login: string
password: string
user_token: string
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | Organization id. |
| body | body | ItsmConfig | true | none |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"config_id": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigSetResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Update ITSM Configuration by Config ID
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/config/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/itsm/{config_id}/config/set/
Updates the ITSM Configuration identified by the Config ID path parameter.
Body parameter
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
id: string
name: string
vendor: string
auth_mode: string
is_saas: true
instance: string
ssltls_disable: true
is_default: true
app_token: string
login: string
password: string
user_token: string
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | Organization id. |
| body | body | ItsmConfig | true | none |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"config_id": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigSetResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Groups by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/groups/
Lists Groups from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"groups": [
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmGroupsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Groups by Configuration and IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/groups/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/groups/{ids}
Retrieves specific Groups from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| ids | path | string | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"groups": [
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmGroupsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Issue Types by Configuration (deprecated alias)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/issuetypes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/issuetypes/
Lists Issue Types from the remote ITSM using the specified Configuration ID; deprecated alias for Jira Issue Types.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_issuetypes": [
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraIssueTypesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List Jira Issue Types by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-issuetypes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/jira-issuetypes/
Lists Jira Issue Types available on the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_issuetypes": [
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraIssueTypesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List Jira Projects by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/jira-projects/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/jira-projects/
Lists Jira Projects available on the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_projects": [
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraProjectsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List Jira Priorities
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/priorities/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/priorities/
Returns the list of priority levels available on the configured Jira server.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | none |
Example responses
200 Response
[
{
"id": "string",
"name": "string"
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [JiraPriority] | false | none | none |
| » id | string | true | none | none |
| » name | string | true | none | none |
List ITSM Projects by Configuration (deprecated alias)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/projects/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/projects/
Lists Projects from the remote ITSM using the specified Configuration ID; deprecated alias for Jira Projects.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_projects": [
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraProjectsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ServiceNow Table Names by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/snow-tablenames/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/snow-tablenames/
Lists ServiceNow Ticket table names available on the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"snow_tablenames": [
{
"key": "string",
"id": "string",
"name": "string",
"desc": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmSnowTablesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Tickets by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/tickets/
Lists Tickets from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets": [
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Tickets by Configuration and IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/tickets/{ids}
Retrieves specific Tickets from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| ids | path | string | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets": [
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Create ITSM Ticket by Configuration
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"content": "string",
"assigned_to_users": [
0
],
"assigned_to_groups": [
0
],
"priority": 0,
"vuln_ids": [
0
],
"custom_remed_ids": [
0
],
"status": 0,
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/?org_id=0',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/itsm/{config_id}/tickets/set/
Creates a Ticket on the remote ITSM using the specified Configuration ID.
Body parameter
{
"title": "string",
"content": "string",
"assigned_to_users": [
0
],
"assigned_to_groups": [
0
],
"priority": 0,
"vuln_ids": [
0
],
"custom_remed_ids": [
0
],
"status": 0,
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
title: string
content: string
assigned_to_users:
- 0
assigned_to_groups:
- 0
priority: 0
vuln_ids:
- 0
custom_remed_ids:
- 0
status: 0
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| org_id | query | integer | true | Organization id. |
| body | body | ItsmCreateTicketRequest | true | none |
Example responses
200 Response
{
"status": "string",
"ticket": {
"itsm_ticket_id": "string",
"link": "string",
"status": 0,
"status_name": "string",
"id": 0
},
"reason": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmCreateTicketResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Ticket Statuses by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/tickets/status/
Lists Ticket statuses from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets_status": [
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsStatusResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Ticket Statuses by Configuration and IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/tickets/status/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/tickets/status/{ids}
Retrieves status information for specific Tickets using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| ids | path | string | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets_status": [
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsStatusResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Users by Configuration
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/users/
Lists Users from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmUsersResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Users by Configuration and IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/{config_id}/users/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/{config_id}/users/{ids}
Retrieves specific Users from the remote ITSM using the specified Configuration ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| config_id | path | integer | true | none |
| ids | path | string | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmUsersResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Configurations
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/config/
Returns all ITSM Configurations stored for the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | Organization id. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"options": [
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigListResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Reset all ITSM Configurations
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/reset/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/config/reset/
Deletes all ITSM Configurations for the Organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | Organization id. |
Example responses
200 Response
{
"status": "string",
"reason": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | itsm_reset_serializer |
Create ITSM Configuration
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/itsm/config/set/
Creates a new ITSM Configuration for the Organization after validating the submitted settings.
Body parameter
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
id: string
name: string
vendor: string
auth_mode: string
is_saas: true
instance: string
ssltls_disable: true
is_default: true
app_token: string
login: string
password: string
user_token: string
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | Organization id. |
| body | body | ItsmConfig | true | none |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"config_id": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigSetResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Update ITSM Configuration
Code samples
# You can also use wget
curl -X PUT https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
PUT https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.put 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.put('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/config/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /api/auth/itsm/config/set/
Updates an existing ITSM Configuration or creates one when the given Config ID does not exist.
Body parameter
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
id: string
name: string
vendor: string
auth_mode: string
is_saas: true
instance: string
ssltls_disable: true
is_default: true
app_token: string
login: string
password: string
user_token: string
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | Organization id. |
| body | body | ItsmConfig | true | none |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"config_id": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmConfigSetResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Groups
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/groups/
Lists Groups from the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"groups": [
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmGroupsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Groups by IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/groups/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/groups/{ids}
Retrieves specific Groups from the remote ITSM by their vendor IDs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ids | path | string | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"groups": [
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmGroupsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Issue Types (deprecated alias)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/issuetypes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/issuetypes/
Lists Issue Types from the remote ITSM; deprecated alias for Jira Issue Types listing.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_issuetypes": [
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraIssueTypesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List Jira Issue Types
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-issuetypes/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/jira-issuetypes/
Lists Jira Issue Types available on the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_issuetypes": [
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraIssueTypesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List Jira Projects
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/jira-projects/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/jira-projects/
Lists Jira Projects available on the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_projects": [
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraProjectsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Projects (deprecated alias)
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/projects/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/projects/
Lists Projects from the remote ITSM; deprecated alias for Jira Projects listing.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"jira_projects": [
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmJiraProjectsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ServiceNow Table Names
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/snow-tablenames/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/snow-tablenames/
Lists ServiceNow Ticket table names available on the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"snow_tablenames": [
{
"key": "string",
"id": "string",
"name": "string",
"desc": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmSnowTablesResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Tickets
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/tickets/
Lists Tickets from the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets": [
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Tickets by IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/tickets/{ids}
Retrieves specific Tickets from the remote ITSM by their vendor IDs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ids | path | string | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets": [
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Create ITSM Ticket
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/?org_id=0 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"title": "string",
"content": "string",
"assigned_to_users": [
0
],
"assigned_to_groups": [
0
],
"priority": 0,
"vuln_ids": [
0
],
"custom_remed_ids": [
0
],
"status": 0,
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/?org_id=0',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/set/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/itsm/tickets/set/
Creates a Ticket on the remote ITSM and links it to the given Vulnerabilities.
Body parameter
{
"title": "string",
"content": "string",
"assigned_to_users": [
0
],
"assigned_to_groups": [
0
],
"priority": 0,
"vuln_ids": [
0
],
"custom_remed_ids": [
0
],
"status": 0,
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
title: string
content: string
assigned_to_users:
- 0
assigned_to_groups:
- 0
priority: 0
vuln_ids:
- 0
custom_remed_ids:
- 0
status: 0
jira_project: string
jira_issuetype: string
snow_tablename: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | query | integer | true | Organization id. |
| body | body | ItsmCreateTicketRequest | true | none |
Example responses
200 Response
{
"status": "string",
"ticket": {
"itsm_ticket_id": "string",
"link": "string",
"status": 0,
"status_name": "string",
"id": 0
},
"reason": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmCreateTicketResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Ticket Statuses
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/tickets/status/
Lists Ticket statuses from the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets_status": [
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsStatusResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Ticket Statuses by IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/tickets/status/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/tickets/status/{ids}
Retrieves status information for specific Tickets from the remote ITSM by their vendor IDs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ids | path | string | true | none |
| jira_project | query | string | false | Jira only: project key. |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| snow_tablename | query | string | false | ServiceNow only: table name. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"tickets_status": [
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmTicketsStatusResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
List ITSM Users
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/users/
Lists Users from the remote ITSM using the default Organization Configuration.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmUsersResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Retrieve ITSM Users by IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/users/{ids}
Retrieves specific Users from the remote ITSM by their vendor IDs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ids | path | string | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmUsersResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Search ITSM Users by IDs
Code samples
# You can also use wget
curl -X GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}?org_id=0 \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
GET https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}?org_id=0 HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}?org_id=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.get 'https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}',
params: {
'org_id' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.get('https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}', params={
'org_id': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}?org_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://dashboard.int.cloud.patrowl.io/api/auth/itsm/users/search/{ids}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/auth/itsm/users/search/{ids}
Searches for Users on the remote ITSM matching the given vendor IDs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| ids | path | string | true | none |
| limit | query | integer | false | Maximum number of elements, default 10. |
| org_id | query | integer | true | Organization id. |
| search | query | string | false | Search string. If empty, list all. |
| start_at | query | integer | false | Pagination offset, default 0. |
Example responses
200 Response
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | none | ItsmUsersResponse |
| 400 | Bad Request | none | ItsmBasicResponse |
Reports
Reporting and dashboard statistics.
Download PDF Report
Code samples
# You can also use wget
curl -X POST https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Token 1234567890abcefghijklmnopqrstuvwxyz12345'
POST https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id} HTTP/1.1
Host: dashboard.int.cloud.patrowl.io
Content-Type: application/json
Accept: application/json
const inputBody = '{
"emails": [
"user@example.com"
],
"assets": [
0
],
"vulnerabilities": [
0
],
"assetgroups": [
0
],
"assets_from_assetgroups": [
0
],
"vulnerabilities_from_assetgroups": [
0
],
"pentests": [
0
],
"assets_from_pentests": [
0
],
"vulnerabilities_from_pentests": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
};
fetch('https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
result = RestClient.post 'https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token 1234567890abcefghijklmnopqrstuvwxyz12345'
}
r = requests.post('https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Token 1234567890abcefghijklmnopqrstuvwxyz12345',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Token 1234567890abcefghijklmnopqrstuvwxyz12345"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://dashboard.int.cloud.patrowl.io/api/auth/report/{org_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/auth/report/{org_id}
Generates a PDF report for the Organization and sends it by email; supports filtering by Assets, Vulnerabilities, Asset Groups, and Campaigns.
Body parameter
{
"emails": [
"user@example.com"
],
"assets": [
0
],
"vulnerabilities": [
0
],
"assetgroups": [
0
],
"assets_from_assetgroups": [
0
],
"vulnerabilities_from_assetgroups": [
0
],
"pentests": [
0
],
"assets_from_pentests": [
0
],
"vulnerabilities_from_pentests": [
0
]
}
emails:
- user@example.com
assets:
- 0
vulnerabilities:
- 0
assetgroups:
- 0
assets_from_assetgroups:
- 0
vulnerabilities_from_assetgroups:
- 0
pentests:
- 0
assets_from_pentests:
- 0
vulnerabilities_from_pentests:
- 0
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | string | true | Your organization ID. |
| body | body | DownloadReporting | false | none |
Example responses
200 Response
{
"status": "string",
"message": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Success, the report will be generated and sent to you by e-mail. | BasicResponseWithMessage |
| 403 | Forbidden | Error, either your organization is in PoC (which is not allowed to download a report), or you do not have access to the organization | BasicResponseWithMessage |
| 404 | Not Found | Error, your organization org_id does not exist. |
BasicResponseWithMessage |
Schemas
AccessControl
{
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"campaigns": [
{
"id": 0,
"title": "string"
}
]
}
Nested control with asset_groups and campaigns lists.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_groups | [AccessControlItem] | true | none | [Serializer for asset group or campaign in access control.] |
| campaigns | [AccessControlItem] | true | none | [Serializer for asset group or campaign in access control.] |
AccessControlItem
{
"id": 0,
"title": "string"
}
Serializer for asset group or campaign in access control.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| title | string | true | none | none |
AllAssetStats
{
"total": 0,
"since_last_week": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| total | integer | true | none | none |
| since_last_week | integer | true | none | none |
Asset
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
0
],
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"owners": [
0
],
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
],
"screenshot_url": "string"
}
Asset DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| type | AssetTypeEnum | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| description | string | false | none | none |
| exposure | ExposureEnum | false | none | * unknown - Unknown* external - External* internal - Internal* restricted - Restricted |
| score | integer | true | read-only | Automatically calculated score based on Assets's Vulnerabilities. |
| protection | ProtectionInAsset | true | read-only | none |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
| created_by | string | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| tags | [integer] | false | write-only | none |
| score_level | integer | true | read-only | none |
| technologies | [any] | true | read-only | none |
| asset_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| owners | [integer] | false | write-only | none |
| groups | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| organization | integer¦null | false | none | none |
| asset_tags | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| provider | string | true | read-only | none |
| monitored_slot_lock_until | string(date-time)¦null | true | read-only | none |
| liveness | AssetLivenessEnum | true | read-only | * unknown - Unknown* up - Up* down - Down |
| www_related_domain | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| has_webservers | boolean | true | read-only | none |
| ip_state | any | true | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | IPAddressStateEnum | false | none | * active - Active* archived - Archived* unknown - Unknown |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ip_type | any | true | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | IPAddressTypeEnum | false | none | * cdn - Cdn* saas - Saas* waf - Waf* cloud - Cloud* static - Static* other - Other* private - Private* unknown - Unknown |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| last_resolution_date | string(date-time)¦null | true | read-only | none |
| related_easm | RelatedEasm¦null | false | none | Serializer to display informations about related Easm objects. |
| teams | [integer] | false | write-only | none |
| screenshot_url | string¦null | true | read-only | none |
AssetControlMultiLevel
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"criticality": 1,
"score_level": 0,
"type": "ip",
"control_impact": "Warning",
"outside_business_hours": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
| protection | ProtectionInAsset | true | read-only | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| score_level | integer | true | read-only | none |
| type | AssetTypeEnum | false | none | Deprecated: use CoreAsset.type instead.* ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| control_impact | ControlImpactEnum | true | none | * Warning - Warning |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
AssetCriticalities
{
"criticalities": {
"low": 0,
"medium": 0,
"high": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| criticalities | Criticalities | true | none | none |
AssetCriticalityFilter
{
"id": 0,
"insight_policy": 0,
"value": 1,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| value | CriticalityEnum | true | none | * 1 - Low* 2 - Medium* 3 - High |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetCriticalityFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"value": 1,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetCriticalityFilter | false | none | none |
AssetCriticalityFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": 1,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetCriticalityFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | true | read-only | none |
| value | CriticalityEnum | true | none | * 1 - Low* 2 - Medium* 3 - High |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetCriticalityFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": 1,
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetCriticalityFilterUpdate | false | none | Serializer specific to updates of AssetCriticalityFilter.To not mismatch with its read-only parent. |
AssetGroup
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
0
],
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"owners": [
0
],
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
AssetGroup DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
| description | string | false | none | none |
| organization | integer | true | none | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| tags | [integer] | false | write-only | none |
| assets | AssetLite | true | read-only | AssetLite DRF Serializer definition. |
| owners | [integer] | false | write-only | none |
| asset_group_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| asset_group_tags | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| is_dynamic | boolean | false | none | none |
| filters | [any] | true | read-only | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| teams | [integer] | false | none | none |
AssetGroupLite
{
"id": 0,
"title": "string",
"assets": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"criticality": 1
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
| assets | [any] | true | read-only | none |
| organization | integer | true | none | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| asset_group_tags | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| is_dynamic | boolean | false | none | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
AssetInList
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"created_by": "string",
"activevulns": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_tags": {
"property1": null,
"property2": null
},
"organization": 0,
"score_level": 0.1,
"asset_owners": {
"property1": null,
"property2": null
},
"liveness": "unknown",
"outside_business_hours": 0,
"monitored_slot_locked": true,
"ip_type": "cdn",
"related_technologies": {
"id": 0,
"product": "string",
"vendor": "string",
"version": "string",
"impacted_by_cve": true
},
"thumbnail_url": "string"
}
Asset DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| type | AssetTypeEnum | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| description | string | false | none | none |
| exposure | ExposureEnum | false | none | * unknown - Unknown* external - External* internal - Internal* restricted - Restricted |
| score | integer | true | read-only | Automatically calculated score based on Assets's Vulnerabilities. |
| protection | ProtectionInAsset | true | none | none |
| created_by | string | false | none | none |
| activevulns | integer | true | read-only | Return the number of related active vulnerabilities. |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
| asset_tags | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| organization | integer¦null | false | none | none |
| score_level | number(double) | true | read-only | none |
| asset_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| liveness | AssetLivenessEnum | true | read-only | * unknown - Unknown* up - Up* down - Down |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
| monitored_slot_locked | boolean | false | none | none |
| ip_type | any | true | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | IPAddressTypeEnum | false | none | * cdn - Cdn* saas - Saas* waf - Waf* cloud - Cloud* static - Static* other - Other* private - Private* unknown - Unknown |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| related_technologies | TechnologyAssetInList¦null | true | read-only | none |
| thumbnail_url | string¦null | true | read-only | none |
AssetLite
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
| protection | ProtectionInAsset | true | read-only | none |
| outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
AssetLivenessEnum
"unknown"
unknown- Unknownup- Updown- Down
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * unknown - Unknown* up - Up* down - Down |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | unknown |
| anonymous | up |
| anonymous | down |
AssetProtectionAvailabilityEnum
"available"
available- Availableunavailable_custom_asset- Unavailable Custom Assetunavailable_archived_ip- Unavailable Archived Ipunavailable_ineligible_ip- Unavailable Ineligible Ip
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * available - Available* unavailable_custom_asset - Unavailable Custom Asset* unavailable_archived_ip - Unavailable Archived Ip* unavailable_ineligible_ip - Unavailable Ineligible Ip |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | available |
| anonymous | unavailable_custom_asset |
| anonymous | unavailable_archived_ip |
| anonymous | unavailable_ineligible_ip |
AssetProtectionEnum
"unprotected"
unprotected- Unprotectedeasm- EASMpentested- Pentested
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | unprotected |
| anonymous | easm |
| anonymous | pentested |
AssetProtectionRecordAutoFromEnum
"none"
none- Nonepentest- Pentest Activation/Deactivationineligible_ip- Ineligible IP Downgradeauto_easm- Auto-EASM feature enabled at the organization level
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * none - None* pentest - Pentest Activation/Deactivation* ineligible_ip - Ineligible IP Downgrade* auto_easm - Auto-EASM feature enabled at the organization level |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | none |
| anonymous | pentest |
| anonymous | ineligible_ip |
| anonymous | auto_easm |
AssetProtectionStatus
{
"protection": {
"status": "unprotected",
"availability": "available"
},
"easm": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"auto": true,
"auto_from": "none",
"total_credits": 0,
"credits_in_use": 0
},
"pentested": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"slot_locked_until": "2019-08-24T14:15:22Z",
"outside_business_hours": 0,
"auto": true,
"auto_from": "none",
"total_slots": 0,
"slots_in_use": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| protection | Protection | true | read-only | none |
| easm | EasmStatus¦null | true | read-only | none |
| pentested | PentestedStatus¦null | true | read-only | none |
AssetStatsOut
{
"all": {
"total": 0,
"since_last_week": 0
},
"easm": {
"total": 0,
"since_last_week": 0,
"remaining_credits": 0
},
"protected": {
"total": 0,
"since_last_week": 0,
"remaining_slots": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| all | AllAssetStats | true | none | none |
| easm | EASMAssetStats | true | none | none |
| protected | ProtectedAssetStats | true | none | none |
AssetTag
{
"id": 0,
"value": "string",
"organization": 0
}
AssetTag DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | none |
| organization | integer | true | none | none |
AssetTagBulkCreate
{
"asset_ids": [
1
],
"tag_ids": [
1
],
"organization_id": 1
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_ids | [integer] | true | none | none |
| tag_ids | [integer] | true | none | none |
| organization_id | integer | true | none | none |
AssetTypeEnum
"ip"
ip- ipip-range- ip-rangeip-subnet- ip-subnetfqdn- fqdndomain- domainkeyword- keywordother- other
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | ip |
| anonymous | ip-range |
| anonymous | ip-subnet |
| anonymous | fqdn |
| anonymous | domain |
| anonymous | keyword |
| anonymous | other |
AssetTypeFilter
{
"id": 0,
"insight_policy": 0,
"value": "ip",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| value | AssetTypeEnum | true | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetTypeFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"value": "ip",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetTypeFilter | false | none | none |
AssetTypeFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": "ip",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetTypeFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | true | read-only | none |
| value | AssetTypeEnum | true | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetTypeFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": "ip",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetTypeFilterUpdate | false | none | Serializer specific to updates of AssetTypeFilter.To not mismatch with its read-only parent. |
AssetTypes
{
"types": {
"ip": 0,
"domain": 0,
"custom": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| types | Types | true | none | none |
AssetValueFilter
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| operation | TextFilterOperationEnum | true | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | true | none | none |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetValueFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetValueFilter | false | none | none |
AssetValueFilterUpdate
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetValueeFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | true | read-only | none |
| operation | TextFilterOperationEnum | true | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | true | none | none |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
AssetValueFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetValueFilterUpdate | false | none | Serializer specific to updates of AssetValueeFilter.To not mismatch with its read-only parent. |
AssetsAddOwnersSuccess
{
"score": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| score | string | true | none | none |
AssetsRefreshScoreSuccess
{
"score": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| score | string | true | none | none |
AssetsRemoveOwnersSuccess
{
"score": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| score | string | true | none | none |
AutoEASMEnabled
{
"auto_easm": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| auto_easm | boolean | true | none | none |
AutoFilterOperatorEnum
"contains"
contains- Containsstartswith- Startswithendswith- Endswithequals- Equalsgt- Greater Thangte- Greater Than Equalslt- Less Thanlte- Less Than Equalsisnull- Isnullexact- Exact
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | contains |
| anonymous | startswith |
| anonymous | endswith |
| anonymous | equals |
| anonymous | gt |
| anonymous | gte |
| anonymous | lt |
| anonymous | lte |
| anonymous | isnull |
| anonymous | exact |
AutoTagFilterAssetCriticality
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 1,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetCriticalityUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 1,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetDescription
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoTagFilterOperationEnum | true | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetDescriptionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoTagFilterOperationEnum | true | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetLiveness
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unknown",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetLivenessEnum | true | none | * unknown - Unknown* up - Up* down - Down |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetLivenessUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unknown",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetLivenessEnum | true | none | * unknown - Unknown* up - Up* down - Down |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetPentestOptionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | OutsideBusinessHoursEnum | true | none | * 0 - unactivated* 1 - activated |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetProtectionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unprotected",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetProtectionEnum | true | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetType
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "ip",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetTypeEnum | true | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetTypeUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "ip",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetTypeEnum | true | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetValue
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoTagFilterOperationEnum | true | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterAssetValueUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | string | true | read-only | none |
| operation | AutoTagFilterOperationEnum | true | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterIn
{
"id": 0,
"name": "string",
"field": "asset_value",
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Base serializer necessary to abstract Auto tag filters.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| field | FieldEnum | true | none | * asset_value - asset_value* asset_type - asset_type* asset_criticality - asset_criticality* asset_description - asset_description* asset_liveness - asset_liveness* asset_protection - asset_protection* asset_pentest_option - asset_pentest_option |
| operation | AutoFilterOperatorEnum | true | none | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | string | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterOperationEnum
"exact"
exact- Exactcontains- Containsstartswith- Starts withendswith- Ends with
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | exact |
| anonymous | contains |
| anonymous | startswith |
| anonymous | endswith |
AutoTagFilterPentestOption
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | OutsideBusinessHoursEnum | true | none | * 0 - unactivated* 1 - activated |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagFilterProtection
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unprotected",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| field | string | true | read-only | none |
| operation | AutoFilterOperatorEnum | true | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetProtectionEnum | true | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagPoliciesBulkDeleteSuccess
{
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
AutoTagPoliciesRemoveFiltersSuccess
{
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
AutoTagPolicy
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag": "string",
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| is_enabled | boolean | true | none | none |
| tag | string | true | write-only | none |
| tag_id | integer | true | read-only | none |
| tag_value | string | true | read-only | none |
| filters | [any] | true | read-only | none |
| organization | integer | true | none | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
AutoTagPolicyBulkDelete
{
"ids": [
[
0
]
],
"remove_tag": false,
"remove_tag_all": false
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [array] | true | none | none |
| remove_tag | boolean | false | none | none |
| remove_tag_all | boolean | false | none | none |
AutotagFiltersIn
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetValue | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetType | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetCriticality | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetDescription | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetLiveness | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterProtection | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterPentestOption | false | none | none |
AutotagFiltersUpdateOut
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetValueUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetTypeUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetCriticalityUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetDescriptionUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetLivenessUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetProtectionUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AutoTagFilterAssetPentestOptionUpdate | false | none | none |
Banner
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
Serializer for Banner endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| host | string | false | none | none |
| port | integer¦null | false | none | none |
| text | string | false | none | none |
BaseApiResponse
{
"status": "success",
"message": "string"
}
Serializer for the basic API response. Can be overriden to implement more flexible response.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ResponseStatusEnum | true | none | * success - Success* partial - Partial* error - Error |
| message | string | true | none | none |
BasicResponse
{
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
BasicResponseWithMessage
{
"status": "string",
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| message | string | true | none | none |
BlankEnum
""
Properties
None
Blocklist
{
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
BySeverity
{
"severity": 0,
"count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| severity | integer | true | none | none |
| count | integer | true | none | none |
CVE
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
],
"related_assets_count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| identifier | string | true | none | none |
| published_at | string(date-time) | true | none | none |
| severity | number | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| cvss_score | number(double)¦null | false | none | none |
| threat_info | ThreatInfo | true | none | none |
| technologies | [TechnologyLite] | true | read-only | none |
| description | string | true | none | none |
| references | [string]¦null | false | none | none |
| related_assets_count | integer | true | none | none |
CVEDetailSerializerOut
{
"id": 0,
"identifier": "string",
"cwe": "string",
"cwe_name": "string",
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"exploits": [
{
"id": 0,
"reference": "http://example.com",
"source": "string",
"published_at": "2019-08-24T14:15:22Z",
"modified_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
],
"cvss_score": 0.1,
"cvss_vector": "string",
"cvss_version": "4",
"epss_score": 0.1,
"epss_percentile": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"published_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| identifier | string | true | read-only | none |
| cwe | string | true | read-only | Common Weakness Enumeration id synced from Arsenal. |
| cwe_name | string | true | read-only | Common Weakness Enumeration name synced from Arsenal. |
| technologies | [TechnologyLite] | true | read-only | none |
| exploits | [Exploit] | true | none | none |
| cvss_score | number(double)¦null | true | read-only | none |
| cvss_vector | string | true | read-only | none |
| cvss_version | any | true | read-only | CVSS version synced from Arsenal. It is dynamically computed on Arsenal on serialization. * 4 - CVSS4* 3.1 - CVSS3* 2 - CVSS2* `` - No version |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | CvssVersionEnum | false | none | * 4 - CVSS4* 3.1 - CVSS3* 2 - CVSS2* `` - No version |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | BlankEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| epss_score | number(double)¦null | true | read-only | none |
| epss_percentile | number(double)¦null | true | read-only | EPSS Percentile is the percentile of the current score (the proportion of all scored vulnerabilities with the same or lower EPSS score). Synced from arsenal from field with same name. |
| severity | any | true | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | true | read-only | none |
| references | [string]¦null | true | read-only | none |
| threat_info | ThreatInfo | true | none | none |
| published_at | string(date-time) | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
CVESerializerV2
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| identifier | string | true | none | none |
| published_at | string(date-time) | true | none | none |
| severity | number | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| cvss_score | number(double)¦null | false | none | none |
| threat_info | ThreatInfo | true | none | none |
| technologies | [TechnologyLite] | true | read-only | none |
| description | string | true | none | none |
| references | [string]¦null | false | none | none |
CampaignAttachment
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer for Vulnerability Campaign endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
| extension | string | true | read-only | return the file extension. |
| url | string | true | read-only | return the url. |
| created_at | string(date-time) | false | none | none |
Certificate
{
"id": 0,
"port": -2147483648,
"host_id": 0,
"host": "string",
"serial_number": "string",
"data_text": "string",
"data_pem": "string",
"data_parsed": null,
"is_expired": true,
"is_mismatched": true,
"is_selfsigned": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Certificate endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| port | integer | true | read-only | none |
| host_id | integer | true | none | none |
| host | string | false | none | none |
| serial_number | string¦null | false | none | none |
| data_text | string¦null | false | none | none |
| data_pem | string¦null | false | none | none |
| data_parsed | any | false | none | none |
| is_expired | boolean | false | none | none |
| is_mismatched | boolean | false | none | none |
| is_selfsigned | boolean | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
CertificateLite
{
"id": 0,
"port": 0,
"host": "string",
"serial_number": "string",
"data_text": "string"
}
Lite Serializer for Certificate endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| port | integer | true | none | none |
| host | string | false | none | none |
| serial_number | string¦null | false | none | none |
| data_text | string¦null | false | none | none |
Comment
{
"id": 0,
"text": "string",
"author": "string",
"created_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
Serializer for comment endpoint
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| text | string | true | none | none |
| author | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
| is_editable | boolean | true | read-only | none |
Control
{
"id": 0,
"title": "string",
"status": "string",
"result": 0,
"cve_identifiers": [
"string"
],
"cvss_vector": "string",
"cvss_score": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"vendor": "string",
"products": [
"string"
],
"assets_impacted": [
{
"id": 0,
"value": "string"
}
],
"assets_warning": [
{
"id": 0,
"value": "string"
}
],
"vulnerabilities": [
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
],
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Control endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| status | string | true | none | none |
| result | integer¦null | true | read-only | none |
| cve_identifiers | [string] | false | none | none |
| cvss_vector | string | false | none | none |
| cvss_score | number(double) | true | read-only | none |
| severity | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| description | string | false | none | none |
| references | [string] | false | none | none |
| vendor | string | false | none | none |
| products | [string] | false | none | none |
| assets_impacted | [ControlAsset] | true | read-only | [Serializer for Control's asset] |
| assets_warning | [ControlAsset] | true | read-only | [Serializer for Control's asset] |
| vulnerabilities | [ControlVulnerability] | true | read-only | [Serializer for Control's vulnerability] |
| started_at | string(date-time)¦null | false | none | none |
| finished_at | string(date-time)¦null | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
ControlAsset
{
"id": 0,
"value": "string"
}
Serializer for Control's asset
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
ControlImpactEnum
"Warning"
Warning- Warning
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * Warning - Warning |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Warning |
ControlLite
{
"id": 0,
"title": "string",
"status": "string",
"result": 0,
"cve_identifiers": [
"string"
],
"cvss_vector": "string",
"cvss_score": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"vendor": "string",
"products": [
"string"
],
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Control endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| status | string | true | none | none |
| result | integer¦null | true | read-only | none |
| cve_identifiers | [string] | false | none | none |
| cvss_vector | string | false | none | none |
| cvss_score | number(double) | true | read-only | none |
| severity | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| description | string | false | none | none |
| references | [string] | false | none | none |
| vendor | string | false | none | none |
| products | [string] | false | none | none |
| started_at | string(date-time)¦null | false | none | none |
| finished_at | string(date-time)¦null | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time) | true | read-only | none |
ControlVulnerability
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
Serializer for Control's vulnerability
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| user_friendly_id | string | false | none | none |
| asset | integer | true | none | none |
| asset_value | string | true | none | none |
| title | string | false | none | none |
| severity | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
Count
{
"count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
CreateAsset
{
"organization": 0,
"value": "string",
"description": "string",
"criticality": 1,
"exposure": "unknown",
"tags": [
0
],
"owners": [
0
],
"teams": [
0
]
}
Mixin to validate teams field. This field is optional and can be a list of teams.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| organization | integer | true | none | none |
| value | string | true | none | none |
| description | string | false | none | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| exposure | ExposureEnum | false | none | * unknown - Unknown* external - External* internal - Internal* restricted - Restricted |
| tags | [integer] | false | write-only | none |
| owners | [integer] | false | write-only | none |
| teams | [integer] | false | none | none |
CreateInsightPolicy
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| description | string | false | none | none |
| is_enabled | boolean | false | none | none |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| created_by | UserLite | true | read-only | none |
| organization | integer | true | none | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| active_vulnerabilities | integer | true | read-only | Return the number of related active vulnerabilities. |
| filters | [object] | true | read-only | none |
| » additionalProperties | any | false | none | none |
| already_applied | boolean | true | read-only | none |
CreateTag
{
"value": "string",
"description": "",
"organization": 0,
"asset_ids": [
1
]
}
Serializer dedicated to tag creation input via the TagSet endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | string | true | none | none |
| description | string | false | none | none |
| organization | integer | true | none | none |
| asset_ids | [integer] | false | none | none |
CreateVulnerabilitiesInsightSerializerOut
{
"failures": [
{
"id": 0,
"message": "string",
"title": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| failures | [InsightActionResponse] | true | none | none |
CreditsData
{
"available": 0,
"limit": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| available | integer | true | read-only | none |
| limit | integer | true | read-only | none |
Criticalities
{
"low": 0,
"medium": 0,
"high": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| low | integer | true | none | none |
| medium | integer | true | none | none |
| high | integer | true | none | none |
CriticalityEnum
1
1- Low2- Medium3- High
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 1 - Low* 2 - Medium* 3 - High |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 1 |
| anonymous | 2 |
| anonymous | 3 |
CurrentUser
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for the current-user endpoint (GET /api/auth/user/current).
Overrides the teams field to use :meth:TeamQueryset.for_user
instead of the raw M2M, so ORGADMINs without a direct team linking
still see all teams in their organization.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| username | string | true | none | Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| string(email) | true | none | none | |
| last_login | string(date-time)¦null | true | read-only | none |
| is_superuser | boolean | true | read-only | Designates that this user has all permissions without explicitly assigning them. |
| is_staff | boolean | true | read-only | Designates whether the user can log into this admin site. |
| is_active | boolean | true | read-only | Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
| changed_first_password | boolean | true | read-only | none |
| orgs | [orgs] | true | read-only | none |
| current_org | current_org | true | read-only | none |
| is_org_admin | boolean | true | read-only | none |
| role | RoleEnum | true | none | * 2 - Standard* 3 - Auditor* 4 - Organization Admin |
| from_sso | boolean | true | read-only | none |
| emails_subscribed | [EmailSubscription] | true | read-only | none |
| intercom | intercom | true | read-only | none |
| teams | [TeamLite] | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
CvssVersionEnum
"4"
4- CVSS43.1- CVSS32- CVSS2- `` - No version
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * 4 - CVSS4* 3.1 - CVSS3* 2 - CVSS2* `` - No version |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 4 |
| anonymous | 3.1 |
| anonymous | 2 |
Cybelangel
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
CybelangelConfig serializer definition
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| org_id | integer | true | none | none |
| name | string | false | none | none |
| client_id | string | true | none | none |
| client_secret | string | true | write-only | none |
| periodic_import_enabled | boolean | false | none | none |
| is_token_expired | boolean | true | read-only | Check if the connexion can be established with the Cybelangel server. |
DeleteAssetsOut
{
"status": "string",
"message": "string",
"count": 0
}
Serializer that implements a layer of validation to reject any extra field.
Prefer using the ExtraFieldValidatorMixin than this serializer.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| message | string | true | none | none |
| count | integer | true | none | none |
Domain
{
"id": 0,
"name": "string",
"asset": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0,
"parent_domain": {
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
},
"subdomains": [
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
],
"whois": {
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
},
"is_registered": true,
"dnsrecords": [
null
],
"ip_addresses": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
],
"popularity_ranks": [
null
],
"categories": [
null
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Domain endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| asset | integer | true | none | none |
| asset_protection | ProtectionInAsset | true | read-only | none |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
| parent_domain | DomainLite | false | none | Lite Serializer for Domain endpoint. |
| subdomains | [DomainLite] | false | none | [Lite Serializer for Domain endpoint.] |
| whois | DomainWhoIsRecord | false | none | Serializer for DomainWhoisRecord endpoint. |
| is_registered | boolean | false | none | none |
| dnsrecords | [any] | true | none | none |
| ip_addresses | [DomainIPAddress] | true | read-only | [Read-only serializer for a DomainIPAddress object (used for a domain's IP address history).] |
| popularity_ranks | [any] | true | none | none |
| categories | [any] | true | none | none |
| search_engines_results | [any] | true | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
DomainIPAddress
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
Read-only serializer for a DomainIPAddress object (used for a domain's IP address history).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| address | string | true | read-only | none |
| asset_id | integer | true | read-only | none |
| ports | [integer] | true | read-only | none |
| state | DomainIPAddressStateEnum | true | read-only | * active - Active* archived - Archived |
| first_resolved_at | string(date-time)¦null | true | read-only | none |
| last_resolved_at | string(date-time)¦null | true | read-only | none |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
| asset_protection | ProtectionInAsset | true | read-only | none |
| type | string | true | read-only | none |
| provider | string | true | read-only | none |
DomainIPAddressStateEnum
"active"
active- Activearchived- Archived
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * active - Active* archived - Archived |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | active |
| anonymous | archived |
DomainLite
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
Lite Serializer for Domain endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| asset_id | integer | true | none | none |
| name | string | true | none | none |
| asset_protection | ProtectionInAsset | true | read-only | none |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
DomainWhoIsRecord
{
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
}
Serializer for DomainWhoisRecord endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| text | string¦null | false | none | none |
| registrar | string¦null | false | none | none |
| registrar_id | string¦null | false | none | none |
| registrar_url | string¦null | false | none | none |
| registrar_status | any | false | none | none |
| registrant_name | string¦null | false | none | none |
| registrant_country | string¦null | false | none | none |
| registrant_state_province | string¦null | false | none | none |
| name_servers | any | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
| expiration_date | any | false | none | none |
DownloadReporting
{
"emails": [
"user@example.com"
],
"assets": [
0
],
"vulnerabilities": [
0
],
"assetgroups": [
0
],
"assets_from_assetgroups": [
0
],
"vulnerabilities_from_assetgroups": [
0
],
"pentests": [
0
],
"assets_from_pentests": [
0
],
"vulnerabilities_from_pentests": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| emails | [string] | false | none | none |
| assets | [integer] | false | none | none |
| vulnerabilities | [integer] | false | none | none |
| assetgroups | [integer] | false | none | none |
| assets_from_assetgroups | [integer] | false | none | none |
| vulnerabilities_from_assetgroups | [integer] | false | none | none |
| pentests | [integer] | false | none | none |
| assets_from_pentests | [integer] | false | none | none |
| vulnerabilities_from_pentests | [integer] | false | none | none |
DynamicCriticalityFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": 1,
"type": "string",
"asset_group": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | CriticalityEnum | true | none | * 1 - Low* 2 - Medium* 3 - High |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicFilterGeneric
{
"type": "asset_protection",
"operation": "string",
"value": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type | DynamicFilterGenericTypeEnum | true | none | * asset_protection - asset_protection* assset_pentest_option - assset_pentest_option* tag - tag* asset_value - asset_value* asset_type - asset_type* asset_criticality - asset_criticality* port - port* asset_liveness - asset_liveness |
| operation | string | false | none | none |
| value | string | true | none | none |
DynamicFilterGenericTypeEnum
"asset_protection"
asset_protection- asset_protectionassset_pentest_option- assset_pentest_optiontag- tagasset_value- asset_valueasset_type- asset_typeasset_criticality- asset_criticalityport- portasset_liveness- asset_liveness
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * asset_protection - asset_protection* assset_pentest_option - assset_pentest_option* tag - tag* asset_value - asset_value* asset_type - asset_type* asset_criticality - asset_criticality* port - port* asset_liveness - asset_liveness |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | asset_protection |
| anonymous | assset_pentest_option |
| anonymous | tag |
| anonymous | asset_value |
| anonymous | asset_type |
| anonymous | asset_criticality |
| anonymous | port |
| anonymous | asset_liveness |
DynamicFiltersBase
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": "unprotected",
"type": "string",
"asset_group": 0
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicProtectionFilter | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicPentestOptionFilter | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicTagFilter | false | none | AssetLite DRF Serializer definition. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicTextFilter | false | none | AssetLite DRF Serializer definition. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicTypeFilter | false | none | AssetLite DRF Serializer definition. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicCriticalityFilter | false | none | AssetLite DRF Serializer definition. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicPortFilter | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DynamicStatusFilter | false | none | AssetLite DRF Serializer definition. |
DynamicPentestOptionFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": 0,
"type": "string",
"asset_group": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | OutsideBusinessHoursEnum | true | none | * 0 - unactivated* 1 - activated |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicPortFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": [
0
],
"type": "string",
"asset_group": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | [integer] | true | none | none |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicProtectionFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": "unprotected",
"type": "string",
"asset_group": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | AssetProtectionEnum | true | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicStatusFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": "unknown",
"type": "string",
"asset_group": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | AssetLivenessEnum | true | none | * unknown - Unknown* up - Up* down - Down |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicTagFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": [
{
"id": 0,
"value": "string",
"organization": 0
}
],
"type": "string",
"asset_group": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | [AssetTag] | true | read-only | [AssetTag DRF Serializer definition.] |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicTextFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"operation": "contains",
"value": "string",
"type": "string",
"asset_group": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| operation | TextFilterOperationEnum | false | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | true | none | none |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
DynamicTypeFilter
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"value": "ip",
"type": "string",
"asset_group": 0
}
AssetLite DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| value | AssetTypeEnum | true | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| type | string | true | read-only | none |
| asset_group | integer¦null | false | none | none |
EASMAssetStats
{
"total": 0,
"since_last_week": 0,
"remaining_credits": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| total | integer | true | none | none |
| since_last_week | integer | true | none | none |
| remaining_credits | integer | true | none | none |
EasmObjects
{
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
Information about a single related Easm object.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| easm_objects | [ProtectionDisplayAsset] | true | none | [Minimal serializer to display asset protection informations.] |
| count | integer | true | none | none |
EasmStatus
{
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"auto": true,
"auto_from": "none",
"total_credits": 0,
"credits_in_use": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| last_updated_at | string(date-time)¦null | true | read-only | none |
| last_updated_by | string(email)¦null | true | read-only | none |
| auto | boolean | true | read-only | none |
| auto_from | AssetProtectionRecordAutoFromEnum | true | none | * none - None* pentest - Pentest Activation/Deactivation* ineligible_ip - Ineligible IP Downgrade* auto_easm - Auto-EASM feature enabled at the organization level |
| total_credits | integer | true | read-only | none |
| credits_in_use | integer | true | read-only | none |
EmailSubscription
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| is_subscribed | boolean | true | none | none |
| key | KeyEnum | true | none | * controls - New active trending attack done* weekly - Periodic report (each monday)* vulns - New vulnerability* new-org - New organization is available* retest - New retest has been requested* owner - You've been assigned to a vulnerability or remediation |
| description | string | true | none | none |
EventComment
{
"id": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"author": "user@example.com",
"text": "string",
"scope": "string",
"updated_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
Serializer for Comment endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| created_at | string(date-time) | true | none | none |
| message | string | false | none | none |
| author | string(email) | false | none | none |
| text | string | false | none | none |
| scope | string | false | none | none |
| updated_at | string(date-time) | true | none | none |
| is_editable | boolean | true | read-only | none |
Exploit
{
"id": 0,
"reference": "http://example.com",
"source": "string",
"published_at": "2019-08-24T14:15:22Z",
"modified_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| reference | string(uri) | false | none | Exploit link synced from Arsenal. |
| source | string | true | none | Exploit source synced from Arsenal. |
| published_at | string(date-time)¦null | false | none | Publication date from Arsenal. |
| modified_at | string(date-time)¦null | false | none | Modification date from Arsenal. |
| created_at | string(date-time) | false | none | none |
ExportSelectedIDs
{
"ids": [
0
]
}
Serializer for the export selected IDs.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [integer] | true | none | none |
ExposureEnum
"unknown"
unknown- Unknownexternal- Externalinternal- Internalrestricted- Restricted
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * unknown - Unknown* external - External* internal - Internal* restricted - Restricted |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | unknown |
| anonymous | external |
| anonymous | internal |
| anonymous | restricted |
ExternalVulnerability
{
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
}
Serializer for ExternalV Vulnerabilities
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string¦null | false | none | none |
| description | string | false | none | none |
| severity | SeverityEnum | true | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| solution_priority | VulnerabilitySolutionPriorityEnum | true | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| solution_effort | VulnerabilitySolutionEffortEnum | true | none | * low - Low* medium - Medium* high - High |
| cvss_vector | string¦null | false | none | none |
| cvss_score | number(double)¦null | false | none | none |
| solution_headline | string¦null | false | none | none |
| solution | string | false | none | none |
Feed
{
"id": 0,
"title": "string",
"type": "Control",
"level": "Information",
"message": "string",
"ack": "string",
"control": 0,
"assets": [
{
"id": 0,
"value": "string"
}
],
"vulnerabilities": [
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Alert endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
| type | FeedTypeEnum | false | none | * Control - Control* Vulnerability - Vuln* Retest - Retest* Protection Liberation - Protection Liberation |
| level | LevelEnum | false | none | * Information - Info* Scanning - Scan* Not impacted - Not Impacted* Impacted - Impacted* Warning - Warning* Predictive - Predictive |
| message | string | false | none | none |
| ack | string | true | read-only | none |
| control | integer¦null | false | none | none |
| assets | [ControlAsset] | true | read-only | [Serializer for Control's asset] |
| vulnerabilities | [ControlVulnerability] | true | read-only | [Serializer for Control's vulnerability] |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
FeedTypeEnum
"Control"
Control- ControlVulnerability- VulnRetest- RetestProtection Liberation- Protection Liberation
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * Control - Control* Vulnerability - Vuln* Retest - Retest* Protection Liberation - Protection Liberation |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Control |
| anonymous | Vulnerability |
| anonymous | Retest |
| anonymous | Protection Liberation |
FieldEnum
"asset_value"
asset_value- asset_valueasset_type- asset_typeasset_criticality- asset_criticalityasset_description- asset_descriptionasset_liveness- asset_livenessasset_protection- asset_protectionasset_pentest_option- asset_pentest_option
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * asset_value - asset_value* asset_type - asset_type* asset_criticality - asset_criticality* asset_description - asset_description* asset_liveness - asset_liveness* asset_protection - asset_protection* asset_pentest_option - asset_pentest_option |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | asset_value |
| anonymous | asset_type |
| anonymous | asset_criticality |
| anonymous | asset_description |
| anonymous | asset_liveness |
| anonymous | asset_protection |
| anonymous | asset_pentest_option |
FilterPolymorphic
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightTitleFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightPolicyInsightSubTopicFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightSeverityFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetValueFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetCriticalityFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetTypeFilterTyped | false | none | none |
GenerateTokenResponse
{
"token": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| token | string | true | none | none |
IDsList
{
"ids": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [integer] | true | none | none |
IPAddress
{
"id": 0,
"asset": 0,
"address": "string",
"type": "cdn",
"in_blocklist": true,
"general_infos": {
"id": 0,
"asn_cidr": "string",
"asn_number": "string",
"asn_registry": "string",
"asn_description": "string",
"asn_country_code": "string"
},
"domains": [
{
"id": 0,
"name": "string",
"asset_id": 0,
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
}
}
],
"blocklists": [
null
],
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for IPAddress endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| asset | integer | true | none | none |
| address | string | true | none | none |
| type | IPAddressTypeEnum | true | none | * cdn - Cdn* saas - Saas* waf - Waf* cloud - Cloud* static - Static* other - Other* private - Private* unknown - Unknown |
| in_blocklist | boolean | false | none | none |
| general_infos | IPGeneralInfo | false | none | Serializer for IPGeneralInfo endpoint. |
| domains | [IPAddressDomain] | true | read-only | [Read-only serializer for a DomainIPAddress object (used for a IP address' domain history).] |
| blocklists | [any] | true | none | none |
| ports | [PortLite] | false | none | [Lite serializer for Port endpoint.] |
| search_engines_results | [any] | true | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
IPAddressDomain
{
"id": 0,
"name": "string",
"asset_id": 0,
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
}
}
Read-only serializer for a DomainIPAddress object (used for a IP address' domain history).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| asset_id | integer | true | read-only | none |
| last_resolved_at | string(date-time)¦null | true | read-only | none |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
| asset_protection | ProtectionInAsset | true | none | none |
IPAddressStateEnum
"active"
active- Activearchived- Archivedunknown- Unknown
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * active - Active* archived - Archived* unknown - Unknown |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | active |
| anonymous | archived |
| anonymous | unknown |
IPAddressTypeEnum
"cdn"
cdn- Cdnsaas- Saaswaf- Wafcloud- Cloudstatic- Staticother- Otherprivate- Privateunknown- Unknown
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * cdn - Cdn* saas - Saas* waf - Waf* cloud - Cloud* static - Static* other - Other* private - Private* unknown - Unknown |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | cdn |
| anonymous | saas |
| anonymous | waf |
| anonymous | cloud |
| anonymous | static |
| anonymous | other |
| anonymous | private |
| anonymous | unknown |
IPGeneralInfo
{
"id": 0,
"asn_cidr": "string",
"asn_number": "string",
"asn_registry": "string",
"asn_description": "string",
"asn_country_code": "string"
}
Serializer for IPGeneralInfo endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| asn_cidr | string¦null | false | none | none |
| asn_number | string¦null | false | none | none |
| asn_registry | string¦null | false | none | none |
| asn_description | string¦null | false | none | none |
| asn_country_code | string¦null | false | none | none |
ImportCSVAsset
{
"organization": 0,
"file": "http://example.com",
"teams": [
0
]
}
Mixin to validate teams field. This field is optional and can be a list of teams.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| organization | integer | true | none | none |
| file | string(uri) | true | none | none |
| teams | [integer] | false | none | none |
InsightActionResponse
{
"id": 0,
"message": "string",
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| message | string | true | none | none |
| title | string | true | none | none |
InsightBase
{
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Serializer for Insight endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | read-only | none |
| light_description | string | false | none | none |
| severity | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| status | InsightStatusEnum | true | read-only | * 0 - New* 1 - Acknowledged* 2 - False positive* 3 - Fixed* 4 - Reopened* 5 - Duplicate* 6 - Benign* 7 - Risk acceptance |
| subtopic | InsightSubTopic | true | none | Serializer for SubTopic Serializer definition. |
| asset | AssetLite | true | none | AssetLite DRF Serializer definition. |
| topic | InsightTopic | true | none | Serializer for Topic DRF Serializer definition. |
| created_at | string(date-time) | true | read-only | none |
| last_seen_at | string(date-time) | true | read-only | none |
| serial_number | string | true | read-only | none |
| port | string | true | read-only | none |
| expiration_date | string | true | read-only | none |
| subject | string | true | read-only | none |
| issuer | string | true | read-only | none |
| product | string | true | read-only | none |
| raw_data | string | true | read-only | Displayable raw data as alert evidence |
| provider | string¦null | true | read-only | none |
| protection | boolean | true | read-only | none |
| selector | string | true | read-only | none |
| qualifier | string | true | read-only | none |
| policy | string | true | read-only | none |
| mx_records | string¦null | true | read-only | none |
| protocol | string | true | read-only | none |
| response | string | true | read-only | none |
| hosts | [any] | true | read-only | none |
| cipher_type | string | true | read-only | none |
| ciphersuite | string | true | read-only | none |
| type | string | true | read-only | none |
| version | string | true | read-only | none |
| blocklist_name | string | true | read-only | none |
| permissions | [string] | true | read-only | Return permissions sorted in a specific order. |
| bucket_name | string | true | read-only | none |
| cloud_provider | string | true | read-only | none |
InsightBaseTyped
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightBase | false | none | Serializer for Insight endpoint. |
InsightBulkUpdate
{
"ids": [
0
],
"status": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [integer] | true | none | none |
| status | InsightStatusEnum | true | none | * 0 - New* 1 - Acknowledged* 2 - False positive* 3 - Fixed* 4 - Reopened* 5 - Duplicate* 6 - Benign* 7 - Risk acceptance |
InsightEffortEnum
0
0- Low1- Medium2- High
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 0 - Low* 1 - Medium* 2 - High |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 0 |
| anonymous | 1 |
| anonymous | 2 |
InsightLightCount
{
"count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
InsightPolicy
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| description | string | false | none | none |
| is_enabled | boolean | false | none | none |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| created_by | UserLite | true | read-only | none |
| organization | integer | true | none | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| active_vulnerabilities | integer | true | read-only | Return the number of related active vulnerabilities. |
| filters | [object] | true | read-only | none |
| » additionalProperties | any | false | none | none |
| already_applied | boolean | true | read-only | none |
InsightPolicyInsightSubTopicFilter
{
"id": 0,
"insight_policy": 0,
"subtopics": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
],
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| subtopics | [SubTopic] | true | read-only | none |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
InsightPolicyInsightSubTopicFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"subtopics": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
],
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightPolicyInsightSubTopicFilter | false | none | none |
InsightPolymorphic
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Properties
None
InsightSeverityFilter
{
"id": 0,
"insight_policy": 0,
"value": 0,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| value | SeverityEnum | true | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
InsightSeverityFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"value": 0,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightSeverityFilter | false | none | none |
InsightSeverityFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": 0,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of InsightSeverityFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | true | read-only | none |
| value | SeverityEnum | true | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
InsightSeverityFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": 0,
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightSeverityFilterUpdate | false | none | Serializer specific to updates of InsightSeverityFilter.To not mismatch with its read-only parent. |
InsightStatusEnum
0
0- New1- Acknowledged2- False positive3- Fixed4- Reopened5- Duplicate6- Benign7- Risk acceptance
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 0 - New* 1 - Acknowledged* 2 - False positive* 3 - Fixed* 4 - Reopened* 5 - Duplicate* 6 - Benign* 7 - Risk acceptance |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 0 |
| anonymous | 1 |
| anonymous | 2 |
| anonymous | 3 |
| anonymous | 4 |
| anonymous | 5 |
| anonymous | 6 |
| anonymous | 7 |
InsightSubTopic
{
"id": 0,
"title": "string",
"slug": "string"
}
Serializer for SubTopic Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| slug | string | true | read-only | none |
InsightTitleFilter
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | false | none | none |
| operation | TextFilterOperationEnum | true | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | true | none | none |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
InsightTitleFilterTyped
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightTitleFilter | false | none | none |
InsightTitleFilterUpdate
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of InsightTitleFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| insight_policy | integer¦null | true | read-only | none |
| operation | TextFilterOperationEnum | false | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | true | none | none |
| type | string | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
InsightTitleFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightTitleFilterUpdate | false | none | Serializer specific to updates of InsightTitleFilter.To not mismatch with its read-only parent. |
InsightTopic
{
"id": 0,
"title": "string",
"slug": "string"
}
Serializer for Topic DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| slug | string | true | read-only | none |
Insight_policy_add_filters_request_serializer
{
"filters": [
{
"type": "insight_severity"
}
],
"apply": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| filters | [base_filter] | true | none | none |
| apply | boolean | true | none | none |
Insight_policy_add_filters_serializer
{
"status": "success",
"results": [
{
"resourcetype": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
| results | [FilterPolymorphic] | true | none | none |
Insight_policy_apply_serializer
{
"status": "enqueued"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
Insight_policy_bulk_delete_serializer
{
"status": "success"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
Insight_policy_bulk_update_serializer
{
"status": "success"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
Insight_policy_create_serializer
{
"status": "success",
"data": {
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
| data | CreateInsightPolicy | true | none | none |
Item
{
"id": 1,
"count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| count | integer | true | none | none |
ItsmBasicResponse
{
"status": "string",
"reason": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | true | none | none |
ItsmConfig
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | ITSM config id in Patrowl DB. |
| name | string | true | none | Configuration name. |
| vendor | string | true | none | ITSM vendor name (glpi, jira, snow). |
| auth_mode | string | true | none | Authentication mode (basic_auth, user_token). |
| is_saas | boolean | true | none | SaaS or on-premise deployment. |
| instance | string | true | none | URL or instance name. |
| ssltls_disable | boolean | false | none | Disable SSL/TLS verification. |
| is_default | boolean | false | none | Set this config as default. |
| app_token | string | false | none | GLPI application token. |
| login | string | false | none | Username or login. |
| password | string | false | none | Password. |
| user_token | string | false | none | GLPI user token. |
| jira_project | string | false | none | Jira project key or ID. |
| jira_issuetype | string | false | none | Jira issue type (Task, Bug, Issue…). |
| snow_tablename | string | false | none | ServiceNow ticket table name. |
ItsmConfigListResponse
{
"status": "string",
"reason": "string",
"options": [
{
"id": "string",
"name": "string",
"vendor": "string",
"auth_mode": "string",
"is_saas": true,
"instance": "string",
"ssltls_disable": true,
"is_default": true,
"app_token": "string",
"login": "string",
"password": "string",
"user_token": "string",
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| options | [ItsmConfig] | true | none | none |
ItsmConfigSetResponse
{
"status": "string",
"reason": "string",
"config_id": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | true | none | none |
| config_id | string | true | none | none |
ItsmCreateTicketRequest
{
"title": "string",
"content": "string",
"assigned_to_users": [
0
],
"assigned_to_groups": [
0
],
"priority": 0,
"vuln_ids": [
0
],
"custom_remed_ids": [
0
],
"status": 0,
"jira_project": "string",
"jira_issuetype": "string",
"snow_tablename": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| title | string | true | none | Ticket title. |
| content | string | true | none | Ticket content. |
| assigned_to_users | [integer] | false | none | User IDs on the remote ITSM. |
| assigned_to_groups | [integer] | false | none | Group IDs on the remote ITSM. |
| priority | integer | true | none | 1=very low, 2=low, 3=medium, 4=high, 5=very high, 6=major. |
| vuln_ids | [integer] | true | none | Patrowl vulnerability IDs. |
| custom_remed_ids | [integer] | false | none | Patrowl custom remediation IDs. |
| status | integer | false | none | GLPI only: ticket status (0-6). |
| jira_project | string | false | none | Jira project key from /itsm/jira-projects/. |
| jira_issuetype | string | false | none | Jira issue type untranslatedName from /itsm/jira-issuetypes/. |
| snow_tablename | string | false | none | ServiceNow table key from /itsm/snow-tablenames/. |
ItsmCreateTicketResponse
{
"status": "string",
"ticket": {
"itsm_ticket_id": "string",
"link": "string",
"status": 0,
"status_name": "string",
"id": 0
},
"reason": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| ticket | ItsmCreatedTicket | true | none | none |
| reason | string | true | none | none |
ItsmCreatedTicket
{
"itsm_ticket_id": "string",
"link": "string",
"status": 0,
"status_name": "string",
"id": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| itsm_ticket_id | string | true | none | none |
| link | string | true | none | none |
| status | integer | true | none | none |
| status_name | string | true | none | none |
| id | integer | false | none | Patrowl ticket DB id. |
ItsmGroup
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| description | string | false | none | Only on ServiceNow. |
| link | string | true | none | none |
| groups | [ItsmGroupNested] | false | none | Only on Jira. |
ItsmGroupNested
{
"name": "string",
"link": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| link | string | true | none | none |
ItsmGroupsResponse
{
"status": "string",
"reason": "string",
"groups": [
{
"id": "string",
"name": "string",
"description": "string",
"link": "string",
"groups": [
{
"name": "string",
"link": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| groups | [ItsmGroup] | true | none | none |
ItsmJiraIssueTypesResponse
{
"status": "string",
"reason": "string",
"jira_issuetypes": [
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| jira_issuetypes | [JiraIssueType] | true | none | none |
ItsmJiraProjectsResponse
{
"status": "string",
"reason": "string",
"jira_projects": [
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| jira_projects | [JiraProjects] | true | none | none |
ItsmSnowTable
{
"key": "string",
"id": "string",
"name": "string",
"desc": "string",
"link": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| key | string | true | none | ServiceNow table name used for tickets. |
| id | string | true | none | ServiceNow sys_id. |
| name | string | true | none | Technical table name. |
| desc | string | true | none | Long table description. |
| link | string | true | none | none |
ItsmSnowTablesResponse
{
"status": "string",
"reason": "string",
"snow_tablenames": [
{
"key": "string",
"id": "string",
"name": "string",
"desc": "string",
"link": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| snow_tablenames | [ItsmSnowTable] | true | none | none |
ItsmTicket
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| itsm_ticket_id | string | true | none | none |
| title | string | true | none | none |
| content | string | true | none | none |
| link | string | true | none | none |
| created_at | integer | true | none | none |
| priority | integer | true | none | none |
| status | integer | true | none | none |
| status_name | string | false | none | Only for Jira when status=0. |
| assigned_to_users | [string] | true | none | none |
| assigned_to_groups | [string] | true | none | none |
| jira_issuetype | string | false | none | Only for Jira. |
ItsmTicketStatus
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| itsm_ticket_id | string | true | none | none |
| status | integer | true | none | 0=Unknown, 1=New, 2=In Progress, 3=On Hold, 4=Resolved, 5=Closed, 6=Canceled. |
| status_name | string | false | none | Only for Jira when status=0. |
ItsmTicketsResponse
{
"status": "string",
"reason": "string",
"tickets": [
{
"itsm_ticket_id": "string",
"title": "string",
"content": "string",
"link": "string",
"created_at": 0,
"priority": 0,
"status": 0,
"status_name": "string",
"assigned_to_users": [
"string"
],
"assigned_to_groups": [
"string"
],
"jira_issuetype": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| tickets | [ItsmTicket] | true | none | none |
ItsmTicketsStatusResponse
{
"status": "string",
"reason": "string",
"tickets_status": [
{
"itsm_ticket_id": "string",
"status": 0,
"status_name": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| tickets_status | [ItsmTicketStatus] | true | none | none |
ItsmUser
{
"id": "string",
"name": "string",
"link": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| link | string | true | none | none |
ItsmUsersResponse
{
"status": "string",
"reason": "string",
"users": [
{
"id": "string",
"name": "string",
"link": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | false | none | none |
| users | [ItsmUser] | true | none | none |
JiraIssueType
{
"name": "string",
"untranslatedName": "string",
"iconUrl": {
"property1": null,
"property2": null
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| untranslatedName | string | true | none | none |
| iconUrl | object | true | none | none |
| » additionalProperties | any | false | none | none |
JiraPriority
{
"id": "string",
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
JiraProjects
{
"id": "string",
"name": "string",
"key": "string",
"projectTypeKey": "string",
"avatarUrls": {
"property1": null,
"property2": null
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| key | string | true | none | none |
| projectTypeKey | string | true | none | none |
| avatarUrls | object | true | none | none |
| » additionalProperties | any | false | none | none |
KeyEnum
"controls"
controls- New active trending attack doneweekly- Periodic report (each monday)vulns- New vulnerabilitynew-org- New organization is availableretest- New retest has been requestedowner- You've been assigned to a vulnerability or remediation
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * controls - New active trending attack done* weekly - Periodic report (each monday)* vulns - New vulnerability* new-org - New organization is available* retest - New retest has been requested* owner - You've been assigned to a vulnerability or remediation |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | controls |
| anonymous | weekly |
| anonymous | vulns |
| anonymous | new-org |
| anonymous | retest |
| anonymous | owner |
LatestScans
{
"finished_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| finished_at | string(date-time) | true | none | none |
LevelEnum
"Information"
Information- InfoScanning- ScanNot impacted- Not ImpactedImpacted- ImpactedWarning- WarningPredictive- Predictive
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * Information - Info* Scanning - Scan* Not impacted - Not Impacted* Impacted - Impacted* Warning - Warning* Predictive - Predictive |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Information |
| anonymous | Scanning |
| anonymous | Not impacted |
| anonymous | Impacted |
| anonymous | Warning |
| anonymous | Predictive |
NewProduct
{
"id": 0,
"name": "string",
"vendor": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
| vendor | string | true | read-only | none |
NotEligibleResult
{
"id": 0,
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| message | string | true | none | none |
NotEligibleResults
{
"failures": [
{
"id": 0,
"message": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| failures | [NotEligibleResult] | true | none | none |
NotFoundResponseWithDetail
{
"detail": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| detail | string | true | none | none |
NullEnum
null
Properties
None
ObjectAccessControl
{
"id": 1,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| title | string | true | none | none |
ObjectUpdateResponse
{
"status": "success",
"message": "string",
"object": {
"protection": {
"status": "unprotected",
"availability": "available"
},
"easm": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"auto": true,
"auto_from": "none",
"total_credits": 0,
"credits_in_use": 0
},
"pentested": {
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"slot_locked_until": "2019-08-24T14:15:22Z",
"outside_business_hours": 0,
"auto": true,
"auto_from": "none",
"total_slots": 0,
"slots_in_use": 0
}
}
}
Serializer that can be used for APIs that updates single objects (PUT/PATCH).
It returns the same arguments as BaseApiResponseSerializer as well as the updated object in an object field.
The object serializer (instantiated) needs to be passed at initialization through the updated_object_serializer kwarg.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ResponseStatusEnum | true | none | * success - Success* partial - Partial* error - Error |
| message | string | true | none | none |
| object | AssetProtectionStatus | true | none | none |
Organization
{
"id": 0,
"name": "string",
"slug": "string",
"is_active": true,
"owner": "string",
"user_count": 0,
"is_poc": true,
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"pentested_assets": 0,
"max_pentested_assets_allowed": 0,
"outside_business_hours_enabled": true,
"pentested_slot_available": 0,
"max_pentested_slot_allowed": 0,
"end_of_contract": "2019-08-24T14:15:22Z",
"rotation_frequency": 0,
"outside_business_hours": true,
"max_easm_assets_allowed": 0,
"easm_credits_available": 0,
"auto_easm": true,
"auto_easm_activation_consumption": 0
}
Serializer for Organization endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | The name of the organization |
| slug | string | true | none | The name in all lowercase, suitable for URL identification |
| is_active | boolean | false | none | none |
| owner | string | true | read-only | Return current organization's owner (if any). |
| user_count | integer | true | read-only | Return number of members within the organization. |
| is_poc | boolean | true | read-only | none |
| is_sso | boolean | true | read-only | none |
| risk_insights_enabled | boolean | true | read-only | none |
| teams_enabled | boolean | true | read-only | Whether the Teams feature is enabled for this organization. |
| technologies_enabled | boolean | true | read-only | none |
| typosquatting_enabled | boolean | true | read-only | none |
| created_at | string(date-time) | true | read-only | Return created_at for current organization. |
| pentested_assets | integer | true | read-only | none |
| max_pentested_assets_allowed | integer | true | read-only | none |
| outside_business_hours_enabled | boolean | true | read-only | none |
| pentested_slot_available | integer | true | read-only | none |
| max_pentested_slot_allowed | integer | true | read-only | none |
| end_of_contract | string(date-time) | true | read-only | none |
| rotation_frequency | integer | true | read-only | none |
| outside_business_hours | boolean | true | read-only | none |
| max_easm_assets_allowed | integer | true | read-only | none |
| easm_credits_available | integer | true | read-only | none |
| auto_easm | boolean | true | read-only | none |
| auto_easm_activation_consumption | integer¦null | true | read-only | none |
OrganizationCredits
{
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| easm | CreditsData | true | read-only | none |
| pentest | CreditsData | true | read-only | none |
| greybox | integer | true | read-only | none |
OrganizationFeatures
{
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| is_sso | boolean | true | read-only | none |
| risk_insights_enabled | boolean | true | read-only | none |
| teams_enabled | boolean | true | read-only | none |
| technologies_enabled | boolean | true | read-only | none |
| typosquatting_enabled | boolean | true | read-only | none |
| outside_business_hours_enabled | boolean | true | read-only | none |
| outside_business_hours | boolean | true | read-only | none |
| auto_easm | boolean | true | read-only | none |
OrganizationIdentity
{
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| user_id | integer | true | read-only | none |
| name | string | true | read-only | none |
| slug | string | true | read-only | none |
| is_active | boolean | true | read-only | none |
OrganizationMembers
{
"owner": "string",
"user_count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| owner | string | true | read-only | none |
| user_count | integer | true | read-only | none |
OrganizationMonitoring
{
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| pentested_assets | integer | true | read-only | none |
| rotation_frequency | integer | true | read-only | none |
| auto_easm_activation_consumption | integer¦null | true | read-only | none |
OrganizationProfileData
{
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| is_poc | boolean | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
| end_of_contract | string(date-time)¦null | true | read-only | none |
OrganizationSerializerOut
{
"identity": {
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
},
"members": {
"owner": "string",
"user_count": 0
},
"profile": {
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
},
"features": {
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
},
"credits": {
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
},
"monitoring": {
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
}
Serializer for Organization endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| identity | OrganizationIdentity | true | none | none |
| members | OrganizationMembers | true | none | none |
| profile | OrganizationProfileData | true | none | none |
| features | OrganizationFeatures | true | none | none |
| credits | OrganizationCredits | true | none | none |
| monitoring | OrganizationMonitoring | true | none | none |
OrganizationSetting
{
"id": 0,
"key": "string",
"value": "string",
"is_secret": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for OrganizationSetting endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| key | string | true | none | none |
| value | string¦null | false | none | none |
| is_secret | boolean | false | none | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
OrganizationUser
{
"id": 0,
"organization": 0,
"user": 0,
"username": "string",
"email": "string",
"is_admin": true,
"is_active": true,
"org_name": "string",
"role": 0,
"user_ids": [
0
]
}
Serializer for Organization User endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| organization | integer | true | none | none |
| user | integer | true | none | none |
| username | string | true | read-only | Return user's username. |
| string | true | read-only | Return user's email. | |
| is_admin | boolean | false | none | none |
| is_active | boolean | true | read-only | Return user's status. |
| org_name | string | true | read-only | Return organization name. |
| role | integer | true | read-only | Return user's role. |
| user_ids | [integer] | true | write-only | none |
OutsideBusinessHours
{
"outside_business_hours": true,
"force_obh_assets": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| outside_business_hours | boolean | true | none | none |
| force_obh_assets | boolean | false | none | none |
OutsideBusinessHoursEnum
0
0- unactivated1- activated
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 0 - unactivated* 1 - activated |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 0 |
| anonymous | 1 |
OverTime
{
"severities": {
"critical": [
0
],
"high": [
0
],
"medium": [
0
],
"low": [
0
],
"info": [
0
]
},
"labels": [
""
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| severities | SeveritiesOverTime | true | none | none |
| labels | [string] | true | none | none |
PaginatedAssetControlMultiLevelList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"criticality": 1,
"score_level": 0,
"type": "ip",
"control_impact": "Warning",
"outside_business_hours": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [AssetControlMultiLevel] | false | none | none |
PaginatedAssetGroupLiteList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"assets": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"criticality": 1
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [AssetGroupLite] | false | none | none |
PaginatedAssetInListList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"created_by": "string",
"activevulns": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"asset_tags": {
"property1": null,
"property2": null
},
"organization": 0,
"score_level": 0.1,
"asset_owners": {
"property1": null,
"property2": null
},
"liveness": "unknown",
"outside_business_hours": 0,
"monitored_slot_locked": true,
"ip_type": "cdn",
"related_technologies": {
"id": 0,
"product": "string",
"vendor": "string",
"version": "string",
"impacted_by_cve": true
},
"thumbnail_url": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [AssetInList] | false | none | [Asset DRF Serializer definition.] |
PaginatedAutoTagPolicyList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag": "string",
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [AutoTagPolicy] | false | none | none |
PaginatedBlocklistList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"name": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Blocklist] | false | none | none |
PaginatedCVEList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
],
"related_assets_count": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [CVE] | false | none | none |
PaginatedCVESerializerV2List
{
"next": "string",
"previous": "string",
"results": [
{
"id": 0,
"identifier": "string",
"published_at": "2019-08-24T14:15:22Z",
"severity": 0,
"cvss_score": 0.1,
"threat_info": {
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
},
"technologies": [
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
],
"description": "string",
"references": [
"http://example.com"
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| next | string¦null | false | none | none |
| previous | string¦null | false | none | none |
| results | [CVESerializerV2] | false | none | none |
PaginatedCertificateList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"port": -2147483648,
"host_id": 0,
"host": "string",
"serial_number": "string",
"data_text": "string",
"data_pem": "string",
"data_parsed": null,
"is_expired": true,
"is_mismatched": true,
"is_selfsigned": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Certificate] | false | none | [Serializer for Certificate endpoint.] |
PaginatedCommentList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"text": "string",
"author": "string",
"created_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Comment] | false | none | [Serializer for comment endpoint] |
PaginatedControlLiteList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"status": "string",
"result": 0,
"cve_identifiers": [
"string"
],
"cvss_vector": "string",
"cvss_score": 0.1,
"severity": 0,
"description": "string",
"references": [
"http://example.com"
],
"vendor": "string",
"products": [
"string"
],
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [ControlLite] | false | none | [Serializer for Control endpoint.] |
PaginatedCybelangelList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Cybelangel] | false | none | [CybelangelConfig serializer definition] |
PaginatedDomainList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"asset": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0,
"parent_domain": {
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
},
"subdomains": [
{
"id": 0,
"asset_id": 0,
"name": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_outside_business_hours": 0
}
],
"whois": {
"id": 0,
"text": "string",
"registrar": "string",
"registrar_id": "string",
"registrar_url": "string",
"registrar_status": null,
"registrant_name": "string",
"registrant_country": "string",
"registrant_state_province": "string",
"name_servers": null,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"expiration_date": null
},
"is_registered": true,
"dnsrecords": [
null
],
"ip_addresses": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
],
"state": "active",
"first_resolved_at": "2019-08-24T14:15:22Z",
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"type": "string",
"provider": "string"
}
],
"popularity_ranks": [
null
],
"categories": [
null
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Domain] | false | none | [Serializer for Domain endpoint.] |
PaginatedEventCommentList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "string",
"created_at": "2019-08-24T14:15:22Z",
"message": "string",
"author": "user@example.com",
"text": "string",
"scope": "string",
"updated_at": "2019-08-24T14:15:22Z",
"is_editable": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [EventComment] | false | none | [Serializer for Comment endpoint.] |
PaginatedFeedList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"type": "Control",
"level": "Information",
"message": "string",
"ack": "string",
"control": 0,
"assets": [
{
"id": 0,
"value": "string"
}
],
"vulnerabilities": [
{
"id": 0,
"user_friendly_id": "string",
"asset": 0,
"asset_value": "string",
"title": "string",
"severity": 0
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Feed] | false | none | [Serializer for Alert endpoint.] |
PaginatedIPAddressList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"asset": 0,
"address": "string",
"type": "cdn",
"in_blocklist": true,
"general_infos": {
"id": 0,
"asn_cidr": "string",
"asn_number": "string",
"asn_registry": "string",
"asn_description": "string",
"asn_country_code": "string"
},
"domains": [
{
"id": 0,
"name": "string",
"asset_id": 0,
"last_resolved_at": "2019-08-24T14:15:22Z",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
}
}
],
"blocklists": [
null
],
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"search_engines_results": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [IPAddress] | false | none | [Serializer for IPAddress endpoint.] |
PaginatedInsightPolicyList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [InsightPolicy] | false | none | none |
PaginatedInsightPolymorphicList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [InsightPolymorphic] | false | none | none |
PaginatedNewProductList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"vendor": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [NewProduct] | false | none | none |
PaginatedOrganizationSerializerOutList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"identity": {
"id": 0,
"user_id": 0,
"name": "string",
"slug": "string",
"is_active": true
},
"members": {
"owner": "string",
"user_count": 0
},
"profile": {
"is_poc": true,
"created_at": "2019-08-24T14:15:22Z",
"end_of_contract": "2019-08-24T14:15:22Z"
},
"features": {
"is_sso": true,
"risk_insights_enabled": true,
"teams_enabled": true,
"technologies_enabled": true,
"typosquatting_enabled": true,
"outside_business_hours_enabled": true,
"outside_business_hours": true,
"auto_easm": true
},
"credits": {
"easm": {
"available": 0,
"limit": 0
},
"pentest": {
"available": 0,
"limit": 0
},
"greybox": 0
},
"monitoring": {
"pentested_assets": 0,
"rotation_frequency": 0,
"auto_easm_activation_consumption": 0
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [OrganizationSerializerOut] | false | none | [Serializer for Organization endpoint.] |
PaginatedOrganizationSettingList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"key": "string",
"value": "string",
"is_secret": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [OrganizationSetting] | false | none | [Serializer for OrganizationSetting endpoint.] |
PaginatedOrganizationUserList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"organization": 0,
"user": 0,
"username": "string",
"email": "string",
"is_admin": true,
"is_active": true,
"org_name": "string",
"role": 0,
"user_ids": [
0
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [OrganizationUser] | false | none | [Serializer for Organization User endpoint.] |
PaginatedPentestList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Pentest] | false | none | [Serializer for Pentest endpoint.] |
PaginatedPortList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"ip_address": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"certificates": [
{
"id": 0,
"port": 0,
"host": "string",
"serial_number": "string",
"data_text": "string"
}
],
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
],
"webservers": [
{
"id": 0,
"url": "string",
"server": "string",
"title": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Port] | false | none | [Serializer for Port endpoint.] |
PaginatedReadGreyboxRequestList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"user_friendly_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"complexity": 1,
"in_scope": "string",
"contact_info": "string",
"complexity_text": "string",
"requested_by": "string",
"comments": "string",
"organization": 0,
"organization_name": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [ReadGreyboxRequest] | false | none | [Serializer for Greybox Request class] |
PaginatedRemediationList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Remediation] | false | none | [Serializer for Remediation endpoint.] |
PaginatedRetestList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Retest] | false | none | [Serializer for Retest endpoint.] |
PaginatedScanInListList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"finished_at": "2019-08-24T14:15:22Z",
"security_check": 0,
"id": 0,
"assets": {
"property1": [
{
"property1": "string",
"property2": "string"
}
],
"property2": [
{
"property1": "string",
"property2": "string"
}
]
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [ScanInList] | false | none | none |
PaginatedSubTopicList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [SubTopic] | false | none | none |
PaginatedTagListResponseList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [TagListResponse] | false | none | none |
PaginatedTeamListList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string",
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"campaigns": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"asset_groups": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"users": {
"count": 0,
"items": [
{
"id": 0,
"email": "user@example.com"
}
]
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [TeamList] | false | none | none |
PaginatedTicketList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"identifier": "string",
"status": 0,
"status_name": "string",
"link": "string",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Ticket] | false | none | [Serializer for Ticket endpoint.] |
PaginatedTopicList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"title": "string",
"slug": "string",
"is_available": true,
"subtopics": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Topic] | false | none | none |
PaginatedTyposquattedDomainListList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"permutation": {
"value": "string",
"type": "string"
},
"top_domain": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"status": "detected",
"takedown_status": "evidence_collection",
"severity": "low",
"ip_addresses": [
"string"
],
"mail_service": true,
"vulnerability": {
"id": 0,
"user_friendly_id": "string",
"title": "string"
},
"first_detection_date": "2019-08-24T14:15:22Z",
"registrar": {
"name": "string",
"date": "2019-08-24T14:15:22Z"
},
"last_modification_date": "2019-08-24T14:15:22Z",
"last_seen": "2019-08-24T14:15:22Z",
"parked": true,
"potentially_down": true,
"webservice": true
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [TyposquattedDomainList] | false | none | none |
PaginatedUserLiteList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [UserLite] | false | none | none |
PaginatedVendorList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"name": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [Vendor] | false | none | none |
PaginatedVulnerabilityLiteList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"user_friendly_id": "string",
"description": "string",
"solution_headline": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"is_quickwin": true,
"title": "string",
"source": "string",
"status": "new",
"severity": 0,
"asset_id": "string",
"asset_value": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_criticality": "string",
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"asset": 0,
"asset_outside_business_hours": 0,
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"last_ticket": {
"property1": null,
"property2": null
},
"solution_duedate": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [VulnerabilityLite] | false | none | [Lite Serializer for Vulnerability endpoint.] |
PaginatedWebServerList
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 0,
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"host": "string",
"url": "string",
"server": "string",
"path": "string",
"title": "string",
"asset": 0,
"response_time": "string",
"status_code": "string",
"content_length": "string",
"content_type": "string",
"jarm": "string",
"favicon_hash": "string",
"technologies": [
null
],
"ips": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
]
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | false | none | none |
| next | string(uri)¦null | false | none | none |
| previous | string(uri)¦null | false | none | none |
| results | [WebServer] | false | none | [Serializer for WebServer endpoint.] |
PatchedAsset
{
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
0
],
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"owners": [
0
],
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
],
"screenshot_url": "string"
}
Asset DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| value | string | false | none | Deprecated: use CoreAsset.value instead. |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| type | AssetTypeEnum | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| description | string | false | none | none |
| exposure | ExposureEnum | false | none | * unknown - Unknown* external - External* internal - Internal* restricted - Restricted |
| score | integer | false | read-only | Automatically calculated score based on Assets's Vulnerabilities. |
| protection | ProtectionInAsset | false | read-only | none |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
| created_by | string | false | read-only | none |
| created_at | string(date-time)¦null | false | read-only | none |
| updated_at | string(date-time)¦null | false | read-only | none |
| tags | [integer] | false | write-only | none |
| score_level | integer | false | read-only | none |
| technologies | [any] | false | read-only | none |
| asset_owners | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| owners | [integer] | false | write-only | none |
| groups | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| organization | integer¦null | false | none | none |
| asset_tags | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| provider | string | false | read-only | none |
| monitored_slot_lock_until | string(date-time)¦null | false | read-only | none |
| liveness | AssetLivenessEnum | false | read-only | * unknown - Unknown* up - Up* down - Down |
| www_related_domain | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| has_webservers | boolean | false | read-only | none |
| ip_state | any | false | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | IPAddressStateEnum | false | none | * active - Active* archived - Archived* unknown - Unknown |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ip_type | any | false | read-only | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | IPAddressTypeEnum | false | none | * cdn - Cdn* saas - Saas* waf - Waf* cloud - Cloud* static - Static* other - Other* private - Private* unknown - Unknown |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| last_resolution_date | string(date-time)¦null | false | read-only | none |
| related_easm | RelatedEasm¦null | false | none | Serializer to display informations about related Easm objects. |
| teams | [integer] | false | write-only | none |
| screenshot_url | string¦null | false | read-only | none |
PatchedAssetCriticalityFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": 1,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetCriticalityFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
| value | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
PatchedAssetCriticalityFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": 1,
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetCriticalityFilterUpdate | false | none | Serializer specific to updates of AssetCriticalityFilter.To not mismatch with its read-only parent. |
PatchedAssetGroup
{
"id": 0,
"title": "string",
"description": "string",
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
0
],
"assets": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"owners": [
0
],
"asset_group_owners": {
"property1": null,
"property2": null
},
"asset_group_tags": {
"property1": null,
"property2": null
},
"is_dynamic": true,
"filters": [
null
],
"criticality": 1,
"teams": [
0
]
}
AssetGroup DRF Serializer definition.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| title | string | false | none | none |
| description | string | false | none | none |
| organization | integer | false | none | none |
| created_at | string(date-time)¦null | false | read-only | none |
| updated_at | string(date-time)¦null | false | read-only | none |
| tags | [integer] | false | write-only | none |
| assets | AssetLite | false | read-only | AssetLite DRF Serializer definition. |
| owners | [integer] | false | write-only | none |
| asset_group_owners | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| asset_group_tags | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| is_dynamic | boolean | false | none | none |
| filters | [any] | false | read-only | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| teams | [integer] | false | none | none |
PatchedAssetTypeFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": "ip",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetTypeFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
| value | AssetTypeEnum | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
PatchedAssetTypeFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": "ip",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetTypeFilterUpdate | false | none | Serializer specific to updates of AssetTypeFilter.To not mismatch with its read-only parent. |
PatchedAssetValueFilterUpdate
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of AssetValueeFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
| operation | TextFilterOperationEnum | false | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | false | none | none |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
PatchedAssetValueFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetValueFilterUpdate | false | none | Serializer specific to updates of AssetValueeFilter.To not mismatch with its read-only parent. |
PatchedAutoTagFilterAssetCriticalityUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 1,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoFilterOperatorEnum | false | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetDescriptionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoTagFilterOperationEnum | false | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | false | none | none |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetLivenessUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unknown",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoFilterOperatorEnum | false | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetLivenessEnum | false | none | * unknown - Unknown* up - Up* down - Down |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetPentestOptionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoFilterOperatorEnum | false | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetProtectionUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "unprotected",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoFilterOperatorEnum | false | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetProtectionEnum | false | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetTypeUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "contains",
"value": "ip",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoFilterOperatorEnum | false | read-only | * contains - Contains* startswith - Startswith* endswith - Endswith* equals - Equals* gt - Greater Than* gte - Greater Than Equals* lt - Less Than* lte - Less Than Equals* isnull - Isnull* exact - Exact |
| value | AssetTypeEnum | false | none | * ip - ip* ip-range - ip-range* ip-subnet - ip-subnet* fqdn - fqdn* domain - domain* keyword - keyword* other - other |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutoTagFilterAssetValueUpdate
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| name | string | false | read-only | none |
| field | string | false | read-only | none |
| operation | AutoTagFilterOperationEnum | false | none | * exact - Exact* contains - Contains* startswith - Starts with* endswith - Ends with |
| value | string | false | none | none |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedAutotagFiltersUpdateIn
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetValueUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetTypeUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetCriticalityUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetDescriptionUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetLivenessUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetProtectionUpdate | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAutoTagFilterAssetPentestOptionUpdate | false | none | none |
PatchedBulkPartialUpdateSerializerIn
{
"asset_ids": [
0
],
"criticality": 1
}
Serializer that implements a layer of validation to reject any extra field.
Prefer using the ExtraFieldValidatorMixin than this serializer.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_ids | [integer] | false | none | none |
| criticality | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
PatchedBulkProtectionUpdateSerializerIn
{
"asset_ids": [
0
],
"protection": "unprotected",
"outside_business_hours": 0
}
Serializer that implements a layer of validation to reject any extra field.
Prefer using the ExtraFieldValidatorMixin than this serializer.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_ids | [integer] | false | none | none |
| protection | AssetProtectionEnum | false | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
PatchedCybelangel
{
"id": 0,
"org_id": 0,
"name": "string",
"client_id": "string",
"client_secret": "string",
"periodic_import_enabled": false,
"is_token_expired": true
}
CybelangelConfig serializer definition
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| org_id | integer | false | none | none |
| name | string | false | none | none |
| client_id | string | false | none | none |
| client_secret | string | false | write-only | none |
| periodic_import_enabled | boolean | false | none | none |
| is_token_expired | boolean | false | read-only | Check if the connexion can be established with the Cybelangel server. |
PatchedInsightBase
{
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Serializer for Insight endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| title | string | false | read-only | none |
| light_description | string | false | none | none |
| severity | SeverityEnum | false | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| status | InsightStatusEnum | false | read-only | * 0 - New* 1 - Acknowledged* 2 - False positive* 3 - Fixed* 4 - Reopened* 5 - Duplicate* 6 - Benign* 7 - Risk acceptance |
| subtopic | InsightSubTopic | false | none | Serializer for SubTopic Serializer definition. |
| asset | AssetLite | false | none | AssetLite DRF Serializer definition. |
| topic | InsightTopic | false | none | Serializer for Topic DRF Serializer definition. |
| created_at | string(date-time) | false | read-only | none |
| last_seen_at | string(date-time) | false | read-only | none |
| serial_number | string | false | read-only | none |
| port | string | false | read-only | none |
| expiration_date | string | false | read-only | none |
| subject | string | false | read-only | none |
| issuer | string | false | read-only | none |
| product | string | false | read-only | none |
| raw_data | string | false | read-only | Displayable raw data as alert evidence |
| provider | string¦null | false | read-only | none |
| protection | boolean | false | read-only | none |
| selector | string | false | read-only | none |
| qualifier | string | false | read-only | none |
| policy | string | false | read-only | none |
| mx_records | string¦null | false | read-only | none |
| protocol | string | false | read-only | none |
| response | string | false | read-only | none |
| hosts | [any] | false | read-only | none |
| cipher_type | string | false | read-only | none |
| ciphersuite | string | false | read-only | none |
| type | string | false | read-only | none |
| version | string | false | read-only | none |
| blocklist_name | string | false | read-only | none |
| permissions | [string] | false | read-only | Return permissions sorted in a specific order. |
| bucket_name | string | false | read-only | none |
| cloud_provider | string | false | read-only | none |
PatchedInsightBaseTyped
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resourcetype | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightBase | false | none | Serializer for Insight endpoint. |
PatchedInsightPolicyBulkUpdate
{
"ids": [
0
],
"is_enabled": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [integer] | false | none | none |
| is_enabled | boolean | false | none | none |
PatchedInsightPolicyInsightSubTopicFilterUpdate
{
"id": 0,
"subtopics": [
0
],
"type": "string",
"created_at": "2019-08-24T14:15:22Z",
"insight_policy": 0
}
Serializer specific to updates of InsightSubtopicFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| subtopics | [integer] | false | none | none |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
PatchedInsightPolicyInsightSubTopicFilterUpdateTyped
{
"type": "string",
"id": 0,
"subtopics": [
0
],
"created_at": "2019-08-24T14:15:22Z",
"insight_policy": 0
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightPolicyInsightSubTopicFilterUpdate | false | none | Serializer specific to updates of InsightSubtopicFilter.To not mismatch with its read-only parent. |
PatchedInsightPolymorphic
{
"resourcetype": "string",
"id": 0,
"title": "string",
"light_description": "string",
"severity": 0,
"status": 0,
"subtopic": {
"id": 0,
"title": "string",
"slug": "string"
},
"asset": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"topic": {
"id": 0,
"title": "string",
"slug": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"serial_number": "string",
"port": "string",
"expiration_date": "string",
"subject": "string",
"issuer": "string",
"product": "string",
"raw_data": "string",
"provider": "string",
"protection": true,
"selector": "string",
"qualifier": "string",
"policy": "string",
"mx_records": "string",
"protocol": "string",
"response": "string",
"hosts": [
null
],
"cipher_type": "string",
"ciphersuite": "string",
"type": "string",
"version": "string",
"blocklist_name": "string",
"permissions": [
"string"
],
"bucket_name": "string",
"cloud_provider": "string"
}
Properties
None
PatchedInsightSeverityFilterUpdate
{
"id": 0,
"insight_policy": 0,
"value": 0,
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of InsightSeverityFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
| value | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
PatchedInsightSeverityFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"value": 0,
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightSeverityFilterUpdate | false | none | Serializer specific to updates of InsightSeverityFilter.To not mismatch with its read-only parent. |
PatchedInsightTitleFilterUpdate
{
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"type": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Serializer specific to updates of InsightTitleFilter.
To not mismatch with its read-only parent.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| insight_policy | integer¦null | false | read-only | none |
| operation | TextFilterOperationEnum | false | none | * contains - contains* startswith - startswith* endswith - endswith |
| value | string | false | none | none |
| type | string | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
PatchedInsightTitleFilterUpdateTyped
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightTitleFilterUpdate | false | none | Serializer specific to updates of InsightTitleFilter.To not mismatch with its read-only parent. |
PatchedPentest
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Serializer for Pentest endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| requested_by | string | false | read-only | none |
| title | string | false | none | none |
| provider | string | false | none | none |
| organization | integer | false | none | none |
| description | string | false | none | none |
| comments | string | false | none | none |
| date_from | string(date-time)¦null | false | none | none |
| date_to | string(date-time)¦null | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
| nb_vulns | integer | false | read-only | Return the number of related vulnerabilities. |
| attachments | [CampaignAttachment] | false | read-only | [Serializer for Vulnerability Campaign endpoint.] |
| nb_assets | integer | false | read-only | Return the number of related assets. |
| is_greybox | boolean | false | none | none |
| teams | [integer] | false | none | none |
PatchedProtectionUpdateSerializerIn
{
"protection": "unprotected",
"outside_business_hours": 0
}
Serializer that implements a layer of validation to reject any extra field.
Prefer using the ExtraFieldValidatorMixin than this serializer.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| protection | AssetProtectionEnum | false | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
PatchedRemediation
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
Serializer for Remediation endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| organization | integer | false | none | none |
| headline | string | false | none | none |
| solution | string | false | none | none |
| solution_html | string | false | read-only | none |
| priority | VulnerabilitySolutionPriorityEnum | false | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| effort | VulnerabilitySolutionEffortEnum | false | none | * low - Low* medium - Medium* high - High |
| gain | integer | false | read-only | none |
| owners | [UserLite] | false | read-only | none |
| due_date | string(date-time)¦null | false | none | none |
| status | VulnerabilityStatusEnum | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
| count_vulns | integer | false | read-only | none |
PatchedTeamPartialUpdateSerializerIn
{
"name": "string",
"description": "string"
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string¦null | false | none | none |
| description | string¦null | false | none | none |
PatchedTeamUserPartialUpdate
{
"content": [
{
"user_id": 0,
"owner": true
}
]
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| content | [TeamUserOwnership] | false | none | [Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.] |
PatchedTyposquattedDomainsUpdate
{
"ids": [
1
],
"status": "detected",
"takedown_status": "evidence_collection"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [integer] | false | none | none |
| status | TyposquattedDomainsUpdateStatusEnum | false | none | * detected - Detected* tracked - Tracked* ignored - Ignored |
| takedown_status | TakedownStatusEnum | false | none | * evidence_collection - Evidence Collection* takedown - Takedown* info_requested - Info Requested* required - Required* in_review - In Review* domain_suspended - Domain Suspended* rejected - Rejected* escalated - Escalated |
PatchedUpdateAutoTagPolicy
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag": "string",
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| title | string | false | none | none |
| is_enabled | boolean | false | none | none |
| tag | string | false | write-only | none |
| tag_id | integer | false | read-only | none |
| tag_value | string | false | read-only | none |
| filters | [any] | false | read-only | none |
| organization | integer | false | read-only | none |
| created_at | string(date-time) | false | read-only | none |
| updated_at | string(date-time) | false | read-only | none |
PatchedUpdateFilterPolymorphic
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightTitleFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightPolicyInsightSubTopicFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedInsightSeverityFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetValueFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetCriticalityFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PatchedAssetTypeFilterUpdateTyped | false | none | none |
PatchedUpdateInsightPolicy
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| title | string | false | none | none |
| description | string | false | none | none |
| is_enabled | boolean | false | none | none |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| created_by | UserLite | false | read-only | none |
| organization | integer | false | read-only | none |
| created_at | string(date-time)¦null | false | read-only | none |
| updated_at | string(date-time)¦null | false | read-only | none |
| active_vulnerabilities | integer | false | read-only | Return the number of related active vulnerabilities. |
| filters | [object] | false | read-only | none |
| » additionalProperties | any | false | none | none |
| already_applied | boolean | false | read-only | none |
PatchedUpdateTag
{
"value": "string",
"description": "string"
}
Serializer dedicated to tag edition input via the TagSet endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | string | false | none | none |
| description | string | false | none | none |
PatchedVulnerability
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"solution_owners": [
0
],
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Serializer for Vulnerability endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | false | read-only | none |
| user_friendly_id | string | false | read-only | none |
| patrowl_id | integer¦null | false | none | none |
| asset | integer | false | none | none |
| asset_id | string | false | read-only | Return the asset id. |
| asset_outside_business_hours | OutsideBusinessHoursEnum | false | read-only | * 0 - unactivated* 1 - activated |
| asset_protection | ProtectionInAsset | false | read-only | none |
| organization | integer¦null | false | none | none |
| asset_value | string | false | read-only | Return the asset value. |
| asset_type | string | false | read-only | Return the asset value. |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| cvss_vector | string¦null | false | none | none |
| cvss_score | number(double) | false | none | none |
| status | VulnerabilityStatusEnum | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
| title | string | false | none | none |
| description | string | false | none | none |
| description_html | string | false | read-only | none |
| source | string | false | none | none |
| external_id | any | false | none | none |
| last_ticket | object¦null | false | read-only | Return the latest ticket. Normally, it's one ticket per vuln but as the link if "many to one", we get the last one. /!/ take care of the reverse_many_to_one relation between vulnerability and tickets. We may lose tickets. Args: instance (vulnerabilities.models.Vulnerability) Returns: dict: dictionnary of the ticket fields (it's a |
| » additionalProperties | any | false | none | none |
| has_exploit | boolean | false | none | none |
| solution_headline | string¦null | false | none | none |
| solution | string | false | none | none |
| solution_html | string | false | read-only | none |
| solution_priority | VulnerabilitySolutionPriorityEnum | false | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| solution_effort | VulnerabilitySolutionEffortEnum | false | none | * low - Low* medium - Medium* high - High |
| solution_gain | integer | false | none | none |
| owners | [integer] | false | write-only | none |
| solution_duedate | string(date-time)¦null | false | none | none |
| is_quickwin | boolean | false | none | none |
| is_auto | boolean | false | none | none |
| is_greybox | boolean | false | none | none |
| overdue | boolean | false | read-only | none |
| risk_id | integer¦null | false | read-only | none |
| remediation_date | string(date-time)¦null | false | none | none |
| last_status_update | string(date-time) | false | none | none |
| found_at | string(date-time) | false | none | none |
| last_checked_at | string(date-time)¦null | false | none | none |
| created_at | string(date-time) | false | none | none |
| updated_at | string(date-time) | false | none | none |
| reteststatus | string | false | read-only | Compute retest status. |
| ticketstatus | integer | false | none | none |
| is_retestable | boolean | false | read-only | Check if the vuln is retestable Returns: bool: False if vuln has no patrowl_id/org is in PoC/asset is not pentested |
| attachments | object | false | read-only | none |
| » additionalProperties | any | false | none | none |
| vuln_owners | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| vuln_solution_owners | object¦null | false | read-only | none |
| » additionalProperties | any | false | none | none |
| solution_owners | [integer] | false | write-only | none |
| external_vulnerability | ExternalVulnerability | false | read-only | Serializer for ExternalV Vulnerabilities |
| last_updated_by | VulnerabilityUser | false | read-only | none |
| updated_by_user_at | string(date-time)¦null | false | none | none |
| asset_ip_state | string | false | read-only | none |
Patchedbulk_update_vulns_status
{
"vulnerabilities_id": [
null
],
"status": "new"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vulnerabilities_id | [any] | false | none | none |
| status | VulnerabilityStatusEnum | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
Pentest
{
"id": 0,
"requested_by": "string",
"title": "string",
"provider": "string",
"organization": 0,
"description": "string",
"comments": "string",
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"nb_vulns": 0,
"attachments": [
{
"id": 0,
"title": "string",
"extension": "string",
"url": "string",
"created_at": "2019-08-24T14:15:22Z"
}
],
"nb_assets": 0,
"is_greybox": true,
"teams": [
0
]
}
Serializer for Pentest endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| requested_by | string | true | read-only | none |
| title | string | false | none | none |
| provider | string | false | none | none |
| organization | integer | true | none | none |
| description | string | false | none | none |
| comments | string | false | none | none |
| date_from | string(date-time)¦null | false | none | none |
| date_to | string(date-time)¦null | false | none | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
| nb_vulns | integer | true | read-only | Return the number of related vulnerabilities. |
| attachments | [CampaignAttachment] | true | read-only | [Serializer for Vulnerability Campaign endpoint.] |
| nb_assets | integer | true | read-only | Return the number of related assets. |
| is_greybox | boolean | false | none | none |
| teams | [integer] | false | none | none |
PentestedStatus
{
"last_updated_at": "2019-08-24T14:15:22Z",
"last_updated_by": "user@example.com",
"slot_locked_until": "2019-08-24T14:15:22Z",
"outside_business_hours": 0,
"auto": true,
"auto_from": "none",
"total_slots": 0,
"slots_in_use": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| last_updated_at | string(date-time)¦null | true | read-only | none |
| last_updated_by | string(email)¦null | true | read-only | none |
| slot_locked_until | string(date-time)¦null | true | read-only | none |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
| auto | boolean | true | read-only | none |
| auto_from | AssetProtectionRecordAutoFromEnum | true | none | * none - None* pentest - Pentest Activation/Deactivation* ineligible_ip - Ineligible IP Downgrade* auto_easm - Auto-EASM feature enabled at the organization level |
| total_slots | integer | true | read-only | none |
| slots_in_use | integer | true | read-only | none |
Permutation
{
"value": "string",
"type": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | string | true | none | none |
| type | string | true | none | none |
Port
{
"id": 0,
"ip_address": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"certificates": [
{
"id": 0,
"port": 0,
"host": "string",
"serial_number": "string",
"data_text": "string"
}
],
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
],
"webservers": [
{
"id": 0,
"url": "string",
"server": "string",
"title": "string"
}
]
}
Serializer for Port endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| ip_address | integer¦null | false | none | none |
| number | integer | false | none | none |
| protocol | ProtocolEnum | false | none | * tcp - TCP* udp - UDP |
| is_ssl | boolean | false | none | none |
| service_name | string¦null | false | none | none |
| state | PortStateEnum | true | none | * open - Open* filtered - Filtered* closed - Closed* unknown - Unknown |
| certificates | [CertificateLite] | false | none | [Lite Serializer for Certificate endpoint.] |
| banners | [Banner] | false | none | [Serializer for Banner endpoint.] |
| webservers | [WebServerLite] | false | none | [Lite Serializer for WebServer endpoint.] |
PortLite
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
Lite serializer for Port endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| number | integer | false | none | none |
| protocol | ProtocolEnum | false | none | * tcp - TCP* udp - UDP |
| is_ssl | boolean | false | none | none |
| service_name | string¦null | false | none | none |
| state | PortStateEnum | true | none | * open - Open* filtered - Filtered* closed - Closed* unknown - Unknown |
| banners | [Banner] | false | none | [Serializer for Banner endpoint.] |
PortStateEnum
"open"
open- Openfiltered- Filteredclosed- Closedunknown- Unknown
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * open - Open* filtered - Filtered* closed - Closed* unknown - Unknown |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | open |
| anonymous | filtered |
| anonymous | closed |
| anonymous | unknown |
ProtectedAssetStats
{
"total": 0,
"since_last_week": 0,
"remaining_slots": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| total | integer | true | none | none |
| since_last_week | integer | true | none | none |
| remaining_slots | integer | true | none | none |
Protection
{
"status": "unprotected",
"availability": "available"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | AssetProtectionEnum | true | read-only | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| availability | AssetProtectionAvailabilityEnum | true | read-only | * available - Available* unavailable_custom_asset - Unavailable Custom Asset* unavailable_archived_ip - Unavailable Archived Ip* unavailable_ineligible_ip - Unavailable Ineligible Ip |
ProtectionDisplayAsset
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
Minimal serializer to display asset protection informations.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | Deprecated: use CoreAsset.value instead. |
| protection | Protection | true | read-only | none |
| outside_business_hours | OutsideBusinessHoursEnum | false | none | * 0 - unactivated* 1 - activated |
ProtectionInAsset
{
"status": "unprotected",
"availability": "available"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | AssetProtectionEnum | true | none | * unprotected - Unprotected* easm - EASM* pentested - Pentested |
| availability | AssetProtectionAvailabilityEnum | true | none | * available - Available* unavailable_custom_asset - Unavailable Custom Asset* unavailable_archived_ip - Unavailable Archived Ip* unavailable_ineligible_ip - Unavailable Ineligible Ip |
ProtocolEnum
"tcp"
tcp- TCPudp- UDP
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * tcp - TCP* udp - UDP |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | tcp |
| anonymous | udp |
ReadGreyboxRequest
{
"id": 0,
"user_friendly_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"complexity": 1,
"in_scope": "string",
"contact_info": "string",
"complexity_text": "string",
"requested_by": "string",
"comments": "string",
"organization": 0,
"organization_name": "string"
}
Serializer for Greybox Request class
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| user_friendly_id | string | true | read-only | none |
| created_at | string(date-time) | false | none | none |
| started_at | string(date-time)¦null | false | none | none |
| finished_at | string(date-time)¦null | false | none | none |
| complexity | CriticalityEnum | true | read-only | * 1 - Low* 2 - Medium* 3 - High |
| in_scope | string | false | none | Insert assets |
| contact_info | string | false | none | Insert contact information: name + email + phone number |
| complexity_text | string | true | none | none |
| requested_by | string¦null | true | read-only | none |
| comments | string | false | none | Additional information about the assessment: |
| organization | integer | true | none | none |
| organization_name | string | true | none | none |
RegistrarInDetails
{
"name": "string",
"country": "string",
"mail": "string",
"date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| country | string | true | none | none |
| string | true | none | none | |
| date | string(date-time) | true | none | none |
RegistrarInList
{
"name": "string",
"date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| date | string(date-time) | true | none | none |
RelatedAssetSerializerOut
{
"counts": [
{
"id": 1,
"count": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| counts | [Item] | true | none | none |
RelatedEasm
{
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
}
Serializer to display informations about related Easm objects.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| domains | EasmObjects¦null | true | none | Information about a single related Easm object. |
| subdomains | EasmObjects¦null | true | none | Information about a single related Easm object. |
| ips | EasmObjects¦null | true | none | Information about a single related Easm object. |
Remediation
{
"id": 0,
"organization": 0,
"headline": "string",
"solution": "string",
"solution_html": "string",
"priority": "urgent",
"effort": "low",
"gain": 0,
"owners": [
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
],
"due_date": "2019-08-24T14:15:22Z",
"status": "new",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"count_vulns": 0
}
Serializer for Remediation endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| organization | integer | true | none | none |
| headline | string | false | none | none |
| solution | string | false | none | none |
| solution_html | string | true | read-only | none |
| priority | VulnerabilitySolutionPriorityEnum | true | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| effort | VulnerabilitySolutionEffortEnum | true | none | * low - Low* medium - Medium* high - High |
| gain | integer | true | read-only | none |
| owners | [UserLite] | true | read-only | none |
| due_date | string(date-time)¦null | false | none | none |
| status | VulnerabilityStatusEnum | true | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
| count_vulns | integer | true | read-only | none |
ResponseStatusEnum
"success"
success- Successpartial- Partialerror- Error
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * success - Success* partial - Partial* error - Error |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | success |
| anonymous | partial |
| anonymous | error |
Retest
{
"id": 0,
"patrowl_id": 0,
"vulnerability": 0,
"status": "none",
"comments": "string",
"requested_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"is_auto": true
}
Serializer for Retest endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| patrowl_id | integer¦null | true | read-only | none |
| vulnerability | integer | true | read-only | none |
| status | RetestStatusEnum | true | read-only | * none - None* pending - Pending* in-progress - In Progress* done-fixed - Done (Fixed)* done-not-fixed - Done (Not Fixed)* error - Error* canceled - Canceled |
| comments | string¦null | false | none | none |
| requested_by | string¦null | true | read-only | none |
| created_at | string(date-time) | false | none | none |
| updated_at | string(date-time) | false | none | none |
| is_auto | boolean | true | read-only | none |
RetestStatusEnum
"none"
none- Nonepending- Pendingin-progress- In Progressdone-fixed- Done (Fixed)done-not-fixed- Done (Not Fixed)error- Errorcanceled- Canceled
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * none - None* pending - Pending* in-progress - In Progress* done-fixed - Done (Fixed)* done-not-fixed - Done (Not Fixed)* error - Error* canceled - Canceled |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | none |
| anonymous | pending |
| anonymous | in-progress |
| anonymous | done-fixed |
| anonymous | done-not-fixed |
| anonymous | error |
| anonymous | canceled |
RoleEnum
2
2- Standard3- Auditor4- Organization Admin
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 2 - Standard* 3 - Auditor* 4 - Organization Admin |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 2 |
| anonymous | 3 |
| anonymous | 4 |
ScanInList
{
"finished_at": "2019-08-24T14:15:22Z",
"security_check": 0,
"id": 0,
"assets": {
"property1": [
{
"property1": "string",
"property2": "string"
}
],
"property2": [
{
"property1": "string",
"property2": "string"
}
]
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| finished_at | string(date-time)¦null | false | none | none |
| security_check | integer¦null | false | none | none |
| id | integer | true | read-only | none |
| assets | object | true | read-only | none |
| » additionalProperties | [object] | false | none | none |
| »» additionalProperties | string | false | none | none |
ScanTypeEnum
"passive"
passive- Passiveoffensive- Offensiveothers- Others
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * passive - Passive* offensive - Offensive* others - Others |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | passive |
| anonymous | offensive |
| anonymous | others |
SecurityCheck
{
"id": 0,
"title": "string",
"description": "string",
"scan_type": "passive",
"is_available": true,
"is_auto": true,
"latest_scans": [
{
"finished_at": "2019-08-24T14:15:22Z"
}
],
"vulnerabilities": [
{
"severity": 0,
"count": 0
}
],
"webservers_required": true,
"risk_insights": [
{
"severity": 0,
"count": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| description | string¦null | false | none | none |
| scan_type | ScanTypeEnum | false | none | * passive - Passive* offensive - Offensive* others - Others |
| is_available | boolean | false | none | none |
| is_auto | boolean | false | none | none |
| latest_scans | [LatestScans] | true | read-only | none |
| vulnerabilities | [BySeverity] | true | read-only | none |
| webservers_required | boolean | true | read-only | none |
| risk_insights | [BySeverity] | true | read-only | none |
SecurityCheckAsset
{
"status": "success",
"results": [
{
"id": 0,
"title": "string",
"description": "string",
"scan_type": "passive",
"is_available": true,
"is_auto": true,
"latest_scans": [
{
"finished_at": "2019-08-24T14:15:22Z"
}
],
"vulnerabilities": [
{
"severity": 0,
"count": 0
}
],
"webservers_required": true,
"risk_insights": [
{
"severity": 0,
"count": 0
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ResponseStatusEnum | true | none | * success - Success* partial - Partial* error - Error |
| results | [SecurityCheck] | true | none | none |
SeveritiesOverTime
{
"critical": [
0
],
"high": [
0
],
"medium": [
0
],
"low": [
0
],
"info": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| critical | [integer] | true | none | none |
| high | [integer] | true | none | none |
| medium | [integer] | true | none | none |
| low | [integer] | true | none | none |
| info | [integer] | true | none | none |
SeverityEnum
0
0- Info1- Low2- Medium3- High4- Critical
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 0 |
| anonymous | 1 |
| anonymous | 2 |
| anonymous | 3 |
| anonymous | 4 |
Statistics
{
"open": {
"total": 0,
"since_last_week": 0
},
"close": {
"total": 0,
"since_last_week": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| open | _Statistics | true | none | none |
| close | _Statistics | true | none | none |
SubTopic
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | read-only | none |
| slug | string | true | read-only | none |
| description | string | true | read-only | none |
| is_available | boolean | true | read-only | none |
| default_severity | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| security_check | integer¦null | true | read-only | none |
| remediation | string | true | read-only | none |
| remediation_effort | InsightEffortEnum | true | read-only | * 0 - Low* 1 - Medium* 2 - High |
| remediation_priority | SeverityEnum | true | read-only | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
Success
{
"status": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
SynchronizationLastRefreshTime
{
"last_refresh_time": "2019-08-24T14:15:22Z"
}
Serializer to extract the started_at field from a Synchronization object as
last_refresh_time.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| last_refresh_time | string(date-time)¦null | true | none | none |
Tag
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | read-only | none |
| description | string | true | read-only | none |
| organization | integer | true | read-only | none |
| assets | [AssetLite] | true | read-only | [AssetLite DRF Serializer definition.] |
| asset_groups | [TagAssetGroupLite] | true | read-only | none |
| created_by | TagCreatedBy | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
TagAssetGroupLite
{
"id": 0,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
TagCreatedBy
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| string(email) | true | none | none | |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
TagListResponse
{
"id": 0,
"value": "string",
"description": "string",
"organization": 0,
"assets": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string"
},
"created_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | Tag | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | TagLite | false | none | none |
TagLite
{
"id": 0,
"value": "string",
"description": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| value | string | true | none | none |
| description | string | false | none | none |
TakedownStatusEnum
"evidence_collection"
evidence_collection- Evidence Collectiontakedown- Takedowninfo_requested- Info Requestedrequired- Requiredin_review- In Reviewdomain_suspended- Domain Suspendedrejected- Rejectedescalated- Escalated
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * evidence_collection - Evidence Collection* takedown - Takedown* info_requested - Info Requested* required - Required* in_review - In Review* domain_suspended - Domain Suspended* rejected - Rejected* escalated - Escalated |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | evidence_collection |
| anonymous | takedown |
| anonymous | info_requested |
| anonymous | required |
| anonymous | in_review |
| anonymous | domain_suspended |
| anonymous | rejected |
| anonymous | escalated |
TeamAccessAsset
{
"id": 0,
"name": "string",
"description": "string",
"users": [
{
"id": 0,
"email": "user@example.com"
}
],
"has_access": true,
"access_control": {
"asset_groups": [
{
"id": 0,
"title": "string"
}
],
"campaigns": [
{
"id": 0,
"title": "string"
}
]
}
}
Serializer for team access to a given asset: id, name, description, users, has_access, access.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| name | string | true | none | none |
| description | string | true | none | none |
| users | [TeamAccessUser] | true | none | [Serializer for user information in team response.] |
| has_access | boolean | true | none | none |
| access_control | AccessControl | true | none | Nested control with asset_groups and campaigns lists. |
TeamAccessBase
{
"id": 0,
"name": "string",
"description": "string",
"users": [
{
"id": 0,
"email": "user@example.com"
}
],
"has_access": true
}
Serializer for team access information with users
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| name | string | true | none | none |
| description | string | true | none | none |
| users | [TeamAccessUser] | true | none | [Serializer for user information in team response.] |
| has_access | boolean | true | none | none |
TeamAccessUser
{
"id": 0,
"email": "user@example.com"
}
Serializer for user information in team response.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| string(email) | true | none | none |
TeamAssetAccessControl
{
"results": []
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| results | [TeamSingleAssetAccessControl] | false | none | none |
TeamAssetBulk
{
"asset_ids": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_ids | [integer] | true | none | none |
TeamAssetGroup
{
"id": 0,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
TeamAssetGroupCreateBulk
{
"team_ids": [
1
],
"asset_group_ids": [
1
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| team_ids | [integer] | true | none | none |
| asset_group_ids | [integer] | true | none | none |
TeamCounts
{
"users": 0,
"asset_groups": 0,
"assets": 0,
"campaigns": 0,
"operational_scope": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| users | integer | true | read-only | none |
| asset_groups | integer | true | read-only | none |
| assets | integer | true | read-only | none |
| campaigns | integer | true | read-only | none |
| operational_scope | integer | true | read-only | none |
TeamCreateSerializerIn
{
"name": "string",
"description": "",
"organization": 0
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| description | string | false | none | none |
| organization | integer | true | none | none |
TeamCreateSerializerOut
{
"id": 0,
"name": "string",
"description": "string",
"organization": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string¦null | true | none | none |
| description | string¦null | true | none | none |
| organization | string | true | none | none |
TeamDetail
{
"id": 0,
"name": "string",
"description": "string",
"counts": {
"users": 0,
"asset_groups": 0,
"assets": 0,
"campaigns": 0,
"operational_scope": 0
},
"owners": [
{
"id": 0,
"email": "string"
}
],
"updated_at": "2019-08-24T14:15:22Z",
"updated_by": "string",
"created_by": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| description | string | false | none | none |
| counts | TeamCounts | true | read-only | none |
| owners | [TeamOwner] | true | none | none |
| updated_at | string(date-time) | true | read-only | none |
| updated_by | string¦null | true | none | none |
| created_by | string¦null | true | none | none |
TeamIDsList
{
"team_ids": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| team_ids | [integer] | true | none | none |
TeamList
{
"id": 0,
"name": "string",
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"campaigns": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"asset_groups": {
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
},
"users": {
"count": 0,
"items": [
{
"id": 0,
"email": "user@example.com"
}
]
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
| description | string | false | none | none |
| updated_at | string(date-time) | true | read-only | none |
| campaigns | campaigns | true | read-only | none |
| asset_groups | asset_groups | true | read-only | none |
| users | users | true | read-only | none |
TeamLite
{
"id": 0,
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | none | none |
TeamOwner
{
"id": 0,
"email": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| string | true | none | none |
TeamPartialUpdateSerializerIn
{
"name": "string",
"description": "string"
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string¦null | false | none | none |
| description | string¦null | false | none | none |
TeamPentest
{
"id": 0,
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | false | none | none |
TeamPentestBulkCreate
{
"team_ids": [
1
],
"campaign_ids": [
1
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| team_ids | [integer] | true | none | none |
| campaign_ids | [integer] | true | none | none |
TeamSingleAssetAccessControl
{
"asset_id": 1,
"asset_groups": [],
"campaigns": []
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| asset_id | integer | true | none | none |
| asset_groups | [ObjectAccessControl] | false | none | none |
| campaigns | [ObjectAccessControl] | false | none | none |
TeamUser
{
"id": 0,
"email": "user@example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| string(email) | true | none | none |
TeamUserBulkCreate
{
"user_ids": [
1
],
"team_ids": [
1
]
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_ids | [integer] | true | none | none |
| team_ids | [integer] | true | none | none |
TeamUserOwnership
{
"user_id": 0,
"owner": true
}
Mixin for serializers that implements a layer of validation to reject any extra field. It needs to be multi-herited before a Serializer class.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_id | integer | true | none | none |
| owner | boolean | true | none | none |
TeamsAssetBulkCreateSerialier
{
"team_ids": [
0
],
"asset_ids": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| team_ids | [integer] | true | none | none |
| asset_ids | [integer] | true | none | none |
TechnologyAssetInList
{
"id": 0,
"product": "string",
"vendor": "string",
"version": "string",
"impacted_by_cve": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| product | string | true | none | none |
| vendor | string | true | read-only | none |
| version | string | true | none | none |
| impacted_by_cve | boolean | false | none | none |
TechnologyLite
{
"id": 0,
"product": "string",
"version": "string",
"vendor": "string",
"cpe": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| product | string | true | read-only | none |
| version | string | true | none | none |
| vendor | string | true | read-only | none |
| cpe | string | false | none | Technology CPE synced from Arsenal. It corresponds to partial_cpe on Arsenal. |
TextFilterOperationEnum
"contains"
contains- containsstartswith- startswithendswith- endswith
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * contains - contains* startswith - startswith* endswith - endswith |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | contains |
| anonymous | startswith |
| anonymous | endswith |
ThreatInfo
{
"is_exploitable": true,
"is_in_the_news": true,
"is_in_the_wild": true,
"is_kev": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| is_exploitable | boolean | true | none | none |
| is_in_the_news | boolean | true | none | none |
| is_in_the_wild | boolean | true | none | none |
| is_kev | boolean | true | none | none |
Ticket
{
"id": 0,
"identifier": "string",
"status": 0,
"status_name": "string",
"link": "string",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for Ticket endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| identifier | string¦null | false | none | none |
| status | TicketStatusEnum | true | read-only | * 0 - Unknown* 1 - New* 2 - In Progress* 3 - On Hold* 4 - Resolved* 5 - Closed* 6 - Canceled |
| status_name | string¦null | true | read-only | none |
| link | string¦null | true | read-only | none |
| last_checked_at | string(date-time)¦null | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
TicketStatusEnum
0
0- Unknown1- New2- In Progress3- On Hold4- Resolved5- Closed6- Canceled
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | integer | false | none | * 0 - Unknown* 1 - New* 2 - In Progress* 3 - On Hold* 4 - Resolved* 5 - Closed* 6 - Canceled |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | 0 |
| anonymous | 1 |
| anonymous | 2 |
| anonymous | 3 |
| anonymous | 4 |
| anonymous | 5 |
| anonymous | 6 |
Topic
{
"id": 0,
"title": "string",
"slug": "string",
"is_available": true,
"subtopics": [
{
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"is_available": true,
"default_severity": 0,
"security_check": 0,
"remediation": "string",
"remediation_effort": 0,
"remediation_priority": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | read-only | none |
| slug | string | true | read-only | none |
| is_available | boolean | true | read-only | none |
| subtopics | [SubTopic] | true | read-only | none |
Types
{
"ip": 0,
"domain": 0,
"custom": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ip | integer | true | none | none |
| domain | integer | true | none | none |
| custom | integer | true | none | none |
TyposquattedDomainCountByStatus
{
"detected": 0,
"tracked": 0,
"ignored": 0,
"resolved": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| detected | integer | false | none | none |
| tracked | integer | false | none | none |
| ignored | integer | false | none | none |
| resolved | integer | false | none | none |
TyposquattedDomainDetails
{
"id": 0,
"permutation": {
"value": "string",
"type": "string"
},
"top_domain": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"status": "detected",
"takedown_status": "evidence_collection",
"severity": "low",
"ip_addresses": [
"string"
],
"mail_service": [
"string"
],
"vulnerability": {
"id": 0,
"user_friendly_id": "string",
"title": "string"
},
"first_detection_date": "2019-08-24T14:15:22Z",
"registrar": {
"name": "string",
"country": "string",
"mail": "string",
"date": "2019-08-24T14:15:22Z"
},
"last_modification_date": "2019-08-24T14:15:22Z",
"last_seen": "2019-08-24T14:15:22Z",
"parked": true,
"potentially_down": true,
"ns_records": [
"string"
],
"webservice": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| permutation | Permutation | true | none | none |
| top_domain | AssetLite | true | none | AssetLite DRF Serializer definition. |
| status | TyposquattedDomainStatusEnum | true | read-only | Status of the typosquatted domain. * detected - Detected* tracked - Tracked* ignored - Ignored* resolved - Resolved |
| takedown_status | any | true | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | TakedownStatusEnum | false | none | * evidence_collection - Evidence Collection* takedown - Takedown* info_requested - Info Requested* required - Required* in_review - In Review* domain_suspended - Domain Suspended* rejected - Rejected* escalated - Escalated |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| severity | VulnerabilitySolutionEffortEnum | true | read-only | * low - Low* medium - Medium* high - High |
| ip_addresses | [string] | true | read-only | none |
| mail_service | [string] | true | none | none |
| vulnerability | VulnerabilityInTyposquattedDomain¦null | true | none | none |
| first_detection_date | string(date-time) | true | read-only | Date of the first detection of the typosquatted domain. |
| registrar | RegistrarInDetails | true | none | none |
| last_modification_date | string(date-time) | true | read-only | Date of the last modification of the typosquatted domain on Arsenal. |
| last_seen | string(date-time) | true | read-only | Last time the typosquatted domain was seen on Arsenal, do not implies modification. |
| parked | boolean¦null | true | read-only | none |
| potentially_down | boolean | true | none | none |
| ns_records | [string] | true | none | none |
| webservice | boolean | true | read-only | none |
TyposquattedDomainHistory
{
"id": 0,
"typosquatted_domain": 0,
"user": {
"id": 0,
"email": "user@example.com"
},
"description": "string",
"date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| typosquatted_domain | integer | true | none | none |
| user | TyposquattedDomainHistoryUser¦null | false | none | none |
| description | string¦null | false | none | none |
| date | string(date-time) | true | none | none |
TyposquattedDomainHistoryUser
{
"id": 0,
"email": "user@example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| string(email) | true | none | none |
TyposquattedDomainList
{
"id": 0,
"permutation": {
"value": "string",
"type": "string"
},
"top_domain": {
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
},
"status": "detected",
"takedown_status": "evidence_collection",
"severity": "low",
"ip_addresses": [
"string"
],
"mail_service": true,
"vulnerability": {
"id": 0,
"user_friendly_id": "string",
"title": "string"
},
"first_detection_date": "2019-08-24T14:15:22Z",
"registrar": {
"name": "string",
"date": "2019-08-24T14:15:22Z"
},
"last_modification_date": "2019-08-24T14:15:22Z",
"last_seen": "2019-08-24T14:15:22Z",
"parked": true,
"potentially_down": true,
"webservice": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| permutation | Permutation | true | none | none |
| top_domain | AssetLite | true | none | AssetLite DRF Serializer definition. |
| status | TyposquattedDomainStatusEnum | true | read-only | Status of the typosquatted domain. * detected - Detected* tracked - Tracked* ignored - Ignored* resolved - Resolved |
| takedown_status | any | true | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | TakedownStatusEnum | false | none | * evidence_collection - Evidence Collection* takedown - Takedown* info_requested - Info Requested* required - Required* in_review - In Review* domain_suspended - Domain Suspended* rejected - Rejected* escalated - Escalated |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NullEnum | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| severity | VulnerabilitySolutionEffortEnum | true | read-only | * low - Low* medium - Medium* high - High |
| ip_addresses | [string] | true | read-only | none |
| mail_service | boolean | true | none | none |
| vulnerability | VulnerabilityInTyposquattedDomain¦null | true | none | none |
| first_detection_date | string(date-time) | true | read-only | Date of the first detection of the typosquatted domain. |
| registrar | RegistrarInList | true | none | none |
| last_modification_date | string(date-time) | true | read-only | Date of the last modification of the typosquatted domain on Arsenal. |
| last_seen | string(date-time) | true | read-only | Last time the typosquatted domain was seen on Arsenal, do not implies modification. |
| parked | boolean¦null | true | read-only | none |
| potentially_down | boolean | true | none | none |
| webservice | boolean | true | read-only | none |
TyposquattedDomainStatusEnum
"detected"
detected- Detectedtracked- Trackedignored- Ignoredresolved- Resolved
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * detected - Detected* tracked - Tracked* ignored - Ignored* resolved - Resolved |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | detected |
| anonymous | tracked |
| anonymous | ignored |
| anonymous | resolved |
TyposquattedDomainsUpdateStatusEnum
"detected"
detected- Detectedtracked- Trackedignored- Ignored
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * detected - Detected* tracked - Tracked* ignored - Ignored |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | detected |
| anonymous | tracked |
| anonymous | ignored |
UpdateAutoTagPolicy
{
"id": 0,
"title": "string",
"is_enabled": true,
"tag": "string",
"tag_id": 0,
"tag_value": "string",
"filters": [
null
],
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| is_enabled | boolean | true | none | none |
| tag | string | true | write-only | none |
| tag_id | integer | true | read-only | none |
| tag_value | string | true | read-only | none |
| filters | [any] | true | read-only | none |
| organization | integer | true | read-only | none |
| created_at | string(date-time) | true | read-only | none |
| updated_at | string(date-time) | true | read-only | none |
UpdateInsightPolicy
{
"id": 0,
"title": "string",
"description": "string",
"is_enabled": true,
"severity": 0,
"created_by": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
},
"organization": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"active_vulnerabilities": 0,
"filters": [
{
"property1": null,
"property2": null
}
],
"already_applied": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| title | string | true | none | none |
| description | string | false | none | none |
| is_enabled | boolean | false | none | none |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| created_by | UserLite | true | read-only | none |
| organization | integer | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
| active_vulnerabilities | integer | true | read-only | Return the number of related active vulnerabilities. |
| filters | [object] | true | read-only | none |
| » additionalProperties | any | false | none | none |
| already_applied | boolean | true | read-only | none |
UpdatedFilterPolymorphic
{
"type": "string",
"id": 0,
"insight_policy": 0,
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightTitleFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightPolicyInsightSubTopicFilterTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | InsightSeverityFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetValueFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetCriticalityFilterUpdateTyped | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AssetTypeFilterUpdateTyped | false | none | none |
User
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"orgs": [
{
"id": 0,
"name": "string",
"slug": "string"
}
],
"current_org": {
"org_id": 0,
"org_name": "string"
},
"is_org_admin": true,
"role": 2,
"from_sso": true,
"emails_subscribed": [
{
"is_subscribed": true,
"key": "controls",
"description": "string"
}
],
"intercom": {
"id": "string",
"hash": "string"
},
"teams": [
{
"id": 0,
"name": "string"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for User endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| username | string | true | none | Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| string(email) | true | none | none | |
| last_login | string(date-time)¦null | true | read-only | none |
| is_superuser | boolean | true | read-only | Designates that this user has all permissions without explicitly assigning them. |
| is_staff | boolean | true | read-only | Designates whether the user can log into this admin site. |
| is_active | boolean | true | read-only | Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
| changed_first_password | boolean | true | read-only | none |
| orgs | [orgs] | true | read-only | none |
| current_org | current_org | true | read-only | none |
| is_org_admin | boolean | true | read-only | none |
| role | RoleEnum | true | none | * 2 - Standard* 3 - Auditor* 4 - Organization Admin |
| from_sso | boolean | true | read-only | none |
| emails_subscribed | [EmailSubscription] | true | read-only | none |
| intercom | intercom | true | read-only | none |
| teams | [TeamLite] | true | read-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
UserIDs
{
"user_ids": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_ids | [any] | true | none | none |
UserLite
{
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"is_active": true,
"role": 2,
"last_login": "2019-08-24T14:15:22Z",
"emails_subscribed": [
null
],
"teams": [
{
"id": 0,
"name": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| string(email) | true | none | none | |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| is_active | boolean | false | none | Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
| role | RoleEnum | false | none | * 2 - Standard* 3 - Auditor* 4 - Organization Admin |
| last_login | string(date-time)¦null | false | none | none |
| emails_subscribed | [any] | true | read-only | none |
| teams | [TeamLite] | true | read-only | none |
UserSerializerIn
{
"id": 0,
"username": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"last_login": "2019-08-24T14:15:22Z",
"is_superuser": true,
"is_staff": true,
"is_active": true,
"changed_first_password": true,
"role": 2,
"from_sso": true,
"teams": [
0
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| username | string | true | none | Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| string(email) | true | none | none | |
| last_login | string(date-time)¦null | true | read-only | none |
| is_superuser | boolean | true | read-only | Designates that this user has all permissions without explicitly assigning them. |
| is_staff | boolean | true | read-only | Designates whether the user can log into this admin site. |
| is_active | boolean | true | read-only | Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
| changed_first_password | boolean | true | read-only | none |
| role | RoleEnum | false | none | * 2 - Standard* 3 - Auditor* 4 - Organization Admin |
| from_sso | boolean | true | read-only | none |
| teams | [integer] | false | write-only | none |
| created_at | string(date-time)¦null | true | read-only | none |
| updated_at | string(date-time)¦null | true | read-only | none |
Vendor
{
"id": 0,
"name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| name | string | true | read-only | none |
VulnerabilitiesTimesToFixSerializerOut
{
"info": 0,
"low": 0,
"medium": 0,
"high": 0,
"critical": 0
}
Serializer for the times_to_fix endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| info | integer¦null | true | none | none |
| low | integer¦null | true | none | none |
| medium | integer¦null | true | none | none |
| high | integer¦null | true | none | none |
| critical | integer¦null | true | none | none |
Vulnerability
{
"id": 0,
"user_friendly_id": "string",
"patrowl_id": -2147483648,
"asset": 0,
"asset_id": "string",
"asset_outside_business_hours": 0,
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"organization": 0,
"asset_value": "string",
"asset_type": "string",
"severity": 0,
"cvss_vector": "string",
"cvss_score": 10,
"status": "new",
"title": "string",
"description": "string",
"description_html": "string",
"source": "string",
"external_id": null,
"last_ticket": {
"property1": null,
"property2": null
},
"has_exploit": true,
"solution_headline": "string",
"solution": "string",
"solution_html": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"owners": [
0
],
"solution_duedate": "2019-08-24T14:15:22Z",
"is_quickwin": true,
"is_auto": true,
"is_greybox": true,
"overdue": true,
"risk_id": 0,
"remediation_date": "2019-08-24T14:15:22Z",
"last_status_update": "2019-08-24T14:15:22Z",
"found_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"attachments": {
"property1": null,
"property2": null
},
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"solution_owners": [
0
],
"external_vulnerability": {
"id": 0,
"title": "string",
"description": "string",
"severity": 0,
"solution_priority": "urgent",
"solution_effort": "low",
"cvss_vector": "string",
"cvss_score": 10,
"solution_headline": "string",
"solution": "string"
},
"last_updated_by": {
"id": 0,
"email": "user@example.com"
},
"updated_by_user_at": "2019-08-24T14:15:22Z",
"asset_ip_state": "string"
}
Serializer for Vulnerability endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| user_friendly_id | string | true | read-only | none |
| patrowl_id | integer¦null | false | none | none |
| asset | integer | true | none | none |
| asset_id | string | true | read-only | Return the asset id. |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
| asset_protection | ProtectionInAsset | true | read-only | none |
| organization | integer¦null | false | none | none |
| asset_value | string | true | read-only | Return the asset value. |
| asset_type | string | true | read-only | Return the asset value. |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| cvss_vector | string¦null | false | none | none |
| cvss_score | number(double) | false | none | none |
| status | VulnerabilityStatusEnum | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
| title | string | false | none | none |
| description | string | false | none | none |
| description_html | string | true | read-only | none |
| source | string | false | none | none |
| external_id | any | false | none | none |
| last_ticket | object¦null | true | read-only | Return the latest ticket. Normally, it's one ticket per vuln but as the link if "many to one", we get the last one. /!/ take care of the reverse_many_to_one relation between vulnerability and tickets. We may lose tickets. Args: instance (vulnerabilities.models.Vulnerability) Returns: dict: dictionnary of the ticket fields (it's a |
| » additionalProperties | any | false | none | none |
| has_exploit | boolean | false | none | none |
| solution_headline | string¦null | false | none | none |
| solution | string | false | none | none |
| solution_html | string | true | read-only | none |
| solution_priority | VulnerabilitySolutionPriorityEnum | false | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| solution_effort | VulnerabilitySolutionEffortEnum | false | none | * low - Low* medium - Medium* high - High |
| solution_gain | integer | false | none | none |
| owners | [integer] | false | write-only | none |
| solution_duedate | string(date-time)¦null | false | none | none |
| is_quickwin | boolean | false | none | none |
| is_auto | boolean | false | none | none |
| is_greybox | boolean | false | none | none |
| overdue | boolean | true | read-only | none |
| risk_id | integer¦null | true | read-only | none |
| remediation_date | string(date-time)¦null | false | none | none |
| last_status_update | string(date-time) | false | none | none |
| found_at | string(date-time) | false | none | none |
| last_checked_at | string(date-time)¦null | false | none | none |
| created_at | string(date-time) | false | none | none |
| updated_at | string(date-time) | false | none | none |
| reteststatus | string | true | read-only | Compute retest status. |
| ticketstatus | integer | false | none | none |
| is_retestable | boolean | true | read-only | Check if the vuln is retestable Returns: bool: False if vuln has no patrowl_id/org is in PoC/asset is not pentested |
| attachments | object | true | read-only | none |
| » additionalProperties | any | false | none | none |
| vuln_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| vuln_solution_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| solution_owners | [integer] | false | write-only | none |
| external_vulnerability | ExternalVulnerability | true | read-only | Serializer for ExternalV Vulnerabilities |
| last_updated_by | VulnerabilityUser | true | read-only | none |
| updated_by_user_at | string(date-time)¦null | false | none | none |
| asset_ip_state | string | true | read-only | none |
VulnerabilityBySeverity
{
"severities": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"info": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| severities | _Severities | true | none | none |
VulnerabilityInTyposquattedDomain
{
"id": 0,
"user_friendly_id": "string",
"title": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| user_friendly_id | string | true | none | none |
| title | string | true | none | none |
VulnerabilityLite
{
"id": 0,
"user_friendly_id": "string",
"description": "string",
"solution_headline": "string",
"solution_priority": "urgent",
"solution_effort": "low",
"solution_gain": -2147483648,
"is_quickwin": true,
"title": "string",
"source": "string",
"status": "new",
"severity": 0,
"asset_id": "string",
"asset_value": "string",
"asset_protection": {
"status": "unprotected",
"availability": "available"
},
"asset_criticality": "string",
"vuln_owners": {
"property1": null,
"property2": null
},
"vuln_solution_owners": {
"property1": null,
"property2": null
},
"asset": 0,
"asset_outside_business_hours": 0,
"reteststatus": "string",
"ticketstatus": -2147483648,
"is_retestable": true,
"last_ticket": {
"property1": null,
"property2": null
},
"solution_duedate": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
Lite Serializer for Vulnerability endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| user_friendly_id | string | true | read-only | none |
| description | string | false | none | none |
| solution_headline | string¦null | false | none | none |
| solution_priority | VulnerabilitySolutionPriorityEnum | false | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
| solution_effort | VulnerabilitySolutionEffortEnum | false | none | * low - Low* medium - Medium* high - High |
| solution_gain | integer | false | none | none |
| is_quickwin | boolean | false | none | none |
| title | string | false | none | none |
| source | string | false | none | none |
| status | VulnerabilityStatusEnum | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
| severity | SeverityEnum | false | none | * 0 - Info* 1 - Low* 2 - Medium* 3 - High* 4 - Critical |
| asset_id | string | true | read-only | Return the asset value. |
| asset_value | string | true | read-only | Return the asset value. |
| asset_protection | ProtectionInAsset | true | read-only | none |
| asset_criticality | string | true | read-only | Return the asset criticality. |
| vuln_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| vuln_solution_owners | object¦null | true | read-only | none |
| » additionalProperties | any | false | none | none |
| asset | integer | true | none | none |
| asset_outside_business_hours | OutsideBusinessHoursEnum | true | read-only | * 0 - unactivated* 1 - activated |
| reteststatus | string | true | read-only | Compute retest status. |
| ticketstatus | integer | false | none | none |
| is_retestable | boolean | true | read-only | Check if the vuln is retestable Returns: bool: False if vuln has no patrowl_id/org is in PoC/asset is not pentested |
| last_ticket | object | true | read-only | Return the latest ticket. Normally, it's one ticket per vuln but as the link if "many to one", we get the last one. /!/ take care of the reverse_many_to_one relation between vulnerability and tickets. We may lose tickets. Args: instance (vulnerabilities.models.Vulnerability) Returns: dict: dictionnary of the ticket fields (it's a |
| » additionalProperties | any | false | none | none |
| solution_duedate | string(date-time)¦null | false | none | none |
| created_at | string(date-time) | false | none | none |
VulnerabilitySolutionEffortEnum
"low"
low- Lowmedium- Mediumhigh- High
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * low - Low* medium - Medium* high - High |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | low |
| anonymous | medium |
| anonymous | high |
VulnerabilitySolutionPriorityEnum
"urgent"
urgent- Urgentmoderate- Moderatehardening- Hardening
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * urgent - Urgent* moderate - Moderate* hardening - Hardening |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | urgent |
| anonymous | moderate |
| anonymous | hardening |
VulnerabilityStatusEnum
"new"
new- Newack- Acknowledgedassigned- Assignedpatched- Patchedclosed- Closedclosed-benign- Closed (Benign)closed-fp- Closed (False-Positive)closed-duplicate- Closed (Duplicate)closed-workaround- Closed (Workaround)closed-risk-acceptance- Closed (Risk acceptance)
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | * new - New* ack - Acknowledged* assigned - Assigned* patched - Patched* closed - Closed* closed-benign - Closed (Benign)* closed-fp - Closed (False-Positive)* closed-duplicate - Closed (Duplicate)* closed-workaround - Closed (Workaround)* closed-risk-acceptance - Closed (Risk acceptance) |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | new |
| anonymous | ack |
| anonymous | assigned |
| anonymous | patched |
| anonymous | closed |
| anonymous | closed-benign |
| anonymous | closed-fp |
| anonymous | closed-duplicate |
| anonymous | closed-workaround |
| anonymous | closed-risk-acceptance |
VulnerabilityUser
{
"id": 0,
"email": "user@example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| string(email) | true | none | none |
WebPortLite
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
Lite serializer for Port endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| number | integer | false | none | none |
| protocol | ProtocolEnum | false | none | * tcp - TCP* udp - UDP |
| is_ssl | boolean | false | none | none |
| service_name | string¦null | false | none | none |
| state | PortStateEnum | true | none | * open - Open* filtered - Filtered* closed - Closed* unknown - Unknown |
| banners | [Banner] | false | none | [Serializer for Banner endpoint.] |
WebServer
{
"id": 0,
"ports": [
{
"id": 0,
"number": -2147483648,
"protocol": "tcp",
"is_ssl": true,
"service_name": "string",
"state": "open",
"banners": [
{
"id": 0,
"host": "string",
"port": 0,
"text": "string"
}
]
}
],
"host": "string",
"url": "string",
"server": "string",
"path": "string",
"title": "string",
"asset": 0,
"response_time": "string",
"status_code": "string",
"content_length": "string",
"content_type": "string",
"jarm": "string",
"favicon_hash": "string",
"technologies": [
null
],
"ips": [
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
]
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Serializer for WebServer endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| ports | [WebPortLite] | false | none | [Lite serializer for Port endpoint.] |
| host | string | false | none | none |
| url | string | false | none | none |
| server | string¦null | false | none | none |
| path | string | false | none | none |
| title | string¦null | false | none | none |
| asset | integer¦null | false | none | none |
| response_time | string¦null | false | none | none |
| status_code | string¦null | false | none | none |
| content_length | string¦null | false | none | none |
| content_type | string¦null | false | none | none |
| jarm | string¦null | false | none | none |
| favicon_hash | string¦null | false | none | none |
| technologies | [any] | true | read-only | none |
| ips | [WebServerIp] | true | read-only | none |
| created_at | string(date-time)¦null | false | none | none |
| updated_at | string(date-time)¦null | false | none | none |
WebServerIp
{
"id": 0,
"address": "string",
"asset_id": 0,
"ports": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| address | string | true | none | none |
| asset_id | integer¦null | true | none | none |
| ports | [integer] | true | none | none |
WebServerLite
{
"id": 0,
"url": "string",
"server": "string",
"title": "string"
}
Lite Serializer for WebServer endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | read-only | none |
| url | string | false | none | none |
| server | string¦null | false | none | none |
| title | string¦null | false | none | none |
WriteGreyboxRequest
{
"user_friendly_id": "string",
"requested_by": 0,
"started_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"in_scope": "string",
"comments": "string",
"contact_info": "string",
"complexity": 1,
"organization": 0
}
Serializer for Greybox Request class
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_friendly_id | string | true | read-only | none |
| requested_by | integer¦null | false | none | none |
| started_at | string(date-time)¦null | false | none | none |
| finished_at | string(date-time)¦null | false | none | none |
| in_scope | string | false | none | Insert assets |
| comments | string | false | none | Additional information about the assessment: |
| contact_info | string | false | none | Insert contact information: name + email + phone number |
| complexity | CriticalityEnum | false | none | * 1 - Low* 2 - Medium* 3 - High |
| organization | integer | true | none | none |
_Severities
{
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"info": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| critical | integer | false | none | none |
| high | integer | false | none | none |
| medium | integer | false | none | none |
| low | integer | false | none | none |
| info | integer | false | none | none |
_Statistics
{
"total": 0,
"since_last_week": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| total | integer | false | none | none |
| since_last_week | integer | false | none | none |
add_filters_serializer_request
{
"filters": {
"id": 0,
"name": "string",
"field": "asset_value",
"operation": "contains",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| filters | AutoTagFilterIn | true | none | Base serializer necessary to abstract Auto tag filters. |
add_filters_serializer_response
{
"results": [
{
"id": 0,
"name": "string",
"field": "string",
"operation": "exact",
"value": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| results | [AutotagFiltersIn] | true | none | none |
add_owners
{
"users_id": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| users_id | [any] | true | none | none |
already_reported_response_serializer
{
"status": "already_exists",
"message": "string",
"data": {
"id": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
| message | string | true | none | none |
| data | id_response_serializer | true | none | none |
asset_groups
{
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
| items | [TeamAssetGroup] | true | none | none |
asset_id_seriliazer
{
"assets_id": [
0
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| assets_id | [integer] | true | none | none |
assets_group_add_assets
{
"assets_id": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| assets_id | [any] | true | none | none |
assets_group_add_tag
{
"value": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | string | true | none | none |
base_filter
{
"type": "insight_severity"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type | string | false | none | none |
bulk_remove_owners
{
"ids": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ids | [any] | true | none | none |
by-efforts
{
"efforts": {
"low": 0,
"medium": 0,
"high": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| efforts | efforts | true | none | none |
by-priorities
{
"priorities": {
"hardening": 0,
"moderate": 0,
"urgent": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| priorities | priorities | true | none | none |
by-severity-time
{
"data": [
{
"interval": "string",
"critical": "string",
"high": "string",
"info": "string",
"low": "string",
"medium": "string",
"quickwin": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | [by-severity-time-data] | true | none | none |
by-severity-time-data
{
"interval": "string",
"critical": "string",
"high": "string",
"info": "string",
"low": "string",
"medium": "string",
"quickwin": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| interval | string | true | none | none |
| critical | string | true | none | none |
| high | string | true | none | none |
| info | string | true | none | none |
| low | string | true | none | none |
| medium | string | true | none | none |
| quickwin | string | true | none | none |
by-vuln-status
{
"vulns_status": {
"open": 0,
"close": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vulns_status | vulns-status | true | none | none |
campaigns
{
"count": 0,
"items": [
{
"id": 0,
"title": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
| items | [TeamPentest] | true | none | none |
create_asset_response_serializer
{
"status": "success",
"message": "string",
"data": {
"id": 0,
"value": "string",
"criticality": 1,
"type": "ip",
"description": "string",
"exposure": "unknown",
"score": 0,
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0,
"created_by": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
0
],
"score_level": 0,
"technologies": [
null
],
"asset_owners": {
"property1": null,
"property2": null
},
"owners": [
0
],
"groups": {
"property1": null,
"property2": null
},
"organization": 0,
"asset_tags": {
"property1": null,
"property2": null
},
"provider": "string",
"monitored_slot_lock_until": "2019-08-24T14:15:22Z",
"liveness": "unknown",
"www_related_domain": {
"property1": null,
"property2": null
},
"has_webservers": true,
"ip_state": "active",
"ip_type": "cdn",
"last_resolution_date": "2019-08-24T14:15:22Z",
"related_easm": {
"domains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"subdomains": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
},
"ips": {
"easm_objects": [
{
"id": 0,
"value": "string",
"protection": {
"status": "unprotected",
"availability": "available"
},
"outside_business_hours": 0
}
],
"count": 0
}
},
"teams": [
0
],
"screenshot_url": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ResponseStatusEnum | true | none | * success - Success* partial - Partial* error - Error |
| message | string | true | none | none |
| data | Asset | true | none | Asset DRF Serializer definition. |
current_org
{
"org_id": 0,
"org_name": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| org_id | integer¦null | true | none | none |
| org_name | string¦null | true | none | none |
custom_remediations_add_owners
{
"users_id": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| users_id | [any] | true | none | none |
custom_remediations_add_vulnerabilities
{
"vulnerabilities_id": [
null
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vulnerabilities_id | [any] | true | none | none |
efforts
{
"low": 0,
"medium": 0,
"high": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| low | integer | true | none | none |
| medium | integer | true | none | none |
| high | integer | true | none | none |
get-periodic-retest
{
"status": "string",
"last_retest_date": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| last_retest_date | string(date-time) | true | none | none |
id_response_serializer
{
"id": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
insight_bulk_update_serializer
{
"status": "success"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | false | none | none |
insights_all_count_serializer
{
"count": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
insights_counts_serializer
{
"All": {
"count": 0
},
"topic_title": {
"count": 0,
"Subtopics": {
"subtopic_title": 0
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| All | insights_all_count_serializer | true | none | none |
| topic_title | insights_topics_count_serializer | true | none | none |
insights_subtopics_count_serializer
{
"subtopic_title": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| subtopic_title | integer | true | none | none |
insights_topics_count_serializer
{
"count": 0,
"Subtopics": {
"subtopic_title": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
| Subtopics | insights_subtopics_count_serializer | true | none | none |
intercom
{
"id": "string",
"hash": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string¦null | true | none | none |
| hash | string¦null | true | none | none |
itsm_reset_serializer
{
"status": "string",
"reason": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| reason | string | true | none | none |
orgs
{
"id": 0,
"name": "string",
"slug": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| name | string | true | none | none |
| slug | string | true | none | none |
priorities
{
"hardening": 0,
"moderate": 0,
"urgent": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| hardening | integer | true | none | none |
| moderate | integer | true | none | none |
| urgent | integer | true | none | none |
response_assets_group_add_tag
{
"status": "string",
"data": {
"id": 0,
"value": "string",
"organization": 0
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| data | AssetTag | true | none | AssetTag DRF Serializer definition. |
retests_update_comment
{
"comment": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| comment | string | true | none | none |
update_asset_group_filters
{
"value": null,
"id": 0,
"type": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | any | true | none | Filter value; shape depends on the filter type (protection, tag, port, etc.). |
| id | integer | true | none | none |
| type | string | false | none | none |
upload_file_attachements
{
"title": "string",
"file": "http://example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| title | string | true | none | none |
| file | string(uri) | true | none | none |
users
{
"count": 0,
"items": [
{
"id": 0,
"email": "user@example.com"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
| items | [TeamUser] | true | none | none |
vulns-status
{
"open": 0,
"close": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| open | integer | true | none | none |
| close | integer | true | none | none |
© 2020-2026 Patrowl.io - All rights reserved.