GET /v1/metrics/summary
Get aggregated metrics (runs time-series, failure rate, top errors, recent activity) in a single request.

Query Parameters

from integer required query
Start timestamp (Unix milliseconds)
to integer required query
End timestamp (Unix milliseconds)
granularity string required query
Granularity (hourly or daily)
topErrorsLimit integer optional query
Top errors limit (default 10)
recentActivityLimit integer optional query
Recent activity limit (default 50)
status string optional query
Filter recent activity by status (success, failure, running)

Responses

200 OK
application/json
code integer
data object
failureRate object
failed integer
failureRate number
percentage (0-100)
total integer
failureRateError string
recentActivity object[]
Array of:
durationMs number
error string
finishedAt string
runId string
startedAt string
status string
Enum: running, waiting, success, failure, cancelled
workflowId string
workflowName string
recentActivityError string
runsTimeSeries object
data object[]
Time-series data points
Array of:
bucketStart string
failure integer
success integer
total integer
granularity string
"hourly" or "daily"
runsTimeSeriesError string
topErrors object[]
Array of:
count integer
error string
lastOccurred string
topErrorsError string
message string
requestId string
400 Bad Request
500 Internal Server Error
curl -X GET 'https://api.example.com/v1/metrics/summary?from=0&to=0&granularity=string' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/metrics/summary?from=0&to=0&granularity=string', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://api.example.com/v1/metrics/summary?from=0&to=0&granularity=string', headers=headers)print(response.json())
package mainimport (	"fmt"	"io"	"net/http")func main() {	req, _ := http.NewRequest("GET", "https://api.example.com/v1/metrics/summary?from=0&to=0&granularity=string", nil)	req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")	resp, _ := http.DefaultClient.Do(req)	defer resp.Body.Close()	result, _ := io.ReadAll(resp.Body)	fmt.Println(string(result))}
200 Response
{  "code": 200,  "data": {    "failureRate": {      "failed": 123,      "failureRate": 123,      "total": 123    },    "failureRateError": "<string>",    "recentActivity": [      {        "durationMs": 123,        "error": "<string>",        "finishedAt": "<string>",        "runId": "<string>",        "startedAt": "<string>",        "status": "running",        "workflowId": "<string>",        "workflowName": "<string>"      }    ],    "recentActivityError": "<string>",    "runsTimeSeries": {      "data": [        {          "bucketStart": "<string>",          "failure": 123,          "success": 123,          "total": 123        }      ],      "granularity": "<string>"    },    "runsTimeSeriesError": "<string>",    "topErrors": [      {        "count": 123,        "error": "<string>",        "lastOccurred": "<string>"      }    ],    "topErrorsError": "<string>"  },  "message": "success",  "requestId": "abc-123"}
Ask a question... ⌘I