Claude Platform Docs

Update Deployment

$ ant beta:deployments update
POST/v1/deployments/{deployment_id}

Update Deployment

Parameters
--deployment-id: string⁠Path parameter

Unique identifier of the deployment to update.

--agent: optional string or BetaManagedAgentsAgentParams

Agent to deploy. Accepts the agent ID string, which re-pins to the latest version, or an agent object with both id and version specified. Omit to preserve. Cannot be cleared.

--budget: optional object{ max_list_cost, type }

Spend ceiling for future sessions. Full replacement. Omit to preserve; send null to clear (sessions created afterwards are uncapped). The deployment agent's model must have a public list price, or the request is rejected; a multiagent roster is re-validated in full when each fire copies the cap, which fails closed the same way.

--description: optional string

Description. Omit to preserve; send empty string or null to clear.

maxLength2048
--environment-id: optional string

ID of the environment where sessions run. Omit to preserve. Cannot be cleared.

maxLength128
--initial-event: optional array of BetaManagedAgentsDeploymentInitialEventParams

Initial events. Full replacement. Omit to preserve. Cannot be cleared. At least 1, maximum 50.

--metadata: optional map[string]

Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars.

--name: optional string

Human-readable name. Must be non-empty. Omit to preserve. Cannot be cleared.

maxLength256

Session resources. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 500.

--schedule: optional object{ expression, timezone, type }

Cron schedule. Full replacement. Omit to preserve; send null to clear (revert to manual-only).

--vault-id: optional array of string

Vault IDs. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 50.

--beta: optional array of AnthropicBeta⁠Header parameter

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

--workspace-id: optional string⁠Header parameter

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
beta_managed_agents_deployment: object{ type: "deployment", id, agent, 14 more }

A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule.

type: "deployment"
id: string

Unique identifier for this deployment.

agent: object{ type: "agent", id, version }

Reference to the agent this deployment runs, resolved to a concrete version.

type: "agent"
id: string
version: number
formatint32
archived_at: string

Time the deployment was archived. Null if not archived.

formatdate-time
created_at: string

Time the deployment was created.

formatdate-time
description: string

Description of what the deployment does.

environment_id: string

ID of the environment where sessions run.

initial_events: array of BetaManagedAgentsDeploymentInitialEvent

Events sent to each session immediately after creation.

One of the following:
beta_managed_agents_deployment_user_message_event: object{ type: "user.message", content }

A user message sent to the session.

type: "user.message"

Array of content blocks for the user message.

One of the following:
beta_managed_agents_text_block: object{ type: "text", text }

Regular text content.

type: "text"
text: string

The text content.

minLength1
beta_managed_agents_image_block: object{ type: "image", source }

Image content specified directly as base64 data or as a reference via a URL.

beta_managed_agents_document_block: object{ type: "document", source, context, title }

Document content, either specified directly as base64 data, as text, or as a reference via a URL.

beta_managed_agents_redacted_block: object{ type: "redacted" }

Placeholder for content withheld by Anthropic model policy.

type: "redacted"
beta_managed_agents_deployment_user_define_outcome_event: object{ type: "user.define_outcome", description, rubric, max_iterations }

An outcome the agent should work toward. The agent begins work on receipt.

type: "user.define_outcome"
description: string

What the agent should produce. This is the task specification.

How to grade the outcome. Text or file reference.

One of the following:
beta_managed_agents_file_rubric: object{ type: "file", file_id }

Rubric referenced by a file uploaded via the Files API.

type: "file"
file_id: string

ID of the rubric file.

beta_managed_agents_text_rubric: object{ type: "text", content }

Rubric content provided inline as text.

type: "text"
content: string

Rubric content. Plain text or markdown — the grader treats it as freeform text.

max_iterations: optional number

Eval→revision cycles before giving up. Default 3, max 20.

formatint32
beta_managed_agents_deployment_system_message_event: object{ type: "system.message", content }

Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a role: "system" turn rather than replacing the top-level system prompt.

type: "system.message"
content: array of BetaManagedAgentsSystemContentBlock { type: "text", text }

System content blocks to append. Text-only.

type: "text"
text: string

The text content.

minLength1
metadata: map[string]

Arbitrary key-value metadata. Maximum 16 pairs.

name: string

Human-readable name.

Why the deployment is paused. Non-null exactly when status is paused; null otherwise.

One of the following:
beta_managed_agents_manual_deployment_paused_reason: object{ type: "manual" }

The caller invoked the pause endpoint on the deployment.

type: "manual"
beta_managed_agents_error_deployment_paused_reason: object{ type: "error", error }

A scheduled fire recorded a failed run whose error auto-pauses the deployment.

type: "error"
One of the following:
beta_managed_agents_environment_archived_deployment_paused_reason_error: object{ type: "environment_archived_error" }

The deployment's environment was archived.

type: "environment_archived_error"
beta_managed_agents_agent_archived_deployment_paused_reason_error: object{ type: "agent_archived_error" }

The deployment's agent was archived.

type: "agent_archived_error"
beta_managed_agents_environment_not_found_deployment_paused_reason_error: object{ type: "environment_not_found_error" }

The deployment's environment no longer exists.

type: "environment_not_found_error"
beta_managed_agents_vault_not_found_deployment_paused_reason_error: object{ type: "vault_not_found_error" }

A vault referenced by the deployment no longer exists.

type: "vault_not_found_error"
beta_managed_agents_file_not_found_deployment_paused_reason_error: object{ type: "file_not_found_error" }

A file resource referenced by the deployment no longer exists.

type: "file_not_found_error"
beta_managed_agents_session_resource_not_found_deployment_paused_reason_error: object{ type: "session_resource_not_found_error" }

A referenced resource no longer exists and its kind was not reported.

type: "session_resource_not_found_error"
beta_managed_agents_workspace_archived_deployment_paused_reason_error: object{ type: "workspace_archived_error" }

The deployment's workspace was archived.

type: "workspace_archived_error"
beta_managed_agents_organization_disabled_deployment_paused_reason_error: object{ type: "organization_disabled_error" }

The deployment's organization is disabled.

type: "organization_disabled_error"
beta_managed_agents_memory_store_archived_deployment_paused_reason_error: object{ type: "memory_store_archived_error" }

A memory store referenced by the deployment is archived.

type: "memory_store_archived_error"
beta_managed_agents_skill_not_found_deployment_paused_reason_error: object{ type: "skill_not_found_error" }

A skill referenced by the deployment's agent no longer exists.

type: "skill_not_found_error"
beta_managed_agents_vault_archived_deployment_paused_reason_error: object{ type: "vault_archived_error" }

A vault referenced by the deployment is archived.

type: "vault_archived_error"
beta_managed_agents_unknown_deployment_paused_reason_error: object{ type: "unknown_error" }

An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose error.type is unknown_error.

type: "unknown_error"
beta_managed_agents_self_hosted_resources_unsupported_deployment_paused_reason_error: object{ type: "self_hosted_resources_unsupported_error" }

The deployment configures resources, but its environment is self-hosted and cannot mount them.

type: "self_hosted_resources_unsupported_error"
beta_managed_agents_mcp_egress_blocked_deployment_paused_reason_error: object{ type: "mcp_egress_blocked_error" }

An MCP server host used by the deployment's agent is blocked by the environment's network policy.

type: "mcp_egress_blocked_error"

Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials.

One of the following:
beta_managed_agents_github_repository_resource_config: object{ type: "github_repository", url, checkout, mount_path }

A GitHub repository mounted into each session's container. The authorization token is write-only and never returned.

type: "github_repository"
url: string

Github URL of the repository

Branch or commit to check out. Defaults to the repository's default branch.

One of the following:
beta_managed_agents_branch_checkout: object{ type: "branch", name }
type: "branch"
name: string

Branch name to check out.

minLength1
maxLength255
beta_managed_agents_commit_checkout: object{ type: "commit", sha }
type: "commit"
sha: string

Full commit SHA to check out.

minLength7
maxLength64
mount_path: optional string

Mount path in the container. Defaults to /workspace/<repo-name>.

beta_managed_agents_file_resource_config: object{ type: "file", file_id, mount_path }

A file mounted into each session's container.

type: "file"
file_id: string

ID of a previously uploaded file.

mount_path: optional string

Mount path in the container. Defaults to /mnt/session/uploads/<file_id>.

beta_managed_agents_memory_store_resource_config: object{ type: "memory_store", memory_store_id, access, instructions }

A memory store attached to each session created from this deployment.

type: "memory_store"
memory_store_id: string

The memory store ID (memstore_...). Must belong to the caller's organization and workspace.

access: optional "read_write" or "read_only"

Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem.

One of the following:
"read_write"
"read_only"
instructions: optional string

Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars.

schedule: object{ type: "cron", expression, timezone, 2 more }

Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant.

type: "cron"
expression: string

5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily).

minLength1
maxLength256
timezone: string

IANA timezone identifier (e.g., "America/Los_Angeles", "UTC").

minLength1
last_run_at: optional string

Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this.

formatdate-time
upcoming_runs_at: optional array of string

Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (archived_at set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time.

status: "active" or "paused"

Computed status of the deployment: active or paused. Archived deployments report active with archived_at set.

One of the following:
"active"

The deployment is active and can run sessions. Archived deployments also report this status; check archived_at to distinguish them.

"paused"

The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted.

updated_at: string

Time the deployment was last updated.

formatdate-time
vault_ids: array of string

Vault IDs supplying stored credentials for sessions created from this deployment.

budget: optional object{ type: "limit", max_list_cost }

Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set.

type: "limit"
max_list_cost: object{ amount, currency }

Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge.

amount: string

Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.

currency: "USD"

Uppercase ISO-4217 currency code. USD is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.

Update Deployment
ant beta:deployments update \
  --api-key my-anthropic-api-key \
  --deployment-id depl_011CZkZcDH3vPqd7xnEfwTai
Returns Examples
Response 200
{
  "id": "depl_011CZkZcDH3vPqd7xnEfwTai",
  "agent": {
    "id": "agent_011CZkYpogX7uDKUyvBTophP",
    "type": "agent",
    "version": 1
  },
  "archived_at": null,
  "created_at": "2026-03-15T10:00:00Z",
  "description": "Compiles yesterday's orders into a report every weekday morning.",
  "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW",
  "initial_events": [
    {
      "content": [
        {
          "text": "Compile yesterday's orders into report.md.",
          "type": "text"
        }
      ],
      "type": "user.message"
    }
  ],
  "metadata": {},
  "name": "Daily order report",
  "paused_reason": {
    "type": "manual"
  },
  "resources": [
    {
      "type": "github_repository",
      "url": "url",
      "checkout": {
        "name": "main",
        "type": "branch"
      },
      "mount_path": "mount_path"
    }
  ],
  "schedule": {
    "expression": "0 9 * * 1-5",
    "timezone": "America/Los_Angeles",
    "type": "cron",
    "last_run_at": "2026-03-16T16:00:09Z",
    "upcoming_runs_at": [
      "2026-03-17T16:00:00Z",
      "2026-03-18T16:00:00Z"
    ]
  },
  "status": "active",
  "type": "deployment",
  "updated_at": "2026-03-15T10:00:00Z",
  "vault_ids": [
    "vlt_011CZkZDLs7fYzm1hXNPeRjv"
  ],
  "budget": {
    "max_list_cost": {
      "amount": "2500",
      "currency": "USD"
    },
    "type": "limit"
  }
}