curl -X POST https://api.rotavision.com/v1/guardian/monitors \
-H "Authorization: Bearer rv_live_..." \
-H "Content-Type: application/json" \
-d '{
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"window": "30d"
},
"alerts": [
{
"metric": "prediction_drift",
"threshold": 0.1,
"severity": "warning"
},
{
"metric": "prediction_drift",
"threshold": 0.2,
"severity": "critical"
},
{
"metric": "latency_p99",
"threshold": 500,
"severity": "warning"
},
{
"metric": "error_rate",
"threshold": 0.01,
"severity": "critical"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
}
}'
{
"id": "mon_abc123",
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"status": "active",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"type": "rolling_window",
"window": "30d",
"status": "collecting"
},
"alerts": [
{
"id": "alert_cfg_1",
"metric": "prediction_drift",
"threshold": 0.1,
"operator": "gt",
"severity": "warning",
"window": "1h"
},
{
"id": "alert_cfg_2",
"metric": "prediction_drift",
"threshold": 0.2,
"operator": "gt",
"severity": "critical",
"window": "1h"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
},
"schedule": {
"evaluation_interval": "1h"
},
"created_at": "2026-02-01T10:00:00Z"
}
Guardian
Create Monitor
Create a new monitoring configuration for a model
POST
/
guardian
/
monitors
curl -X POST https://api.rotavision.com/v1/guardian/monitors \
-H "Authorization: Bearer rv_live_..." \
-H "Content-Type: application/json" \
-d '{
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"window": "30d"
},
"alerts": [
{
"metric": "prediction_drift",
"threshold": 0.1,
"severity": "warning"
},
{
"metric": "prediction_drift",
"threshold": 0.2,
"severity": "critical"
},
{
"metric": "latency_p99",
"threshold": 500,
"severity": "warning"
},
{
"metric": "error_rate",
"threshold": 0.01,
"severity": "critical"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
}
}'
{
"id": "mon_abc123",
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"status": "active",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"type": "rolling_window",
"window": "30d",
"status": "collecting"
},
"alerts": [
{
"id": "alert_cfg_1",
"metric": "prediction_drift",
"threshold": 0.1,
"operator": "gt",
"severity": "warning",
"window": "1h"
},
{
"id": "alert_cfg_2",
"metric": "prediction_drift",
"threshold": 0.2,
"operator": "gt",
"severity": "critical",
"window": "1h"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
},
"schedule": {
"evaluation_interval": "1h"
},
"created_at": "2026-02-01T10:00:00Z"
}
Request
Unique identifier for the model to monitor.
Human-readable name for the monitor.
Description of what this monitor tracks.
Metrics to track:
prediction_drift- Output distribution drift (PSI)data_drift- Input feature driftaccuracy- Accuracy vs ground truth (requires labels)latency_p50- 50th percentile latencylatency_p95- 95th percentile latencylatency_p99- 99th percentile latencyerror_rate- Percentage of failed predictionsthroughput- Requests per second
Alert configurations.
curl -X POST https://api.rotavision.com/v1/guardian/monitors \
-H "Authorization: Bearer rv_live_..." \
-H "Content-Type: application/json" \
-d '{
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"window": "30d"
},
"alerts": [
{
"metric": "prediction_drift",
"threshold": 0.1,
"severity": "warning"
},
{
"metric": "prediction_drift",
"threshold": 0.2,
"severity": "critical"
},
{
"metric": "latency_p99",
"threshold": 500,
"severity": "warning"
},
{
"metric": "error_rate",
"threshold": 0.01,
"severity": "critical"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
}
}'
{
"id": "mon_abc123",
"model_id": "recommendation-v3",
"name": "Production Recommendations",
"description": "Monitoring for product recommendation model",
"status": "active",
"metrics": ["prediction_drift", "data_drift", "latency_p99", "error_rate"],
"baseline": {
"type": "rolling_window",
"window": "30d",
"status": "collecting"
},
"alerts": [
{
"id": "alert_cfg_1",
"metric": "prediction_drift",
"threshold": 0.1,
"operator": "gt",
"severity": "warning",
"window": "1h"
},
{
"id": "alert_cfg_2",
"metric": "prediction_drift",
"threshold": 0.2,
"operator": "gt",
"severity": "critical",
"window": "1h"
}
],
"notifications": {
"email": ["ml-team@company.com"],
"slack_webhook": "https://hooks.slack.com/services/..."
},
"schedule": {
"evaluation_interval": "1h"
},
"created_at": "2026-02-01T10:00:00Z"
}
⌘I

