End-to-end correlation id for this eval run. When set, the gateway and downstream services honor it verbatim in logs, Cloud Trace span attributes, async job payloads, and Langfuse trace.id. When omitted, the gateway generates a ULID and echoes it on the response.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Set to "json" to receive {"url": ...} instead of a 307 redirect. Requires presigned=true.
X-Sandbox-Project-Id
header
string | null
no
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
POST /sandbox/harbor/v2/jobs/{job_id}/retry-errored-trials
Batch-refill incomplete pass@k attempts for a terminal datapoint job. Counts result.outcome.trials_detail rows with status=errored and enqueues a new job with pass_at_k=N_errored plus metadata.retry_of / retry_kind=errored_trials. Completed attempts (including reward 0.0) are not retried. Parent archive is immutable; combine scores client-side. By default notifications/deliver/writeback are not copied (pass include_side_effects=true to keep them). Optional Idempotency-Key returns the same child job on repeat. v1: single-agent datapoints only. Requires a durable request snapshot from enqueue. Returns 400 when nothing errored or the snapshot/contract is missing; 409 when the parent is still running.
When true, copy the parent's notifications/deliver/writeback onto the child. Default false so a refill does not re-fire webhooks.
Idempotency-Key
header
string | null
no
X-Sandbox-Project-Id
header
string | null
no
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
POST /sandbox/harbor/v2/jobs/{job_id}/retry-provider-blocked
Enqueue a new job with the parent's original pass_at_k when result.outcome.failure_class=provider (quota/auth/rate-limit). Unlike retry-errored-trials, this re-runs the full k budget with a fresh KeyHive lease. Sets metadata.retry_of / retry_kind=provider_blocked. Optional Idempotency-Key returns the same child job on repeat. v1: single-agent datapoints only.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
One or more agents to run against the same materialized task (max 8).
metadata
object
no
artifacts
string[] | null
no
sandbox
string | null
no
notifications
object[] | null
no
writeback
HarborTaskWritebackSpec | null
no
deliver
DeliverSpec | null
no
require_verifier_evidence
boolean | null
no
Whether outcome.valid_for_scoring requires the verifier to have produced a machine-readable test report. Defaults to true: a verifier that writes a reward without collecting any test proves nothing, and with no report there is no way to tell the difference. Set false when the task uses a shell verifier you trust and you want to score on its reward alone — the rewards themselves are returned either way, and the job still succeeds. Deployment-wide override: SANDBOX_HARBOR_REQUIRE_VERIFIER_EVIDENCE=false.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
One or more agents to run against the same materialized task (max 8).
metadata
object
no
artifacts
string[] | null
no
sandbox
string | null
no
notifications
object[] | null
no
writeback
HarborTaskWritebackSpec | null
no
deliver
DeliverSpec | null
no
require_verifier_evidence
boolean | null
no
Whether outcome.valid_for_scoring requires the verifier to have produced a machine-readable test report. Defaults to true: a verifier that writes a reward without collecting any test proves nothing, and with no report there is no way to tell the difference. Set false when the task uses a shell verifier you trust and you want to score on its reward alone — the rewards themselves are returned either way, and the job still succeeds. Deployment-wide override: SANDBOX_HARBOR_REQUIRE_VERIFIER_EVIDENCE=false.
No job with this id in this tenancy. Job records expire, so this is also the answer for a job that has aged out.
—
422
Validation Error
HTTPValidationError
429
The project is already running its maximum number of concurrent jobs. Nothing was enqueued, so retrying after Retry-After is safe and cannot duplicate a run. Use POST /jobs/execute-tasks instead if you would rather the platform queue the work than refuse it: the async route accepts the job with a 202 and lets it wait for capacity.
—
504
The run did not finish inside the synchronous wait. It has not been cancelled — it is still running, and the job id is in the response headers. Poll GET /jobs/{job_id}, or follow GET /jobs/{job_id}/events, rather than resubmitting. Use POST /jobs/execute-tasks instead if your tasks routinely run this long.
Project to bill and rate-limit this request against. Validated against the credential: a project-scoped token may only name its own project, and gets 403 otherwise. Defaults to the token's project when omitted.
X-Sandbox-Tenant-Id
header
string | null
no
Tenant for this request. Must match the credential's tenant when the credential carries one.
No job with this id in this tenancy. Job records expire, so this is also the answer for a job that has aged out.
—
422
Validation Error
HTTPValidationError
429
The project is already running its maximum number of concurrent jobs. Nothing was enqueued, so retrying after Retry-After is safe and cannot duplicate a run. Use POST /jobs/execute-tasks instead if you would rather the platform queue the work than refuse it: the async route accepts the job with a 202 and lets it wait for capacity.
—
504
The run did not finish inside the synchronous wait. It has not been cancelled — it is still running, and the job id is in the response headers. Poll GET /jobs/{job_id}, or follow GET /jobs/{job_id}/events, rather than resubmitting. Use POST /jobs/execute-tasks instead if your tasks routinely run this long.
One or more agents to run against the same materialized task (max 8).
metadata
object
no
artifacts
string[] | null
no
sandbox
string | null
no
notifications
object[] | null
no
writeback
HarborTaskWritebackSpec | null
no
deliver
DeliverSpec | null
no
require_verifier_evidence
boolean | null
no
Whether outcome.valid_for_scoring requires the verifier to have produced a machine-readable test report. Defaults to true: a verifier that writes a reward without collecting any test proves nothing, and with no report there is no way to tell the difference. Set false when the task uses a shell verifier you trust and you want to score on its reward alone — the rewards themselves are returned either way, and the job still succeeds. Deployment-wide override: SANDBOX_HARBOR_REQUIRE_VERIFIER_EVIDENCE=false.
One or more agents to run against the same materialized task (max 8).
metadata
object
no
artifacts
string[] | null
no
sandbox
string | null
no
notifications
object[] | null
no
writeback
HarborTaskWritebackSpec | null
no
deliver
DeliverSpec | null
no
require_verifier_evidence
boolean | null
no
Whether outcome.valid_for_scoring requires the verifier to have produced a machine-readable test report. Defaults to true: a verifier that writes a reward without collecting any test proves nothing, and with no report there is no way to tell the difference. Set false when the task uses a shell verifier you trust and you want to score on its reward alone — the rewards themselves are returned either way, and the job still succeeds. Deployment-wide override: SANDBOX_HARBOR_REQUIRE_VERIFIER_EVIDENCE=false.