Claude Platform Docs

Work

Get Work Item
BetaSelfHostedWork Beta.Environments.Work.Retrieve(parameters, cancellationToken = default)
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.

Poll for Work
BetaSelfHostedWork? Beta.Environments.Work.Poll(parameters, cancellationToken = default)
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.

Acknowledge Work
BetaSelfHostedWork Beta.Environments.Work.Ack(parameters, cancellationToken = default)
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.

Record Heartbeat
BetaSelfHostedWorkHeartbeatResponse Beta.Environments.Work.Heartbeat(parameters, cancellationToken = default)
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.

Stop Work
BetaSelfHostedWork Beta.Environments.Work.Stop(parameters, cancellationToken = default)
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.

List Work Items
WorkListPage Beta.Environments.Work.List(parameters, cancellationToken = default)
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.

Update Work Item
BetaSelfHostedWork Beta.Environments.Work.Update(parameters, cancellationToken = default)
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.

Get Queue Statistics
BetaSelfHostedWorkQueueStats Beta.Environments.Work.Stats(parameters, cancellationToken = default)
GET/v1/environments/{environment_id}/work/stats

Get statistics about the work queue for an environment.

Models
class BetaSelfHostedWork { Type = "work"; ID; AcknowledgedAt; /* 10 more */ }

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.

class BetaSelfHostedWorkHeartbeatResponse { Type = "work_heartbeat"; LastHeartbeat; LeaseExtended; /* 2 more */ }

Response after recording a heartbeat for a work item.

JsonElement Type = "work_heartbeat"

The type of response

required string LastHeartbeat

RFC 3339 timestamp of the actual heartbeat from DB

required bool LeaseExtended

Whether the heartbeat succeeded in extending the lease

required State State

Current state of the work item (active/stopping/stopped)

One of the following:
Queued("queued")
Starting("starting")
Active("active")
Stopping("stopping")
Stopped("stopped")
required long TtlSeconds

Effective TTL applied to the lease

class BetaSelfHostedWorkListResponse { Data; NextPage; }

Response when listing work items with cursor-based pagination.

class BetaSelfHostedWorkQueueStats { Type = "work_queue_stats"; Depth; OldestQueuedAt; /* 2 more */ }

Statistics about the work queue for an environment.

Uses Redis Stream consumer group metrics for O(1) queries.

JsonElement Type = "work_queue_stats"

The type of object

required long Depth

Number of work items waiting to be picked up (lag from consumer group)

required string? OldestQueuedAt

RFC 3339 timestamp of oldest item in the work stream (includes both queued and pending items), null if stream empty

required long Pending

Number of work items being processed (polled but not acknowledged)

required long? WorkersPolling

Number of workers that have polled for work in the last 30 seconds. Requires worker_id to be sent with poll requests.

class BetaSelfHostedWorkStopRequest { Force; }

Request to stop a work item.

bool Force

If true, immediately stop work without graceful shutdown

class BetaSelfHostedWorkUpdateRequest { Metadata; }

Request to update work item metadata.

required IReadOnlyDictionary<string, string> Metadata

Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve existing metadata.

class BetaSessionWorkData { Type = "session"; ID; }

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.

JsonElement Type = "session"

Type of work data

required string ID

Session identifier (e.g., 'session_...')