curl --request POST \
--url https://api.phare.io/alert-rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"integration_id": 1,
"rate_limit": 5,
"scope": "organization",
"event_settings": {},
"integration_settings": {}
}
'import requests
url = "https://api.phare.io/alert-rules"
payload = {
"integration_id": 1,
"rate_limit": 5,
"scope": "organization",
"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({
integration_id: 1,
rate_limit: 5,
scope: 'organization',
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([
'integration_id' => 1,
'rate_limit' => 5,
'scope' => 'organization',
'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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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": "Unauthorized"
}{
"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 '
{
"integration_id": 1,
"rate_limit": 5,
"scope": "organization",
"event_settings": {},
"integration_settings": {}
}
'import requests
url = "https://api.phare.io/alert-rules"
payload = {
"integration_id": 1,
"rate_limit": 5,
"scope": "organization",
"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({
integration_id: 1,
rate_limit: 5,
scope: 'organization',
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([
'integration_id' => 1,
'rate_limit' => 5,
'scope' => 'organization',
'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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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 \"integration_id\": 1,\n \"rate_limit\": 5,\n \"scope\": \"organization\",\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": "Unauthorized"
}{
"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
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 minimized the number of alert received.
0, 5, 10, 30, 60, 180, 720, 1440 5
Scoped of the alert rule
organization, project "organization"
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
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 minimized the number of alert 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?