Get Work Item
GET /v1/environments/{environment_id}/work/{work_id}
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Retrieve detailed information about a specific work item.
Path parameters
environment_id: string
work_id: string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"juglow-workspace-id": optional string
Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).
Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.
Returns
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/$WORK_ID \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}Poll for Work
GET /v1/environments/{environment_id}/work/poll
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Long poll for work items in the queue.
Path parameters
environment_id: string
Query parameters
block_ms: optional number
How long to wait for work to arrive before returning. Must be 1-999 in milliseconds. Defaults to non-blocking (returns immediately if no work is available).
minimum: 1
reclaim_older_than_ms: optional number
Reclaim unacknowledged work items older than this many milliseconds. If omitted, uses the default (5000ms).
minimum: 1
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"Juglow-Worker-ID": optional string
Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console
Returns
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/poll \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}Acknowledge Work
POST /v1/environments/{environment_id}/work/{work_id}/ack
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' and removing it from the queue.
Path parameters
environment_id: string
work_id: string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
Returns
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/$WORK_ID/ack \
-X POST \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}Record Heartbeat
POST /v1/environments/{environment_id}/work/{work_id}/heartbeat
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Record a heartbeat for a work item to maintain the lease.
Path parameters
environment_id: string
work_id: string
Query parameters
desired_ttl_seconds: optional number
Desired TTL in seconds
expected_last_heartbeat: optional string
Expected last_heartbeat for conditional update (optimistic concurrency). Use literal 'NO_HEARTBEAT' to claim an unclaimed lease (first heartbeat). For subsequent heartbeats, echo the server's previous last_heartbeat value exactly. Returns 412 Precondition Failed if the actual value doesn't match.
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
Returns
BetaSelfHostedWorkHeartbeatResponse object
Response after recording a heartbeat for a work item.
type: "work_heartbeat"
The type of response
default: work_heartbeat
last_heartbeat: string
RFC 3339 timestamp of the actual heartbeat from DB
lease_extended: boolean
Whether the heartbeat succeeded in extending the lease
state: "queued" or "starting" or "active" or 2 more
Current state of the work item (active/stopping/stopped)
"queued"
"starting"
"active"
"stopping"
"stopped"
ttl_seconds: number
Effective TTL applied to the lease
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/$WORK_ID/heartbeat \
-X POST \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"last_heartbeat": "last_heartbeat",
"lease_extended": true,
"state": "queued",
"ttl_seconds": 0,
"type": "work_heartbeat"
}Stop Work
POST /v1/environments/{environment_id}/work/{work_id}/stop
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Stop a work item, initiating graceful or forced shutdown.
Path parameters
environment_id: string
work_id: string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"juglow-workspace-id": optional string
Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).
Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.
Body parameters
force: optional boolean
If true, immediately stop work without graceful shutdown
default: false
Returns
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/$WORK_ID/stop \
-H 'Content-Type: application/json' \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY" \
-d '{}'Response (200)
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}List Work Items
GET /v1/environments/{environment_id}/work
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
List work items in an environment.
Path parameters
environment_id: string
Query parameters
limit: optional number
Maximum number of work items to return
default: 20, minimum: 1, maximum: 1000
page: optional string
Opaque cursor from previous response for pagination
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
Returns
BetaSelfHostedWorkListResponse object
Response when listing work items with cursor-based pagination.
data: array of BetaSelfHostedWork
List of work items
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
next_page: string or null
Opaque cursor for fetching the next page of results
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"data": [
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}
],
"next_page": "next_page"
}Update Work Item
POST /v1/environments/{environment_id}/work/{work_id}
Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly.
Update work item metadata with merge semantics.
Path parameters
environment_id: string
work_id: string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"juglow-workspace-id": optional string
Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).
Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.
Body parameters
metadata: map[string]
Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve existing metadata.
Returns
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/$WORK_ID \
-H 'Content-Type: application/json' \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY" \
-d '{
"metadata": {
"foo": "string"
}
}'Response (200)
{
"id": "id",
"acknowledged_at": "acknowledged_at",
"created_at": "created_at",
"data": {
"id": "id",
"type": "session"
},
"environment_id": "environment_id",
"latest_heartbeat_at": "latest_heartbeat_at",
"metadata": {
"foo": "string"
},
"secret": "secret",
"started_at": "started_at",
"state": "queued",
"stop_requested_at": "stop_requested_at",
"stopped_at": "stopped_at",
"type": "work"
}Get Queue Statistics
GET /v1/environments/{environment_id}/work/stats
Get statistics about the work queue for an environment.
Path parameters
environment_id: string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"tracks-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"juglow-workspace-id": optional string
Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).
Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.
Returns
BetaSelfHostedWorkQueueStats object
Statistics about the work queue for an environment.
Uses Redis Stream consumer group metrics for O(1) queries.
type: "work_queue_stats"
The type of object
default: work_queue_stats
depth: number
Number of work items waiting to be picked up (lag from consumer group)
oldest_queued_at: string or null
RFC 3339 timestamp of oldest item in the work stream (includes both queued and pending items), null if stream empty
pending: number
Number of work items being processed (polled but not acknowledged)
default: 0
workers_polling: number or null
Number of workers that have polled for work in the last 30 seconds. Requires worker_id to be sent with poll requests.
Example
curl https://haijun.my.id/v1/environments/$ENVIRONMENT_ID/work/stats \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"depth": 0,
"oldest_queued_at": "oldest_queued_at",
"pending": 0,
"type": "work_queue_stats",
"workers_polling": 0
}Domain types
Beta Self Hosted Work
BetaSelfHostedWork object
Work resource representing a unit of work in a self-hosted environment.
Work items are queued when sessions are created or when long-dormant sessions receive new messages. The environment worker polls for work to execute in a self-hosted sandbox.
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
Beta Self Hosted Work Heartbeat Response
BetaSelfHostedWorkHeartbeatResponse object
Response after recording a heartbeat for a work item.
type: "work_heartbeat"
The type of response
default: work_heartbeat
last_heartbeat: string
RFC 3339 timestamp of the actual heartbeat from DB
lease_extended: boolean
Whether the heartbeat succeeded in extending the lease
state: "queued" or "starting" or "active" or 2 more
Current state of the work item (active/stopping/stopped)
"queued"
"starting"
"active"
"stopping"
"stopped"
ttl_seconds: number
Effective TTL applied to the lease
Beta Self Hosted Work List Response
BetaSelfHostedWorkListResponse object
Response when listing work items with cursor-based pagination.
data: array of BetaSelfHostedWork
List of work items
type: "work"
The type of object (always 'work')
default: work
id: string
Work identifier (e.g., 'work_...')
acknowledged_at: string or null
RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox
created_at: string
RFC 3339 timestamp when work was created
data: BetaSessionWorkData
The actual work to be performed
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')
environment_id: string
Environment identifier this work belongs to (e.g., env_...)
latest_heartbeat_at: string or null
RFC 3339 timestamp of the most recent heartbeat
metadata: map[string]
User-provided metadata key-value pairs associated with this work item
secret: string or null
Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths.
started_at: string or null
RFC 3339 timestamp when work execution started
state: "queued" or "starting" or "active" or 2 more
Current state of the work item
"queued"
"starting"
"active"
"stopping"
"stopped"
stop_requested_at: string or null
RFC 3339 timestamp when stop was requested
stopped_at: string or null
RFC 3339 timestamp when work execution stopped
next_page: string or null
Opaque cursor for fetching the next page of results
Beta Self Hosted Work Queue Stats
BetaSelfHostedWorkQueueStats object
Statistics about the work queue for an environment.
Uses Redis Stream consumer group metrics for O(1) queries.
type: "work_queue_stats"
The type of object
default: work_queue_stats
depth: number
Number of work items waiting to be picked up (lag from consumer group)
oldest_queued_at: string or null
RFC 3339 timestamp of oldest item in the work stream (includes both queued and pending items), null if stream empty
pending: number
Number of work items being processed (polled but not acknowledged)
default: 0
workers_polling: number or null
Number of workers that have polled for work in the last 30 seconds. Requires worker_id to be sent with poll requests.
Beta Self Hosted Work Stop Request
BetaSelfHostedWorkStopRequest object
Request to stop a work item.
force: optional boolean
If true, immediately stop work without graceful shutdown
default: false
Beta Self Hosted Work Update Request
BetaSelfHostedWorkUpdateRequest object
Request to update work item metadata.
metadata: map[string]
Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve existing metadata.
Beta Session Work Data
BetaSessionWorkData object
Work data for session work items.
This resource type is used when work represents a session that needs to be executed in a self-hosted environment.
type: "session"
Type of work data
id: string
Session identifier (e.g., 'session_...')