Events
Get Event Results
GET
/
api
/
event
/
{internal_event_id}
cURL
curl --request GET \
--url https://eu.whitecircle.com/api/event/{internal_event_id} \
--header 'Authorization: Bearer <token>' \
--header 'whitecircle-version: <whitecircle-version>'import requests
url = "https://eu.whitecircle.com/api/event/{internal_event_id}"
headers = {
"whitecircle-version": "<whitecircle-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'whitecircle-version': '<whitecircle-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://eu.whitecircle.com/api/event/{internal_event_id}', 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://eu.whitecircle.com/api/event/{internal_event_id}",
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>",
"whitecircle-version: <whitecircle-version>"
],
]);
$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://eu.whitecircle.com/api/event/{internal_event_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("whitecircle-version", "<whitecircle-version>")
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://eu.whitecircle.com/api/event/{internal_event_id}")
.header("whitecircle-version", "<whitecircle-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.whitecircle.com/api/event/{internal_event_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["whitecircle-version"] = '<whitecircle-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"flagged": true,
"policies": {
"70289e06-9111-463e-b121-7247c2b7bfbd": {
"flagged": true,
"name": "No PII Sharing",
"enabled_by_conditions": [
{
"id": "019f0000-0000-7000-8000-000000000001",
"name": "EU users"
}
]
}
},
"event": {
"type": "message",
"status": "completed",
"updated_at": null,
"created_at": "2026-06-01T12:00:00Z",
"event_id": "evt_user_001",
"external_session_id": "conversation_456",
"internal_event_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
"run_id": "run_refund_123"
},
"metadata": {
"user": {
"region": "eu"
}
}
}Retrieve the results of a previously evaluated Event. You can look up an Event by the
Using your Event IDs:
You can also require a specific Event type:
If
internal_event_id returned from POST /api/event or by your own run_id and event_id.
Lookup Methods
Use one of these routes:| Route | Use when |
|---|---|
GET /api/event/{internal_event_id}?environment_id=... | You have the White Circle ID for one saved result. |
GET /api/event?environment_id=...&run_id=...&event_id=... | You want the latest result for your own Event IDs. |
For exact lookups, prefer
internal_event_id. If you submit the same run_id and event_id more than once, lookup by run_id and event_id returns the latest matching result.Example Requests
Using the internal Event ID:curl -X GET "https://eu.whitecircle.com/api/event/a1b2c3d4-e5f6-4890-abcd-ef1234567890?environment_id=environment_123" \
-H "Authorization: Bearer wc-your-api-key" \
-H "whitecircle-version: 2026-06-01"
curl -X GET "https://eu.whitecircle.com/api/event?environment_id=environment_123&run_id=run_refund_123&event_id=evt_user_001" \
-H "Authorization: Bearer wc-your-api-key" \
-H "whitecircle-version: 2026-06-01"
curl -X GET "https://eu.whitecircle.com/api/event?environment_id=environment_123&run_id=run_refund_123&event_id=evt_user_001&type=message" \
-H "Authorization: Bearer wc-your-api-key" \
-H "whitecircle-version: 2026-06-01"
Query Parameters
Passenvironment_id on every request to either route.
For GET /api/event?run_id=...&event_id=...:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Optional Event type filter: message, artifact, tool, function, agent, or reasoning. | |
environment_id | string | ✓ | Environment that contains the Event. |
run_id | string | ✓ | Your ID for a group of related Events. |
event_id | string | ✓ | Your ID for the Event. |
type is provided and the latest matching result has a different Event type, White Circle returns 404.
Response Overview
| Field | Description |
|---|---|
flagged | true if this Event violated at least one Policy. |
policies | Policy results keyed by Policy ID. Each result has flagged and name, plus enabled_by_conditions naming the Conditions that selected the Policy, which is why it was evaluated. |
event | Saved Event metadata, IDs, type, and status. |
note | Informational note when applicable. |
metadata | Stored request metadata, when available. |
Lookup Behavior
internal_event_id identifies a single saved result.
run_id + event_id returns the latest matching result in the selected environment. This is useful when you use your own Event IDs and only need the newest result.
Metrics run asynchronously and are not returned in the synchronous policies map.
If no matching Event is found, or the Event belongs to another team or environment, White Circle returns
404.Authorizations
API Key required. Format: Bearer wc-your-api-key
Headers
API Version
Path Parameters
Query Parameters
Required environment selector.
Response
Success
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
⌘I
cURL
curl --request GET \
--url https://eu.whitecircle.com/api/event/{internal_event_id} \
--header 'Authorization: Bearer <token>' \
--header 'whitecircle-version: <whitecircle-version>'import requests
url = "https://eu.whitecircle.com/api/event/{internal_event_id}"
headers = {
"whitecircle-version": "<whitecircle-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'whitecircle-version': '<whitecircle-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://eu.whitecircle.com/api/event/{internal_event_id}', 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://eu.whitecircle.com/api/event/{internal_event_id}",
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>",
"whitecircle-version: <whitecircle-version>"
],
]);
$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://eu.whitecircle.com/api/event/{internal_event_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("whitecircle-version", "<whitecircle-version>")
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://eu.whitecircle.com/api/event/{internal_event_id}")
.header("whitecircle-version", "<whitecircle-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.whitecircle.com/api/event/{internal_event_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["whitecircle-version"] = '<whitecircle-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"flagged": true,
"policies": {
"70289e06-9111-463e-b121-7247c2b7bfbd": {
"flagged": true,
"name": "No PII Sharing",
"enabled_by_conditions": [
{
"id": "019f0000-0000-7000-8000-000000000001",
"name": "EU users"
}
]
}
},
"event": {
"type": "message",
"status": "completed",
"updated_at": null,
"created_at": "2026-06-01T12:00:00Z",
"event_id": "evt_user_001",
"external_session_id": "conversation_456",
"internal_event_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
"run_id": "run_refund_123"
},
"metadata": {
"user": {
"region": "eu"
}
}
}