Sync Alerts
curl --request POST \
--url https://api.rilevera.com/v1/alert-sync \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"alerts": [
{
"platform_alert_id": "sumo-alert-12345",
"platform_rule_id": [
"rule-9876"
],
"source_platform": "sumologic",
"alert_title": "Suspicious Login Activity Detected",
"alert_description": "Multiple failed login attempts from IP 192.168.1.100",
"severity": "high",
"status": "open",
"detected_at": "2024-01-15T10:30:00Z",
"first_observed_at": "2024-01-15T10:25:00Z",
"last_observed_at": "2024-01-15T10:30:00Z",
"tags": [
"authentication",
"brute-force",
"external-ip"
],
"assigned_to": null,
"assigned_at": null,
"resolved_by": null,
"resolved_at": null,
"resolution_summary": null,
"final_disposition": null
}
]
}
'import requests
url = "https://api.rilevera.com/v1/alert-sync"
payload = { "alerts": [
{
"platform_alert_id": "sumo-alert-12345",
"platform_rule_id": ["rule-9876"],
"source_platform": "sumologic",
"alert_title": "Suspicious Login Activity Detected",
"alert_description": "Multiple failed login attempts from IP 192.168.1.100",
"severity": "high",
"status": "open",
"detected_at": "2024-01-15T10:30:00Z",
"first_observed_at": "2024-01-15T10:25:00Z",
"last_observed_at": "2024-01-15T10:30:00Z",
"tags": ["authentication", "brute-force", "external-ip"],
"assigned_to": None,
"assigned_at": None,
"resolved_by": None,
"resolved_at": None,
"resolution_summary": None,
"final_disposition": None
}
] }
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
alerts: [
{
platform_alert_id: 'sumo-alert-12345',
platform_rule_id: ['rule-9876'],
source_platform: 'sumologic',
alert_title: 'Suspicious Login Activity Detected',
alert_description: 'Multiple failed login attempts from IP 192.168.1.100',
severity: 'high',
status: 'open',
detected_at: '2024-01-15T10:30:00Z',
first_observed_at: '2024-01-15T10:25:00Z',
last_observed_at: '2024-01-15T10:30:00Z',
tags: ['authentication', 'brute-force', 'external-ip'],
assigned_to: null,
assigned_at: null,
resolved_by: null,
resolved_at: null,
resolution_summary: null,
final_disposition: null
}
]
})
};
fetch('https://api.rilevera.com/v1/alert-sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rilevera.com/v1/alert-sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'alerts' => [
[
'platform_alert_id' => 'sumo-alert-12345',
'platform_rule_id' => [
'rule-9876'
],
'source_platform' => 'sumologic',
'alert_title' => 'Suspicious Login Activity Detected',
'alert_description' => 'Multiple failed login attempts from IP 192.168.1.100',
'severity' => 'high',
'status' => 'open',
'detected_at' => '2024-01-15T10:30:00Z',
'first_observed_at' => '2024-01-15T10:25:00Z',
'last_observed_at' => '2024-01-15T10:30:00Z',
'tags' => [
'authentication',
'brute-force',
'external-ip'
],
'assigned_to' => null,
'assigned_at' => null,
'resolved_by' => null,
'resolved_at' => null,
'resolution_summary' => null,
'final_disposition' => null
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rilevera.com/v1/alert-sync"
payload := strings.NewReader("{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rilevera.com/v1/alert-sync")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rilevera.com/v1/alert-sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"total_new_alerts": 5,
"total_updated_alerts": 10,
"total_unchanged_alerts": 85,
"error_count": 0,
"failed_alerts": [],
"response_metadata": {
"type": "AlertSyncResponse"
}
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>",
"validationErrors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}Alerts
Sync Alerts
Sync a batch of alerts from your security platform to Rilevera.
POST
/
v1
/
alert-sync
Sync Alerts
curl --request POST \
--url https://api.rilevera.com/v1/alert-sync \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"alerts": [
{
"platform_alert_id": "sumo-alert-12345",
"platform_rule_id": [
"rule-9876"
],
"source_platform": "sumologic",
"alert_title": "Suspicious Login Activity Detected",
"alert_description": "Multiple failed login attempts from IP 192.168.1.100",
"severity": "high",
"status": "open",
"detected_at": "2024-01-15T10:30:00Z",
"first_observed_at": "2024-01-15T10:25:00Z",
"last_observed_at": "2024-01-15T10:30:00Z",
"tags": [
"authentication",
"brute-force",
"external-ip"
],
"assigned_to": null,
"assigned_at": null,
"resolved_by": null,
"resolved_at": null,
"resolution_summary": null,
"final_disposition": null
}
]
}
'import requests
url = "https://api.rilevera.com/v1/alert-sync"
payload = { "alerts": [
{
"platform_alert_id": "sumo-alert-12345",
"platform_rule_id": ["rule-9876"],
"source_platform": "sumologic",
"alert_title": "Suspicious Login Activity Detected",
"alert_description": "Multiple failed login attempts from IP 192.168.1.100",
"severity": "high",
"status": "open",
"detected_at": "2024-01-15T10:30:00Z",
"first_observed_at": "2024-01-15T10:25:00Z",
"last_observed_at": "2024-01-15T10:30:00Z",
"tags": ["authentication", "brute-force", "external-ip"],
"assigned_to": None,
"assigned_at": None,
"resolved_by": None,
"resolved_at": None,
"resolution_summary": None,
"final_disposition": None
}
] }
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
alerts: [
{
platform_alert_id: 'sumo-alert-12345',
platform_rule_id: ['rule-9876'],
source_platform: 'sumologic',
alert_title: 'Suspicious Login Activity Detected',
alert_description: 'Multiple failed login attempts from IP 192.168.1.100',
severity: 'high',
status: 'open',
detected_at: '2024-01-15T10:30:00Z',
first_observed_at: '2024-01-15T10:25:00Z',
last_observed_at: '2024-01-15T10:30:00Z',
tags: ['authentication', 'brute-force', 'external-ip'],
assigned_to: null,
assigned_at: null,
resolved_by: null,
resolved_at: null,
resolution_summary: null,
final_disposition: null
}
]
})
};
fetch('https://api.rilevera.com/v1/alert-sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rilevera.com/v1/alert-sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'alerts' => [
[
'platform_alert_id' => 'sumo-alert-12345',
'platform_rule_id' => [
'rule-9876'
],
'source_platform' => 'sumologic',
'alert_title' => 'Suspicious Login Activity Detected',
'alert_description' => 'Multiple failed login attempts from IP 192.168.1.100',
'severity' => 'high',
'status' => 'open',
'detected_at' => '2024-01-15T10:30:00Z',
'first_observed_at' => '2024-01-15T10:25:00Z',
'last_observed_at' => '2024-01-15T10:30:00Z',
'tags' => [
'authentication',
'brute-force',
'external-ip'
],
'assigned_to' => null,
'assigned_at' => null,
'resolved_by' => null,
'resolved_at' => null,
'resolution_summary' => null,
'final_disposition' => null
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rilevera.com/v1/alert-sync"
payload := strings.NewReader("{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rilevera.com/v1/alert-sync")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rilevera.com/v1/alert-sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"alerts\": [\n {\n \"platform_alert_id\": \"sumo-alert-12345\",\n \"platform_rule_id\": [\n \"rule-9876\"\n ],\n \"source_platform\": \"sumologic\",\n \"alert_title\": \"Suspicious Login Activity Detected\",\n \"alert_description\": \"Multiple failed login attempts from IP 192.168.1.100\",\n \"severity\": \"high\",\n \"status\": \"open\",\n \"detected_at\": \"2024-01-15T10:30:00Z\",\n \"first_observed_at\": \"2024-01-15T10:25:00Z\",\n \"last_observed_at\": \"2024-01-15T10:30:00Z\",\n \"tags\": [\n \"authentication\",\n \"brute-force\",\n \"external-ip\"\n ],\n \"assigned_to\": null,\n \"assigned_at\": null,\n \"resolved_by\": null,\n \"resolved_at\": null,\n \"resolution_summary\": null,\n \"final_disposition\": null\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"total_new_alerts": 5,
"total_updated_alerts": 10,
"total_unchanged_alerts": 85,
"error_count": 0,
"failed_alerts": [],
"response_metadata": {
"type": "AlertSyncResponse"
}
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>",
"validationErrors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"userMessage": "<string>",
"errorType": "<string>",
"requestId": "<string>",
"title": "<string>",
"additionalContext": "<string>"
}Sync a batch of alerts from your security platform to Rilevera.
Key Features
- Batch processing - Send multiple alerts in a single request
- Idempotent - Uses
platform_alert_idto identify alerts; re-syncing updates rather than duplicates - Metrics - Response includes counts of new, updated, and unchanged alerts
X-Api-Key headerAuthorizations
Body
application/json
Response
Sync completed successfully

