Sandbox Mode
Sandbox Mode
Use your sk_test_... key for all development and testing. Sandbox events are isolated from production data and can be reset at any time.
Using Sandbox Keys
Replace sk_live_ with sk_test_ in any API call. All behavior is identical but sandbox data never appears in production leaderboards.
# Sandbox event ingest
curl -X POST https://chikoh.com/api/v1/events/ingest \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"entity_id": "max_verstappen",
"event_type": "race_result",
"value": { "finish_position": 1, "is_fastest_lap": true },
"timestamp": "2026-03-15T15:30:00Z"
}'The response will include "sandbox": true.
Resetting Sandbox Data
curl -X POST https://chikoh.com/api/v1/b2b/sandbox/reset \ -H "Authorization: Bearer sk_test_..."
Response:
{
"reset": true,
"cleared": {
"scoring_events": 47,
"score_breakdowns": 23
}
}Isolation Guarantees
Data isolation
Sandbox rows are tagged with the tenant sandbox flag — they never mix with live data.
No fan-out
Outbound webhooks registered with a sandbox key only receive sandbox events.
Reset anytime
Call the reset endpoint to clear all scoring events and breakdowns in your sandbox.
Same scoring logic
Rules are evaluated identically in sandbox and production — what works in sandbox ships safely.