Skip to content

Listing Alerts

Query and retrieve alerts with pagination and sorting.


Endpoint

GET /api/alerts

Retrieves all alerts with optional filtering, sorting, and pagination.


Authentication

Requires any valid API Key. All keys have read access.


Query Parameters

Parameter Type Default Description
sortBy string "name asc" Sort specification (e.g., "name asc", "id desc")
skip integer 0 Number of records to skip (for pagination)
take integer All Number of records to return

Response

Returns a paginated list of alerts:

Response Format
{
  "items": [
    {
      "id": "alert-uuid-1",
      "name": "High-Volume PII Detection",
      "description": "...",
      "enable": true,
      "notificationTypes": ["email", "slack"],
      "emailRecipients": ["security@company.com"],
  "thresholdTime": "5",
  "thresholdType": "minutes",
      "conditions": [...]
    }
  ],
  "count": 8
}

Examples

List All Alerts

Retrieve all alerts sorted by name.

Example

bash curl -X GET "https://your-shield-host:8080/api/alerts?sortBy=name%20asc" \ -H "Authorization: Bearer YOUR_API_KEY" | jq '.items[] | {id, name, enable}'

=== "Python"

    ```python
    import requests

    BASE_URL = "https://your-shield-host:8080"
    HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

    response = requests.get(
        f"{BASE_URL}/api/alerts",
        headers=HEADERS,
        params={"sortBy": "name asc"}
    )

    for alert in response.json()["items"]:
        status = "enabled" if alert["enable"] else "disabled"
        print(f"{alert['name']}: {status} ({alert['thresholdTime']} window)")
    ```

=== "Node.js"

    ```javascript
    const axios = require('axios');

    const BASE_URL = 'https://your-shield-host:8080';
    const HEADERS = { 'Authorization': 'Bearer YOUR_API_KEY' };

    const response = await axios.get(`${BASE_URL}/api/alerts`, {
      headers: HEADERS,
      params: { sortBy: 'name asc' }
    });

    response.data.items.forEach(alert => {
      const status = alert.enable ? 'enabled' : 'disabled';
      console.log(`${alert.name}: ${status} (${alert.thresholdTime} window)`);
    });
    ```
Paginated Results

Retrieve alerts with pagination (25 per page).

```python import requests

BASE_URL = "https://your-shield-host:8080" HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

page = 0 page_size = 25

response = requests.get( f"{BASE_URL}/api/alerts", headers=HEADERS, params={"skip": page * page_size, "take": page_size} )

alerts = response.json() print(f"Page {page + 1}: {len(alerts['items'])} of {alerts['count']} total") ```

```javascript const axios = require('axios');

const BASE_URL = 'https://your-shield-host:8080'; const HEADERS = { 'Authorization': 'Bearer YOUR_API_KEY' };

const page = 0; const pageSize = 25;

const response = await axios.get(${BASE_URL}/api/alerts, { headers: HEADERS, params: { skip: page * pageSize, take: pageSize } });

console.log(Page ${page + 1}: ${response.data.items.length} of ${response.data.count} total); ```