List events
curl --request GET \
--url https://api.ingestly.ai/events \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.ingestly.ai/events"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.ingestly.ai/events', 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.ingestly.ai/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://api.ingestly.ai/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
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.ingestly.ai/events")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ingestly.ai/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123,
"pages": 123,
"data": [
{
"id": "0199a6c4-2a3b-7c4d-8e5f-6a7b8c9d0e1f",
"type": "run.completed",
"createdOn": "2026-10-02T14:05:12+00:00",
"environment": "prod",
"data": {}
}
]
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}Events
List events
Returns the events of the last 7 days, oldest first by id, in the same shape a subscription delivers them. after returns only events whose id is greater. Ids reflect creation time, not commit time, so an event can appear later with a lower id than one you already read: to poll, set after to an id seen a few minutes before your newest one, read from page 1, and dedupe on id. Events carry no ordering guarantee across types. Filter by type (run.completed style). Subscription pings are never listed. page starts at 1; pageSize defaults to 20, at most 100.
GET
/
events
List events
curl --request GET \
--url https://api.ingestly.ai/events \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.ingestly.ai/events"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.ingestly.ai/events', 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.ingestly.ai/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://api.ingestly.ai/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
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.ingestly.ai/events")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ingestly.ai/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123,
"pages": 123,
"data": [
{
"id": "0199a6c4-2a3b-7c4d-8e5f-6a7b8c9d0e1f",
"type": "run.completed",
"createdOn": "2026-10-02T14:05:12+00:00",
"environment": "prod",
"data": {}
}
]
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}{
"status": 123,
"title": "<string>",
"type": "<string>",
"instance": "<string>",
"traceId": "<string>",
"detail": "<string>",
"errors": {}
}Requires the
events:read scope. Returns the events of the last 7 days in your key’s environment, in the shape a subscription delivers them. Test ping events are never listed. See reading events with the API for how to set after so you do not miss an event.Authorizations
Query Parameters
Available options:
document.received, run.completed, run.failed, run.cancelled, review.created, review.completed