Skip to main content
POST
cURL
Check a standalone content Artifact against your Environment’s Policies. Use this endpoint to evaluate profile pictures, user uploads, AI-generated images, and more.

How It Works

  1. You submit a content Artifact (e.g., an image via URL or base64)
  2. Conditions select the applicable Policies and Metrics for this Artifact
  3. White Circle evaluates Policies synchronously and queues Metrics asynchronously
  4. You receive synchronous Policy results, and selected Metrics continue asynchronously.
Image Artifacts are checked synchronously — you receive results immediately in the response.
mime_type is optional for all submission methods. White Circle detects the image format automatically from the content bytes.

Request Overview

Response Overview

Each Policy in the policies object includes:
  • flagged — Whether this specific Policy was violated
  • name — Human-readable Policy name
  • enabled_by_conditions — The Conditions that selected this Policy, which is why it was evaluated. Absent when no Condition was involved.

Artifact Statuses

Checking image Artifacts is always synchronous — the response always has status "completed".

External Artifact ID

Use external_artifact_id to track Artifacts with your own identifiers. This is useful for:
  • Deduplicating checks for the same content
  • Looking up results later via Get Artifact Results
  • Tracking standalone artifact checks with your own ID
If multiple artifacts share the same external_artifact_id, White Circle returns the latest artifact version within the same Environment on lookup.

Use Images with Events

Use the standalone artifact endpoint when you want to check and retrieve an image as its own object. Use Artifact Events when you want to check an image as part of an Events workflow with run_id, event_id, and internal_event_id.
For new Events integrations, prefer Artifact Events when the image belongs to the same interaction as messages, tool calls, agent state, or reasoning.

Role-Based Filtering

The role field controls which Policies are evaluated against the artifact based on each Policy’s Applies To setting (input, output, or any). Use this to apply the right set of Policies depending on who produced the content. For example, pass "user" for user-uploaded images and "assistant" for AI-generated images.
Role strings with postfixes (e.g., "user-12345", "assistant-v2") are normalized to their base role. Invalid role values are treated the same as omitting the field.

Content Constraints

When you submit an image by URL, ensure the server’s Content-Type response header matches the image’s actual format.

Authorizations

Authorization
string
header
required

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

Headers

whitecircle-version
string
required

API Version

Body

application/json
content
object
required
deployment_id
string | null
external_artifact_id
string | null
external_session_id
string | null
internal_session_id
string | null
metadata
null | object
role
string | null
span_id
string | null
trace_id
string | null

Response

Success

policies
object
required
kind
string
required
status
string
required
internal_artifact_id
string
required
flagged
boolean | null
updated_at
string | null
external_artifact_id
string | null
external_session_id
string | null
internal_session_id
string | null
created_at
string | null
note
string | null