GET /api/result/{id}#

Retrieve execution result for a submission.

Request#

curl -s "https://api.rustbox.orkait.com/api/result/550e8400-e29b-41d4-a716-446655440000" \
  -H "X-API-Key: rb_live_your_key_here" | jq

Response#

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "language": "python",
  "job_status": "completed",
  "schema_version": "1.0",
  "verdict": "AC",
  "exit_code": 0,
  "signal": null,
  "stdout": "hello world\n",
  "stderr": "",
  "output_integrity": "complete",
  "error_message": null,
  "cpu_time_secs": 0.015,
  "wall_time_secs": 0.052,
  "memory_peak_bytes": 8400000,
  "evidence": {
    "verdict_cause": "normal_exit",
    "verdict_actor": "runtime",
    "isolation_mode": "strict",
    "controls_applied": ["pid_namespace", "mount_namespace", "network_namespace", "memory_limit", "process_limit", "no_new_privileges"],
    "controls_missing": [],
    "cgroup": {
      "memory_limit_bytes": 268435456,
      "memory_peak_bytes": 8400000,
      "oom_events": 0,
      "oom_kill_events": 0,
      "cpu_usage_usec": 15000,
      "process_count": 0,
      "process_limit": 10
    },
    "timing": {
      "cpu_ms": 15,
      "wall_ms": 52,
      "cpu_wall_ratio": 0.29,
      "divergence": "cpu_bound"
    },
    "process_lifecycle": {
      "reap_status": "clean",
      "descendant_containment": "ok",
      "zombie_count": 0
    },
    "judge_actions": [],
    "collection_errors": []
  },
  "created_at": "2026-04-02T12:00:00.000Z",
  "started_at": "2026-04-02T12:00:00.001Z",
  "completed_at": "2026-04-02T12:00:00.053Z"
}

Response fields#

Top-level fields#

FieldTypePresentDescription
idstring (UUID)alwaysSubmission identifier
languagestringalwaysLanguage used for execution
job_statusstringalwayspending, running, completed, or error
schema_versionstringalwaysAPI schema version (currently "1.0")
verdictstring or nullwhen completedVerdict code: AC, RE, TLE, MLE, PLE, FSE, SIG, IE
exit_codeinteger or nullwhen completedProcess exit code
signalinteger or nullwhen completedSignal number that killed the process, or null
stdoutstring or nullwhen completedCaptured standard output
stderrstring or nullwhen completedCaptured standard error
output_integritystring or nullwhen completedcomplete, truncated_by_judge_limit, crash_mid_write, or write_error
error_messagestring or nullwhen completedHuman-readable error description, or null on success
cpu_time_secsnumber or nullwhen completedCPU time consumed in seconds
wall_time_secsnumber or nullwhen completedWall clock time in seconds
memory_peak_bytesinteger or nullwhen completedPeak resident memory in bytes
evidenceobject or nullwhen completedKernel-backed execution evidence (see below)
created_atstringalwaysISO 8601 timestamp when the submission was created
started_atstring or nullwhen startedISO 8601 timestamp when execution began
completed_atstring or nullwhen completedISO 8601 timestamp when execution finished

output_integrity values#

ValueMeaning
completeAll output was captured without loss
truncated_by_judge_limitOutput exceeded the capture limit and was truncated
crash_mid_writeProcess crashed while writing output
write_errorAn I/O error occurred during output capture

evidence object#

FieldTypeDescription
verdict_causestringWhy the verdict was assigned (e.g. normal_exit, oom_kill, wall_timeout)
verdict_actorstringWhat assigned the verdict (runtime, kernel, supervisor)
isolation_modestringIsolation level applied (strict)
controls_appliedstring[]Security controls active during execution
controls_missingstring[]Controls that could not be applied (normally empty)
cgroupobjectCgroup accounting data (see below)
timingobjectTiming breakdown (see below)
process_lifecycleobjectProcess reaping and containment status
judge_actionsarrayActions taken by the supervisor (e.g. SIGKILL on timeout)
collection_errorsstring[]Errors encountered while collecting evidence

evidence.cgroup object#

FieldTypeDescription
memory_limit_bytesintegerMemory limit applied to the cgroup
memory_peak_bytesintegerPeak memory usage recorded by the cgroup
oom_eventsintegerNumber of OOM events
oom_kill_eventsintegerNumber of OOM kill events
cpu_usage_usecintegerCPU time in microseconds
process_countintegerNumber of processes at collection time
process_limitintegerPID limit applied to the cgroup

evidence.timing object#

FieldTypeDescription
cpu_msintegerCPU time in milliseconds
wall_msintegerWall clock time in milliseconds
cpu_wall_rationumberRatio of CPU to wall time
divergencestringTiming classification (e.g. cpu_bound, io_bound)

evidence.process_lifecycle object#

FieldTypeDescription
reap_statusstringWhether all processes were cleanly reaped (clean)
descendant_containmentstringWhether all child processes were contained (ok)
zombie_countintegerNumber of zombie processes at collection time

Status lifecycle#

pending -> running -> completed
                   -> error
StatusMeaning
pendingQueued, waiting for a worker
runningExecuting in a sandbox
completedFinished (check verdict for the outcome)
errorInternal failure

Verdicts#

CodeNameWhat happened
ACAcceptedClean exit, code 0
RERuntime ErrorNon-zero exit or crash
TLETime Limit ExceededWall time exceeded
MLEMemory Limit ExceededOOM killed by cgroup
PLEProcess Limit ExceededFork/thread bomb hit cgroup PID limit
FSEFile Size ExceededSIGXFSZ from RLIMIT_FSIZE
SIGSignaledKilled by signal (not attributed to platform)
IEInternal ErrorPlatform infrastructure failed

Every verdict is backed by kernel evidence. MLE means the cgroup OOM killer fired. TLE means the wall timer expired. PLE means the cgroup PID limit was reached. FSE means a write exceeded the file size rlimit. The platform does not guess verdicts from exit codes.

What happens on timeout#

When a submission exceeds its wall time limit, the supervisor sends SIGKILL to the process. The resulting verdict is TLE.

Because the process is forcibly killed, stdout may be incomplete. Check the output_integrity field - it will indicate crash_mid_write or truncated_by_judge_limit if output was not fully captured.

The evidence.judge_actions array will contain the kill event, and evidence.verdict_cause will be wall_timeout. Example:

{
  "verdict": "TLE",
  "wall_time_secs": 7.001,
  "output_integrity": "crash_mid_write",
  "evidence": {
    "verdict_cause": "wall_timeout",
    "verdict_actor": "supervisor",
    "judge_actions": ["sigkill_on_wall_timeout"]
  }
}

Not found#

HTTP 404
{ "error": "submission not found" }