CustomMetrics
Send a metric alert
Send a metric out of range alert for a monitored model. Required Permissions: ViewMonitoringResults
POST
/
api
/
metricAlerts
/
v1
Send a metric alert
curl --request POST \
--url https://mycluster.domino.tech/api/metricAlerts/v1 \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"metric": "<string>",
"modelMonitoringId": "<string>",
"targetRange": {
"lowerLimit": 123,
"upperLimit": 123
},
"value": 123,
"description": "<string>"
}
'import requests
url = "https://mycluster.domino.tech/api/metricAlerts/v1"
payload = {
"metric": "<string>",
"modelMonitoringId": "<string>",
"targetRange": {
"lowerLimit": 123,
"upperLimit": 123
},
"value": 123,
"description": "<string>"
}
headers = {
"X-Domino-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-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metric: '<string>',
modelMonitoringId: '<string>',
targetRange: {lowerLimit: 123, upperLimit: 123},
value: 123,
description: '<string>'
})
};
fetch('https://mycluster.domino.tech/api/metricAlerts/v1', 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://mycluster.domino.tech/api/metricAlerts/v1",
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([
'metric' => '<string>',
'modelMonitoringId' => '<string>',
'targetRange' => [
'lowerLimit' => 123,
'upperLimit' => 123
],
'value' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-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://mycluster.domino.tech/api/metricAlerts/v1"
payload := strings.NewReader("{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-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://mycluster.domino.tech/api/metricAlerts/v1")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/metricAlerts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
DominoApiKeyBearerAuthentication
Body
application/json
Details about the metric alert to send
Response
Success
Last modified on June 26, 2026
Related topics
Custom Model Monitoring metricsUse model endpoint monitoring dashboardsSet up notificationsModel Monitoring custom metrics Python SDKWas this page helpful?
⌘I
Send a metric alert
curl --request POST \
--url https://mycluster.domino.tech/api/metricAlerts/v1 \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"metric": "<string>",
"modelMonitoringId": "<string>",
"targetRange": {
"lowerLimit": 123,
"upperLimit": 123
},
"value": 123,
"description": "<string>"
}
'import requests
url = "https://mycluster.domino.tech/api/metricAlerts/v1"
payload = {
"metric": "<string>",
"modelMonitoringId": "<string>",
"targetRange": {
"lowerLimit": 123,
"upperLimit": 123
},
"value": 123,
"description": "<string>"
}
headers = {
"X-Domino-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-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metric: '<string>',
modelMonitoringId: '<string>',
targetRange: {lowerLimit: 123, upperLimit: 123},
value: 123,
description: '<string>'
})
};
fetch('https://mycluster.domino.tech/api/metricAlerts/v1', 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://mycluster.domino.tech/api/metricAlerts/v1",
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([
'metric' => '<string>',
'modelMonitoringId' => '<string>',
'targetRange' => [
'lowerLimit' => 123,
'upperLimit' => 123
],
'value' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-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://mycluster.domino.tech/api/metricAlerts/v1"
payload := strings.NewReader("{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-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://mycluster.domino.tech/api/metricAlerts/v1")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/metricAlerts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metric\": \"<string>\",\n \"modelMonitoringId\": \"<string>\",\n \"targetRange\": {\n \"lowerLimit\": 123,\n \"upperLimit\": 123\n },\n \"value\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"error": "<string>"
}