Experience cross-system participation history. Sign in, get a sandbox API key, submit events, resolve identities -- see what happens when multiple participants share the same history layer.
No account needed. Use the public sandbox key below to submit events and evaluate policies right now.
Set this in your terminal once:
export YOUR_SANDBOX_KEY="mir_sandbox_public_2026"
This is a shared public key. Events are isolated to the sandbox and don't affect production data.
Sign in for a dedicated sandbox key with your own event history.
Record a participation event. Pick a user and event type, then hit Submit. The event is recorded instantly.
curl -s -X POST https://mir.events/v1/events \
-H "Content-Type: application/json" \
-H "x-api-key: $YOUR_SANDBOX_KEY" \
-d '{
"userExternalId": "user_alice",
"eventType": "transaction.completed",
"occurredAt": "'$(date -u +%Y-%m-%dT%H:%M:%S.000Z)'"
}' | jq
Ask MIR whether an actor should be allowed to perform an action. The response is based on their actual participation history.
All four recommendations are reachable.
agent_alpha + general.search
returns ALLOW;
agent_alpha + data.bulk_download
returns LIMIT, because it is one tier short on a bounded read and so proceeds with a row cap
instead of asking for approval;
user_charlie + iam.grant_admin
returns STEP_UP; and
user_alice + data.export_pii
returns DENY, because she has active claims against a long history. MIR records those claims
and surfaces them; what they mean is the consuming system's call.
This sandbox is shared and writable by anyone -- the forms above submit real events and
claims against these same actors -- so their standing drifts and the examples here will
shift over time. That drift is the product working, not a fault: standing is a function of
what an entity has actually done.
curl -s -X POST https://mir.events/v1/policy/evaluate?debug=true \
-H "Content-Type: application/json" \
-H "x-api-key: $YOUR_SANDBOX_KEY" \
-d '{
"actor": {
"id": "user_alice",
"type": "human"
},
"action": "iam.grant_admin"
}' | jq
Claims are attributed assertions about negative behaviors (chargebacks, suspensions, policy violations). They are recorded and surfaced but do not affect tier calculations. Consuming partners decide what claims mean for their context.
curl -s -X POST https://mir.events/v1/claims \
-H "Content-Type: application/json" \
-H "x-api-key: $YOUR_SANDBOX_KEY" \
-d '{
"userExternalId": "user_alice",
"claimType": "claim.chargeback"
}' | jq
After submitting a claim, run a policy evaluation on the same user. You'll see the claimStatus field change from clean to flagged or elevated, and high-risk actions may be denied.
Recent sandbox activity across all participants.