Skip to content
GET/api/v1/monitoring/anomalies

Detect anomalies in production logs

Runs the anomaly-detection ensemble over a project's production_logs. Requires ?projectId (400 if missing). Optional clamped detector knobs + hours window.

Authentication

Send Authorization: Bearer YOUR_API_KEY on every request. Generate API keys at /dashboard/api-keys.

Parameters

projectId in queryrequired
string
hours in query
integer
zscoreThreshold in query
number
maWindow in query
integer
maThreshold in query
number
ifTrees in query
integer
ifSample in query
integer
seasonalPeriod in query
integer
minVotes in query
integer

Response

200 example

{
  "success": true
}

All status codes

200{ reports, summary, config }.
400(no description)
401(no description)
429(no description)

Code samples

cURL

curl -X GET \
  https://evalguard.ai/api/v1/monitoring/anomalies \
  -H "Authorization: Bearer $EVALGUARD_API_KEY" \

TypeScript

import { EvalGuard } from "@evalguard/sdk";

const client = new EvalGuard({ apiKey: process.env.EVALGUARD_API_KEY });

const response = await client.request({
  method: "GET",
  path: "/api/v1/monitoring/anomalies",
});
console.log(response);

Python

from evalguard import EvalGuard
import os

client = EvalGuard(api_key=os.environ["EVALGUARD_API_KEY"])

response = client.request(method="GET", path="/api/v1/monitoring/anomalies")
print(response)

Go

package main

import (
	"context"
	"fmt"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequestWithContext(context.Background(), "GET", "https://evalguard.ai/api/v1/monitoring/anomalies", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("EVALGUARD_API_KEY"))
	resp, err := http.DefaultClient.Do(req)
	if err != nil { panic(err) }
	defer resp.Body.Close()
	fmt.Println(resp.Status)
}

Errors

400401429

Other Monitoring endpoints