NAV
Shell HTTP JavaScript Ruby Python PHP Java Go

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:

Base URL:

Email: Support

Authentication

How to get your API Token? 🔑

Your API access token is accessible on Patrowl Dashboard in your account settings:

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
email 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

Enumerated Values

Parameter Value
sorted_by -can_be_owner
sorted_by -email
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 email
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
email 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

Enumerated Values

Parameter Value
sorted_by -can_be_owner
sorted_by -email
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 email
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

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

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

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

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

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.

sorted_by: Ordering

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
»» email 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.

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.

sorted_by: Ordering

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.

sorted_by: Ordering

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.

sorted_by: Ordering

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.

sorted_by: Ordering

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

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

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
»» email 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

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

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

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

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

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

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

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

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

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

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

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
    }
  ]
}
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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

source: Filters by source of vulnerability. Free search filter that accepts the following specific entries:

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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.

asset_liveness: Deprecated: use CoreAsset.liveness instead.

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.

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

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

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

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

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.

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.

sorted_by: Ordering

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.

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.

sorted_by: Ordering

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

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

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
»» email 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

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.

severity: Multiple values may be separated by commas.

sorted_by: Ordering

status: Multiple values may be separated by commas.

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
»» email 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.

severity: Multiple values may be separated by commas.

sorted_by: Ordering

status: Multiple values may be separated by commas.

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.

export_format: * csv - CSV * json - JSON

severity: Multiple values may be separated by commas.

sorted_by: Ordering

status: Multiple values may be separated by commas.

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

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

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

sorted_by: Ordering

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"

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"

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"

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"

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"

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"

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"

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"

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

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
email 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"

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"

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"

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"

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"

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"

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"

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"

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

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

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"

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"

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.
email 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

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"

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"

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
mail 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"

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"

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

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"

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

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
email 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"

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
email 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
email 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
email 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"

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

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
email 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"

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"

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
email 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
email 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
email 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"

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"

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"

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
email 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.