GenStudio DesktopEnv execute (`task.json` + desktop episode). Not Harbor `task.toml`. Prefer `/sandbox/osworld/v2`.
GenStudio DesktopEnv execute (task.json + desktop episode). Not Harbor task.toml. Prefer /sandbox/osworld/v2.
Every request needs a credential — see Authentication.
| Method | Path | Summary |
|---|
GET | /sandbox/osworld/api-versions | Api Versions |
GET | /sandbox/osworld/capabilities | OSWorld execute capabilities |
GET | /sandbox/osworld/jobs/{job_id} | Get OSWorld job status |
GET | /sandbox/osworld/jobs/{job_id}/artifacts | List job artifacts |
GET | /sandbox/osworld/jobs/{job_id}/artifacts/archive | Download job archive |
POST | /sandbox/osworld/jobs/{job_id}/cancel | Cancel OSWorld job |
GET | /sandbox/osworld/jobs/{job_id}/events | SSE job events |
POST | /sandbox/osworld/jobs/execute-tasks | Enqueue OSWorld execute job |
GET | /sandbox/osworld/v1/capabilities | OSWorld execute capabilities |
GET | /sandbox/osworld/v1/jobs/{job_id} | Get OSWorld job status |
GET | /sandbox/osworld/v1/jobs/{job_id}/artifacts | List job artifacts |
GET | /sandbox/osworld/v1/jobs/{job_id}/artifacts/archive | Download job archive |
POST | /sandbox/osworld/v1/jobs/{job_id}/cancel | Cancel OSWorld job |
GET | /sandbox/osworld/v1/jobs/{job_id}/events | SSE job events |
POST | /sandbox/osworld/v1/jobs/execute-tasks | Enqueue OSWorld execute job |
GET | /sandbox/osworld/v2/capabilities | OSWorld execute capabilities |
GET | /sandbox/osworld/v2/jobs/{job_id} | Get OSWorld job status |
GET | /sandbox/osworld/v2/jobs/{job_id}/artifacts | List job artifacts |
GET | /sandbox/osworld/v2/jobs/{job_id}/artifacts/archive | Download job archive |
POST | /sandbox/osworld/v2/jobs/{job_id}/cancel | Cancel OSWorld job |
GET | /sandbox/osworld/v2/jobs/{job_id}/events | SSE job events |
POST | /sandbox/osworld/v2/jobs/execute-tasks | Enqueue OSWorld execute job |
Accepted on every endpoint on this page.
| Name | In | Type | Required | Description |
|---|
x-correlation-id | header | string | no | 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. |
GET /sandbox/osworld/api-versions
| Status | Description | Body |
|---|
200 | Successful Response | object |
GET /sandbox/osworld/capabilities
| Status | Description | Body |
|---|
200 | Successful Response | object |
GET /sandbox/osworld/jobs/{job_id}
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/jobs/{job_id}/artifacts
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/jobs/{job_id}/artifacts/archive
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
presigned | query | boolean | no | |
as | query | string | null | no | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/jobs/{job_id}/cancel
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/jobs/{job_id}/events
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
Last-Event-ID | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/jobs/execute-tasks
| Name | In | Type | Required | Description |
|---|
Idempotency-Key | header | string | null | no | |
X-Sandbox-Job-Id | 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. |
application/json, required — OSWorldExecuteTasksRequest
| Field | Type | Required | Description |
|---|
task_slug | string | yes | |
agents | OSWorldAgentBody[] | yes | |
metadata | object | no | |
labels | object | no | |
engine | string | null | no | Ignored — OSWorld service always runs DesktopEnv episodes |
sandbox | string | null | no | |
image_ref | string | null | no | |
| Status | Description | Body |
|---|
202 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v1/capabilities
| Status | Description | Body |
|---|
200 | Successful Response | object |
GET /sandbox/osworld/v1/jobs/{job_id}
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v1/jobs/{job_id}/artifacts
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v1/jobs/{job_id}/artifacts/archive
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
presigned | query | boolean | no | |
as | query | string | null | no | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/v1/jobs/{job_id}/cancel
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v1/jobs/{job_id}/events
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
Last-Event-ID | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/v1/jobs/execute-tasks
| Name | In | Type | Required | Description |
|---|
Idempotency-Key | header | string | null | no | |
X-Sandbox-Job-Id | 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. |
application/json, required — OSWorldExecuteTasksRequest
| Field | Type | Required | Description |
|---|
task_slug | string | yes | |
agents | OSWorldAgentBody[] | yes | |
metadata | object | no | |
labels | object | no | |
engine | string | null | no | Ignored — OSWorld service always runs DesktopEnv episodes |
sandbox | string | null | no | |
image_ref | string | null | no | |
| Status | Description | Body |
|---|
202 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v2/capabilities
| Status | Description | Body |
|---|
200 | Successful Response | object |
GET /sandbox/osworld/v2/jobs/{job_id}
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v2/jobs/{job_id}/artifacts
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v2/jobs/{job_id}/artifacts/archive
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
presigned | query | boolean | no | |
as | query | string | null | no | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/v2/jobs/{job_id}/cancel
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
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. |
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
GET /sandbox/osworld/v2/jobs/{job_id}/events
| Name | In | Type | Required | Description |
|---|
job_id | path | string | yes | |
Last-Event-ID | 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. |
| Status | Description | Body |
|---|
200 | Successful Response | any |
422 | Validation Error | HTTPValidationError |
POST /sandbox/osworld/v2/jobs/execute-tasks
| Name | In | Type | Required | Description |
|---|
Idempotency-Key | header | string | null | no | |
X-Sandbox-Job-Id | 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. |
application/json, required — OSWorldExecuteTasksRequest
| Field | Type | Required | Description |
|---|
task_slug | string | yes | |
agents | OSWorldAgentBody[] | yes | |
metadata | object | no | |
labels | object | no | |
engine | string | null | no | Ignored — OSWorld service always runs DesktopEnv episodes |
sandbox | string | null | no | |
image_ref | string | null | no | |
| Status | Description | Body |
|---|
202 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
The object shapes referenced above.
| Field | Type | Required | Description |
|---|
detail | ValidationError[] | no | |
| Field | Type | Required | Description |
|---|
name | string | no | Logical agent label Default: "". |
harbor_agent | string | yes | OSWorld agent id (GenStudio field name kept for compatibility) |
model | string | yes | provider/model id (e.g. openai/gpt-4o). Required — same egress as Harbor. |
pass_at_k | integer | no | Default: 1. |
params | object | no | |
| Field | Type | Required | Description |
|---|
task_slug | string | yes | |
agents | OSWorldAgentBody[] | yes | |
metadata | object | no | |
labels | object | no | |
engine | string | null | no | Ignored — OSWorld service always runs DesktopEnv episodes |
sandbox | string | null | no | |
image_ref | string | null | no | |
| Field | Type | Required | Description |
|---|
loc | string | integer[] | yes | |
msg | string | yes | |
type | string | yes | |
input | any | no | |
ctx | object | no | |
Machine-readable spec: OpenAPI YAML.