curl --request POST \
--url https://api.phare.io/alert-rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": "organization",
"integration_id": 1,
"rate_limit": 5,
"event_settings": {},
"integration_settings": {}
}
'import requests
url = "https://api.phare.io/alert-rules"
payload = {
"scope": "organization",
"integration_id": 1,
"rate_limit": 5,
"event_settings": {},
"integration_settings": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scope: 'organization',
integration_id: 1,
rate_limit: 5,
event_settings: {},
integration_settings: {}
})
};
fetch('https://api.phare.io/alert-rules', 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.phare.io/alert-rules",
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([
'scope' => 'organization',
'integration_id' => 1,
'rate_limit' => 5,
'event_settings' => [
],
'integration_settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.phare.io/alert-rules"
payload := strings.NewReader("{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.phare.io/alert-rules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/alert-rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"event": "uptime.monitor.created",
"integration_id": 1,
"rate_limit": 5,
"id": 1,
"project_id": 1,
"event_settings": {},
"integration_settings": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Create an alert rule
Create an alert rule
curl --request POST \
--url https://api.phare.io/alert-rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": "organization",
"integration_id": 1,
"rate_limit": 5,
"event_settings": {},
"integration_settings": {}
}
'import requests
url = "https://api.phare.io/alert-rules"
payload = {
"scope": "organization",
"integration_id": 1,
"rate_limit": 5,
"event_settings": {},
"integration_settings": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scope: 'organization',
integration_id: 1,
rate_limit: 5,
event_settings: {},
integration_settings: {}
})
};
fetch('https://api.phare.io/alert-rules', 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.phare.io/alert-rules",
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([
'scope' => 'organization',
'integration_id' => 1,
'rate_limit' => 5,
'event_settings' => [
],
'integration_settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.phare.io/alert-rules"
payload := strings.NewReader("{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.phare.io/alert-rules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/alert-rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scope\": \"organization\",\n \"integration_id\": 1,\n \"rate_limit\": 5,\n \"event_settings\": {},\n \"integration_settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"event": "uptime.monitor.created",
"integration_id": 1,
"rate_limit": 5,
"id": 1,
"project_id": 1,
"event_settings": {},
"integration_settings": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Authorizations
Use a user token to access authenticated routes. The token must be specified in the Authorization HTTP header with the following format 'Authorization: Bearer '.
Headers
A project header is required when using an organization-scoped API key.
1
A project header is required when using an organization-scoped API key.
"luminous-guiding-tower"
Body
Alert rule request
Scope of the alert rule, organization to execute it for the events of every project or project to only execute it for the events of the current project
organization, project "organization"
Name of the event that will trigger the execution of the alert rule
uptime.monitor.created, uptime.monitor.deleted, uptime.monitor_certificate.discovered, uptime.monitor_certificate.expiring, uptime.incident.created, uptime.incident.propagated, uptime.incident.partially_recovered, uptime.incident.recovered, uptime.incident_comment.created, uptime.incident_update.published, uptime.maintenance_window.in_progress, uptime.maintenance_window.completed, uptime.maintenance_window.cancelled The ID of the integration used to send a notification when the alert rule is executed
1
Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.
0, 5, 10, 30, 60, 180, 720, 1440 5
Additional settings for the event
- Empty
- Uptime incident
- Uptime certificate expiring
Additional settings for the integration
- Empty
- Ntfy
- Outgoing Webhooks
- Pushover
Response
Success, alert rule created
Name of the event that will trigger the execution of the alert rule
uptime.monitor.created, uptime.monitor.deleted, uptime.monitor_certificate.discovered, uptime.monitor_certificate.expiring, uptime.incident.created, uptime.incident.propagated, uptime.incident.partially_recovered, uptime.incident.recovered, uptime.incident_comment.created, uptime.incident_update.published, uptime.maintenance_window.in_progress, uptime.maintenance_window.completed, uptime.maintenance_window.cancelled The ID of the integration used to send a notification when the alert rule is executed
1
Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.
0, 5, 10, 30, 60, 180, 720, 1440 5
1
The ID of a project to use as a scope
1
Additional settings for the event
- Empty
- Uptime incident
- Uptime certificate expiring
Additional settings for the integration
- Empty
- Ntfy
- Outgoing Webhooks
- Pushover
Date of creation for the entity
Date of last update for the entity
Was this page helpful?