curl --request GET \
--url https://api.veryfront.com/runs/{run_id}/events/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.veryfront.com/runs/{run_id}/events/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.veryfront.com/runs/{run_id}/events/summary', 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://api.veryfront.com/runs/{run_id}/events/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.veryfront.com/runs/{run_id}/events/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.veryfront.com/runs/{run_id}/events/summary")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/runs/{run_id}/events/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"run_id": "11111111-1111-4111-8111-111111111111",
"total": 0,
"error_count": 0,
"first_event_id": null,
"last_event_id": null,
"first_event_at": null,
"last_event_at": null,
"by_event_class": {
"fact": 0,
"delta": 0
},
"by_event_type": [],
"buckets": []
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 500,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Get run event summary
Summarize run events.
curl --request GET \
--url https://api.veryfront.com/runs/{run_id}/events/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.veryfront.com/runs/{run_id}/events/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.veryfront.com/runs/{run_id}/events/summary', 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://api.veryfront.com/runs/{run_id}/events/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.veryfront.com/runs/{run_id}/events/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.veryfront.com/runs/{run_id}/events/summary")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/runs/{run_id}/events/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"run_id": "11111111-1111-4111-8111-111111111111",
"total": 0,
"error_count": 0,
"first_event_id": null,
"last_event_id": null,
"first_event_at": null,
"last_event_at": null,
"by_event_class": {
"fact": 0,
"delta": 0
},
"by_event_type": [],
"buckets": []
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 500,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"code": "<string>",
"cause": "schedule_concurrency_forbidden",
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Authorizations
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Path Parameters
Query Parameters
Number of time buckets spanning first_event_at up to 1 ms past last_event_at (1-500, default 60). Bucket boundaries are whole milliseconds and every bucket is at least 1 ms wide, so the response holds at most as many buckets as the span has milliseconds and may return fewer than requested (a 10 ms span returns at most 10).
1 <= x <= 500The event class associated with this record.
Event class to include: fact for state changes or delta for streaming fragments. If omitted, returns both.
fact, delta Filter by event_type. Repeat the query parameter for multiple values; comma-separated values remain a compatibility alias. Values within this filter use OR; different filters use AND.
32If true, returns only events with is_error: true. If false, returns other events. If omitted, returns both.
true, false Only events created at or after this instant (ISO 8601 with a UTC offset, inclusive). A summary bucket start can be sent as is.
Only events created before this instant (ISO 8601 with a UTC offset, exclusive). Must be later than start. A summary bucket end can be sent as is.
Only events whose envelope span_id, as served to the caller, is exactly this value (tool:, message:, step:, input_request:, run:, with a non-empty ).
1Only events whose envelope turn_id, as served to the caller, is exactly this value (message:, with a non-empty ).
1Case-insensitive substring of the event payload JSON as served to the caller (1-200 characters after trimming, matched literally).
1 - 200If true, includes events from readable descendant runs, up to 16 generations. Results share one event_id order and cursor. Each event retains its run_id and the payload visibility permitted for that run. Runs the caller cannot read are excluded. Defaults to false.
If at least one descendant is included, task or workflow runs without stored events do not contribute synthetic lifecycle events. Event IDs are allocated before commit. During active writes, ascending pagination can pass an ID that another run commits later.
true, false Response
Returns a summary of recorded run events.
x >= 0x >= 0x >= 0x >= 0Show child attributes
Show child attributes
Show child attributes
Show child attributes
Half-open time buckets [start, end) covering first_event_at through last_event_at + 1 ms. Boundaries use whole milliseconds; widths differ by at most 1 ms. Boundaries can be passed directly as the event-list start and end filters. The bucket count cannot exceed the span in milliseconds. Empty if no events match.
Show child attributes
Show child attributes