Skip to Content
Results & Artifacts

Results & Artifacts

Reading results

After a job completes, fetch structured results:

curl -sS -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/results/<job_id>

Each task result includes result_quality (0.0-1.0) and result_warnings.

Top-level result responses also include summary, aggregate_result, aggregate_aliases, completeness, result_persisted, output_persisted, and preserved public metadata like meta / variant.

For raw stdout/stderr:

curl -sS -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/jobs/<job_id>/output

During auto-retry, GET /api/v1/jobs/<job_id>/output preserves the most recent failed attempt’s output and error until the current attempt emits its own diagnostics. If a worker/runtime failure happens before your command starts, the visible text can be platform preflight stderr rather than user-process stdout.

While a task is still running, the quickest live log surface is GET /api/v1/jobs/<job_id>/stream or GET /api/v1/jobs/<job_id>/tasks, where live_feedback.output_tail updates as new stdout/stderr arrives. If your code launches child processes, make those children flush or run unbuffered so logs are visible immediately.

Artifacts

Content-addressed file storage for passing data between jobs. Supports controller uploads up to 2GB, direct object-store uploads, resumable multipart uploads for very large files, and external URL references.

# Upload a file curl -sS -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ -H "X-Artifact-Filename: dataset.parquet" \ --data-binary @dataset.parquet \ https://computalot.com/api/v1/artifacts # Request a direct object-store upload URL curl -sS -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ https://computalot.com/api/v1/artifacts/direct \ -d '{"sha256":"<lowercase_sha256>","size":123456789,"filename":"dataset.parquet"}' # Start a resumable multipart upload for a very large file curl -sS -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ https://computalot.com/api/v1/artifacts/multipart \ -d '{"sha256":"<lowercase_sha256>","size":9876543210,"filename":"checkpoint.safetensors"}' # Download curl -sS -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/artifacts/<id> -o output.bin # List curl -sS -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/artifacts

Artifacts are retained for 7 days.

Streaming (SSE)

# Single job curl -sS -N -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/jobs/<job_id>/stream # Multiple jobs curl -sS -N -H "Authorization: Bearer $TOKEN" \ "https://computalot.com/api/v1/jobs/watch?ids=<id1>,<id2>" # Whole project curl -sS -N -H "Authorization: Bearer $TOKEN" \ "https://computalot.com/api/v1/projects/<project>/stream"

Multi-job watch frames preserve client_ref, tags, meta, variant, aggregate summary fields, and result_persisted / output_persisted.

Single-job SSE frames include task deltas with live_feedback.output_tail, so UIs can show rolling logs without polling GET /output.

Last updated on