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
nucleus_DominoApiKeynucleus_BearerAuthentication
Body
application/json
Details about the metric alert to send
Response
Success
Last modified on August 18, 2026
Related topics
Custom Model Monitoring metricsModel Monitoring custom metrics Python SDKUse model endpoint monitoring dashboardsSet up notificationsWas 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>"
}