# Issue

## Get a summary of issues.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/summary.json`

Returns a paginated list of issues.

<https://app.halosecurity.com/user/security/issues/summary>

#### Query Parameters

| Name                 | Type    | Description                                                                                                     |
| -------------------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| sort                 | String  | <p><code>name</code> <em>(default)</em></p><p><code>severity</code></p><p><code>target-count</code></p>         |
| sort\_desc           | Integer | <p><code>0</code> = No <em>(default)</em></p><p><code>1</code> = Yes</p>                                        |
| severity             | String  | <p>Defaults to All</p><p>Specific Value:  <code>1</code> </p><p>Range: <code>3-5</code> or <code>>=1</code></p> |
| include\_target\_ids | Integer | <p><code>0</code> = No <em>(default)</em></p><p><code>1</code> = Yes</p>                                        |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "list": [
        {
            "target_count": 6,
            "issue": {
                "severity": 2,
                "issue_id": 1126115,
                "name": "Content-Security-Policy Not Implemented"
            },
            "target_ids": [
                111,
                222,
                333
            ]
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Get a list of issues.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/list.json`

Returns a paginated list of issues.

<https://app.halosecurity.com/user/security/issues/list>

#### Query Parameters

| Name         | Type    | Description                                                                                                                                 |
| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| issue\_id    | Integer | Filter by issue id                                                                                                                          |
| status       | String  | Filter by status ("new", "investigating", "confirmed", "fixing", "fixed", "ack\_false\_positive", "ack\_acceptable\_risk", "active", "ack") |
| assigned\_to | String  | Filter by assigned                                                                                                                          |
| severity     | Integer | Filter by severity                                                                                                                          |
| include\_ack | Integer | 1 = yes                                                                                                                                     |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "list": [
        {
            "issue": {
                "severity": 1,
                "issue_id": 1,
                "name": "Host Uptime Based on TCP TimeStamp Option"
            },
            "instances": [],
            "target": {
                "target_name": "",
                "target_id": 1,
                "target": "www.example.com"
            },
            "status": {
                "issue_id": 1,
                "target_id": 1,
                "scans_since_found": 0,
                "assigned_to": "someone@company.com",
                "status": "new"
            }
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Get the details of an issue.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/get.json`

Returns the details of an issue.

<https://app.halosecurity.com/user/security/issues/list>

#### Query Parameters

| Name                                        | Type    | Description |
| ------------------------------------------- | ------- | ----------- |
| issue\_id<mark style="color:red;">\*</mark> | Integer |             |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "target_count": 1,
    "issue": {
        "severity": 1,
        "issue_id": 1,
        "pci": 0,
        "name": "Host Uptime Based on TCP TimeStamp Option",
        "description": "The TCP/IP stack on the host supports the TCP TimeStamp (kind 8) option.\n",
        "cve_ids": [],
        "category": "TCP/IP",
        "type": 1,
        "date_last_modified": "0000-00-00 00:00"
    },
    "target_ids": [
        1
    ]
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "code": 404,
    "message": "Issue Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get the details for an instance of an issue.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/instance.json`

Returns the details for an instance of an issue.

<https://app.halosecurity.com/user/security/issues/list>

#### Query Parameters

| Name                                        | Type    | Description |
| ------------------------------------------- | ------- | ----------- |
| issue\_id<mark style="color:red;">\*</mark> | Integer |             |
| scan\_id<mark style="color:red;">\*</mark>  | String  |             |
| instance<mark style="color:red;">\*</mark>  | String  |             |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "instance": {
        "severity": 2,
        "result": "Based on TCP timestamps obtained via port 80",
        "vulnId": 1,
        "issue_id": 1,
        "first_found_date": "0000-00-00 00:00",
        "port": 0,
        "pci": 0,
        "key": "id1"
    },
    "issue": {
        "severity": 2,
        "issue_id": 1,
        "name": "Host Uptime Based on TCP TimeStamp Option"
    },
    "target": {
        "target_name": "",
        "target_id": 1,
        "target": "www.example.com"
    },
    "status": {
        "issue_id": 1,
        "target_id": 1,
        "scans_since_found": 0,
        "assigned_to": "Nobody",
        "status": "new"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "code": 0,
    "message": "issue_id required"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "code": 0,
    "message": "instance not found"
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "code": 404,
    "message": "instance required"
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "code": 404,
    "message": "scan_id required"
}
```

{% endtab %}
{% endtabs %}

## Update details of an issue.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/update.json`

Update the status and notes of an issue, or assign it to a user ID/email.

<https://app.halosecurity.com/user/security/issues/list>

#### Query Parameters

| Name                                           | Type    | Description                                                                                                              |
| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| issue\_id<mark style="color:red;">\*</mark>    | Integer |                                                                                                                          |
| target\_id<mark style="color:red;">\*</mark>   | Integer |                                                                                                                          |
| status<mark style="color:red;">\*</mark>       | String  | "new", "investigating", "confirmed", "fixing", "fixed", "ack\_false\_positive", "ack\_acceptable\_risk", "active", "ack" |
| assigned\_to<mark style="color:red;">\*</mark> | String  | <p><code>user\_id</code> or <code>email</code></p><p><code>0</code> for unassigned</p>                                   |
| note                                           | String  |                                                                                                                          |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "success": 1
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "code": 0,
    "message": "target_id required"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "code": 0,
    "message": "issue_id required"
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "code": 0,
    "message": "Issue Not Found"
}
```

{% endtab %}
{% endtabs %}

## Get the changes between scans.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/changes.json`

#### Query Parameters

| Name     | Type   | Description                                                                                                     |
| -------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| now      | String | Defaults to last scan.                                                                                          |
| ago      | String | Defaults to prior scan.                                                                                         |
| type     | String | `removed` or `added`                                                                                            |
| severity | String | <p>Defaults to All</p><p>Specific Value:  <code>1</code> </p><p>Range: <code>3-5</code> or <code>>=1</code></p> |
| q        | String | Query                                                                                                           |

## Get retired issues.

<mark style="color:blue;">`GET`</mark> `https://api.halosecurity.com/api/v1/issue/retired.json`

#### Query Parameters

<table><thead><tr><th width="142.03125">Name</th><th width="123.25390625">Type</th><th>Description</th></tr></thead><tbody><tr><td>days</td><td>Integer</td><td>Defaults to 7.</td></tr><tr><td>instance</td><td>Integer</td><td><code>1</code> = Yes <em>(Default)</em><br><code>0</code> = No</td></tr><tr><td>severity</td><td>String</td><td><p>Defaults to All</p><p>Specific Value:  <code>1</code> </p><p>Range: <code>3-5</code> or <code>>=1</code></p></td></tr></tbody></table>
