cekura run start --wait already follow it; use it when you call the API yourself.
The result ID
Every run endpoint responds with the result object. Itsid is the result ID you poll — there is no separate result_id or run_id key.
Result statuses
A result stays in a non-terminal status until every one of its runs has ended. It then settles at exactly one terminal status and does not change again.
Poll until the status is one of
completed, failed, timeout or cancelled. A loop that stops only on completed or failed keeps polling a timed-out result until its own deadline.
Deciding pass or fail
status alone is not a verdict. Read these fields from the finished result:
A run that errored, never connected, timed out or was cancelled is counted in
total_runs_count but in neither success_runs_count nor failed_runs_count. So failed_runs_count == 0 does not mean every run passed.
A result passes when:
success_rate (0–100) against your threshold instead of requiring every run — but still fail on any status other than completed.
Poll every 15–30 seconds. Individual runs are listed under runs in the result, keyed by run ID; each has status, success and, when it could not connect, error_message.
The AI summary of a result’s failures (
ai_summary) is written shortly after the result reaches a terminal status. If you post it somewhere, wait while ai_summary_status is pending; it becomes completed, or skipped_no_failures when every run passed.Examples
- curl + jq
- Python SDK
- CLI
POST /test_framework/v1/scenarios/run_scenarios_json/ returns the same result object.