Dry-run a rule against sample event data. No ledger changes occur.
event field is required and should mirror the shape of a real event your system would send. The participant_state field is optional and lets you provide mock tags, counters, and attributes so the condition can reference participant data.
The response contains two top-level objects:
rule — static metadata about the rule: id, name, condition, order, and stop_after_matchevaluation — the simulation outcome:
matched — whether the condition evaluated to truestatus — evaluated on success, or condition_failed if the CEL expression erroredreason — error message, present only when status is condition_failedresults — present only when matched is true. Each entry pairs the original action definition with a result containing computed valuesresult includes the resolved amount, the asset_symbol, and a human-readable description. For counter actions, it includes current_value, projected_value, and value. For TAG actions, it includes current_tags and would_add. For UNTAG actions, it includes current_tags and would_remove. For attribute actions, it includes current_value and would_change.
Use this to validate rule logic before deploying, or to debug why a rule isn’t matching in production. To check CEL syntax without needing an existing rule, use the validate endpoint.
API key passed in the X-API-Key header.
Rule ID
Sample event and optional participant state
Event is the sample event data to evaluate against the rule
{ "amount": 75, "type": "purchase" }
ParticipantState is optional simulated participant state (tags, counters, attributes)
{
"attributes": { "region": "US" },
"counters": { "purchase_count": 9 },
"tags": ["vip"]
}