Claude Platform Docs

Registra heartbeat

BetaSelfHostedWorkHeartbeatResponse beta().environments().work().heartbeat(params, requestOptions = RequestOptions.none())
POST/v1/environments/{environment_id}/work/{work_id}/heartbeat

Nota: questi endpoint vengono chiamati automaticamente dal worker di ambiente predefinito fornito negli SDK e nella CLI, per orchestrare le sessioni con ambienti sandbox self-hosted. Sono inclusi qui come riferimento; non è necessario invocarli direttamente.

Registra un heartbeat per un elemento di lavoro per mantenere il lease.

Parameters
WorkHeartbeatParams params
String environmentId⁠Path parameter
Optional<String> workId⁠Path parameter
Optional<Long> desiredTtlSeconds⁠Query parameter

Desired TTL in seconds

Optional<String> expectedLastHeartbeat⁠Query parameter

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.

Optional<List<AnthropicBeta>> betas⁠Header parameter

Optional header to specify the beta version(s) you want to use.

MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")
PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")
COMPUTER_USE_2024_10_22("computer-use-2024-10-22")
COMPUTER_USE_2025_01_24("computer-use-2025-01-24")
PDFS_2024_09_25("pdfs-2024-09-25")
TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")
TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")
OUTPUT_128K_2025_02_19("output-128k-2025-02-19")
FILES_API_2025_04_14("files-api-2025-04-14")
MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")
MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")
DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")
INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")
CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")
EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")
CONTEXT_1M_2025_08_07("context-1m-2025-08-07")
CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")
MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")
SKILLS_2025_10_02("skills-2025-10-02")
FAST_MODE_2026_02_01("fast-mode-2026-02-01")
OUTPUT_300K_2026_03_24("output-300k-2026-03-24")
USER_PROFILES_2026_03_24("user-profiles-2026-03-24")
USER_PROFILES_2026_08_18("user-profiles-2026-08-18")
USER_PROFILES_2026_09_04("user-profiles-2026-09-04")
ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")
MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")
CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")
DREAMING_2026_04_21("dreaming-2026-04-21")
THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")
SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")
SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")
FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")
FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")
AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")
MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")
COMPACT_2026_01_12("compact-2026-01-12")
COMPUTER_USE_2025_11_24("computer-use-2025-11-24")
MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")
STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")
TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")
THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")
CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")
MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")
THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")
MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")
COMPACT_2026_09_04("compact-2026-09-04")
INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")
MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")
CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")
SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")
TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")
Returns
class BetaSelfHostedWorkHeartbeatResponse { type = "work_heartbeat"; lastHeartbeat; leaseExtended; /* 2 more */ }

Response after recording a heartbeat for a work item.

JsonValue type = "work_heartbeat"

The type of response

String lastHeartbeat

RFC 3339 timestamp of the actual heartbeat from DB

boolean leaseExtended

Whether the heartbeat succeeded in extending the lease

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")
long ttlSeconds

Effective TTL applied to the lease

Registra heartbeat
package com.anthropic.example;

import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.beta.environments.work.BetaSelfHostedWorkHeartbeatResponse;
import com.anthropic.models.beta.environments.work.WorkHeartbeatParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        AnthropicClient client = AnthropicOkHttpClient.fromEnv();

        WorkHeartbeatParams params = WorkHeartbeatParams.builder()
            .environmentId("env_011CZkZ9X2dpNyB7HsEFoRfW")
            .workId("work_id")
            .build();
        BetaSelfHostedWorkHeartbeatResponse betaSelfHostedWorkHeartbeatResponse = client.beta().environments().work().heartbeat(params);
    }
}
Returns Examples
Response 200
{
  "last_heartbeat": "last_heartbeat",
  "lease_extended": true,
  "state": "queued",
  "ttl_seconds": 0,
  "type": "work_heartbeat"
}