Skip to main content
POST
cURL
Check up to 50 Events in one request. Use this endpoint when you want to submit several related pieces of an interaction together, such as a user message, a tool result, and an assistant response.

How It Works

  1. You submit an events array containing 1 to 50 Event payloads
  2. Conditions select the applicable Policies and Metrics for each Event
  3. White Circle evaluates Policies synchronously and queues Metrics asynchronously
  4. You receive one response with Policy results grouped by Event type
Batch requests preserve result order within each typed bucket, but results are grouped by type: messages, artifacts, tools, functions, agents, and reasoning.
List Events in the order they happened. Each Event is checked against the Events listed before it. See Event Context.

Example Request

Request Overview

Each Event payload uses the same shape as Check One Event.

Conditions in a Batch

Conditions are evaluated separately for each Event. Put metadata on every Event that needs metadata-based Policy selection; metadata from one Event does not apply to another Event in the same batch.
If no active Condition matches an Event, no Policies are evaluated and no Metrics are queued for that Event, even if another Event in the batch matched a Condition.
Selected Metrics run asynchronously and are not included in the synchronous typed result buckets. See Conditions for routing behavior.

Response Overview

Each result includes type, status, event_id, and internal_event_id, plus flagged, policies, and note when applicable. Each Policy result can include enabled_by_conditions with the Conditions that selected it.
A batch reports each verdict on its own result, because one request checks many Events. The single-Event response instead reports the verdict once at the top level. See Check One Event.

Same-Batch References

A reference-only Event can point to another Event with content in the same batch. White Circle resolves same-batch references before looking up previous results.
The second Event returns referenced if the first Event completes successfully.

Referencing Existing Events

If a reference-only Event does not match an Event with content in the same batch, White Circle looks up the latest result with the same run_id and event_id. The reference returns:

Repeated Event IDs

You can submit multiple Events with content using the same event_id. White Circle checks and saves each one, and each completed check receives a different internal_event_id.
Use different event_id values when each Event should have its own application ID.

Partial Failures

Some per-Event validation failures return a failed result while the rest of the batch continues. For example, an invalid inline artifact can return status: "failed" while other Events are checked. Request-level shape and relationship errors return 400 and reject the whole batch. This includes more than 50 Events, self-parenting, direct mutual parents involving a previously saved Event, and parent cycles declared within the batch.

Authorizations

Authorization
string
header
required

API Key required. Format: Bearer wc-your-api-key

Headers

whitecircle-version
string
required

API Version

Body

application/json
environment_id
string
required
events
object[]
required
Required array length: 1 - 50 elements
run_id
string | null
external_session_id
string | null
role
string | null

Response

Success

flagged
boolean
required
messages
object[]
required
artifacts
object[]
required
tools
object[]
required
functions
object[]
required
agents
object[]
required
reasoning
object[]
required
run_id
string
required