What this read moved
1–25 of 43This capture is too large to show at once. Changes 1-25 of 43 are below, significant first; the rest are on the following screens.
agents-and-tools/tool-use/web-fetch-tool Changed · +3 / -3 lines
from line 27
2727<Warning>
2828 Enabling the web fetch tool in environments where Claude processes untrusted input alongside sensitive data poses data exfiltration risks. Only use this tool in trusted environments or when handling non-sensitive data.
2929
30 To minimize exfiltration risks, Claude is not allowed to dynamically construct URLs. Claude can only fetch URLs that have been explicitly provided by the user or that come from previous web search or web fetch results. However, there is still residual risk that you should carefully consider when using this tool.
30 To minimize exfiltration risks, Claude cannot fetch URLs that appear only in its own output. Claude can only fetch URLs that have previously appeared in the conversation: URLs in user messages, URLs in client-side tool results (even when a result echoes text that Claude generated), and URLs from previous web search or web fetch results (see [URL validation](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#url-validation)). However, there is still residual risk that you should carefully consider when using this tool.
3131
3232 If data exfiltration is a concern, consider:
3333
from line 503
503503Unlike web search where citations are always enabled, citations are optional for web fetch and disabled by default. Set `"citations": {"enabled": true}` to enable Claude to cite specific passages from fetched documents.
504504
505505<Note>
506 When displaying API outputs directly to end users, include citations to the original source. If you are making modifications to API outputs, including by reprocessing and/or combining them with your own material before displaying them to end users, display citations as appropriate based on consultation with your legal team.
506 When displaying API outputs directly to end users, include citations to the original source. If you are making modifications to API outputs, including by reprocessing or combining them with your own material before displaying them to end users, display citations as appropriate based on consultation with your legal team.
507507</Note>
508508
509509## Response
from line 650
650650* URLs in client-side tool results
651651* URLs from previous web search or web fetch results
652652
653The tool cannot fetch arbitrary URLs that Claude generates or URLs from container-based server tools (such as Code Execution and Bash).
653The tool cannot fetch URLs that appear only in Claude's own output or only in the system prompt. To make a URL from the system prompt fetchable, also include it in a user message. Results of other server-side tools, such as [code execution](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool), the [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector), or [tool search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool), are not an allowed source either. Client-side tool results are an allowed source even when they echo text that Claude produced (for example, a command that prints its input, or an error message that quotes it).
654654
655655## Combined search and fetch
656656
api/service-tiers Changed · +1 / -1 lines
## Standard tier ## Standard Tier
from line 14
1414* **Standard:** Default tier for both piloting and scaling everyday use cases
1515* **Batch:** Best for asynchronous workflows that can wait or benefit from being outside your normal capacity
1616
17## Standard Tier
17## Standard tier
1818
1919The standard tier is the default service tier for all API requests. The API prioritizes these requests alongside all other requests with best-effort availability.
2020
build-with-claude/claude-on-vertex-ai Changed · +4 / -4 lines
from line 45
4545 <Tab title="Java">
4646 <CodeGroup exclude="shell, python, typescript, csharp, go, php, ruby">
4747 ```groovy Gradle
48 implementation("com.anthropic:anthropic-java:2.58.0")
49 implementation("com.anthropic:anthropic-java-vertex:2.58.0")
48 implementation("com.anthropic:anthropic-java:2.60.0")
49 implementation("com.anthropic:anthropic-java-vertex:2.60.0")
5050 ```
5151
5252 ```xml Maven
from line 53
5353 <dependency>
5454 <groupId>com.anthropic</groupId>
5555 <artifactId>anthropic-java</artifactId>
56 <version>2.58.0</version>
56 <version>2.60.0</version>
5757 </dependency>
5858 <dependency>
5959 <groupId>com.anthropic</groupId>
6060 <artifactId>anthropic-java-vertex</artifactId>
61 <version>2.58.0</version>
61 <version>2.60.0</version>
6262 </dependency>
6363 ```
6464
build-with-claude/prompt-engineering/prompting-claude-fable-5-1 Changed · +17 / -10 lines
from line 130
130130 tool_results: list[BetaToolResultBlockParam] = []
131131 for block in response.content:
132132 if block.type == "tool_use":
133 path = str(block.input["path"])
133 raw_path = block.input.get("path")
134 path = raw_path if isinstance(raw_path, str) else ""
134135 if path in FILES:
135136 tool_results.append(
136137 {
from line 256
255256 }
256257
257258 const finalText = response.content.find((block) => block.type === "text");
258 console.log(finalText?.text);
259 console.log(finalText?.text ?? "");
259260 ```
260261
261262 ```csharp C#
from line 334
333334 {
334335 if (block.TryPickToolUse(out var toolUse))
335336 {
336 var path = toolUse.Input["path"].GetString()!;
337 var path = toolUse.Input.TryGetValue("path", out var pathValue)
338 && pathValue.ValueKind == JsonValueKind.String
339 ? pathValue.GetString()!
340 : "";
337341 if (files.TryGetValue(path, out var fileText))
338342 {
339343 toolResults.Add(new BetaToolResultBlockParam { ToolUseID = toolUse.ID, Content = fileText });
from line 450
446450 var input struct {
447451 Path string `json:"path"`
448452 }
453 // A missing or non-string path leaves input.Path empty, which takes the error-result branch.
449454 if err := json.Unmarshal([]byte(toolUse.JSON.Input.Raw()), &input); err != nil {
450 log.Fatal(err)
455 input.Path = ""
451456 }
452457 text, found := files[input.Path]
453458 if !found {
from line 553
548553 for (BetaToolUseBlock toolUse : toolUses) {
549554 Map<String, JsonValue> input =
550555 (Map<String, JsonValue>) toolUse._input().asObject().orElseThrow();
551 String path = input.get("path").asStringOrThrow();
556 String path = Optional.ofNullable(input.get("path"))
557 .flatMap(JsonValue::asString)
558 .orElse("");
552559 String fileText = FILES.get(path);
553560 BetaToolResultBlockParam.Builder result = BetaToolResultBlockParam.builder()
554561 .toolUseId(toolUse.id());
from line 582
575582
576583 String finalText = response.content().stream()
577584 .flatMap(block -> block.text().stream())
585 .map(textBlock -> textBlock.text())
578586 .findFirst()
579 .orElseThrow()
580 .text();
587 .orElse("");
581588 IO.println(finalText);
582589 }
583590 ```
from line 644
637644 $toolResults = [];
638645 foreach ($response->content as $block) {
639646 if ($block->type === 'tool_use') {
640 $path = $block->input['path'];
647 $path = is_string($block->input['path'] ?? null) ? $block->input['path'] : '';
641648 if (array_key_exists($path, FILES)) {
642649 $toolResults[] = [
643650 'type' => 'tool_result',
from line 673
666673 }
667674
668675 $textBlock = array_find($response->content, fn ($block) => $block->type === 'text');
669 echo $textBlock->text, PHP_EOL;
676 echo $textBlock?->text ?? '', PHP_EOL;
670677 ```
671678
672679 ```ruby Ruby
from line 877
870877* Append the following note to the end of the user message. It makes the thinking much shorter on prose and code requests. Replace `[max_tokens]` with the request's actual `max_tokens` value, for example 64,000.
871878
872879```text wrap
873Everything produced in one reply, including any reasoning or drafting it does before the reply, counts toward a single limit of about [max_tokens] tokens. If that limit is reached before the reply is finished, the person receives a cut-off response and has to start over. Composing an entire output or deliverable in full as reasoning and then again as a reply would double the length of the turn without improving the result, so don't do that.
880Everything produced in one reply, including any reasoning or drafting done before the reply, counts toward a single limit of about [max_tokens] tokens. If that limit is reached before the reply is finished, the person receives a cut-off response and has to start over. Composing an entire output or deliverable in full as reasoning and then again as a reply would double the length of the turn without improving the result, so don't do that.
874881
875882Instead, when the person has asked for a long or effort-intensive deliverable such as a multi-section document, a large table or dataset, or a complete code file, spend extra effort on understanding the request, checking the inputs the answer depends on, settling the structure and other difficult decisions, and otherwise using the reasoning space to reason and the output space to write an output. Usually it is not needed to draft an output multiple times.
876883```
cli-sdks-libraries/sdks/csharp Changed · +0 / -8 lines
from line 7
77The Anthropic C# SDK provides convenient access to the Claude API from applications written in C#.
88
99<Info>
10 The C# SDK is currently in beta. APIs may change between versions.
11</Info>
12
13<Info>
1410 For API feature documentation with code examples, see the [API reference](https://platform.claude.com/docs/en/api/overview). This page covers C#-specific SDK features and configuration.
1511</Info>
1612
from line 443
447443Use `AnthropicBedrockMantleClient` for new projects; `AnthropicBedrockClient` remains for existing applications using the Bedrock `InvokeModel` API.
448444
449445## Semantic versioning
450
451<Warning>
452 Although this package is versioned as 10+, it's currently in beta. During the beta period, breaking changes may occur in minor or patch releases. Once the library reaches stable release, SemVer conventions will be followed more strictly. Share feedback by [filing an issue](https://github.com/anthropics/anthropic-sdk-csharp/issues/new).
453</Warning>
454446
455447This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backward-incompatible changes may be released as minor versions:
456448
manage-claude/compliance-integration-patterns Changed · +3 / -2 lines
from line 115
115115| Activity Feed records | 6 years | Anthropic |
116116| Chat, file, and project content | Your organization's claude.ai retention policy, unless a user deletes it sooner | Your organization |
117117| Local session transcripts (sessions on users' machines) | 6 years by default, or your organization's custom conversation retention period when a finite one is set | Anthropic by default; your organization when it sets a custom period |
118| Remote session transcripts (sessions in the cloud) | 6 years | Anthropic |
118| Remote session transcripts (sessions in the cloud) | 6 years, unless a user deletes the session sooner | Anthropic |
119119| Content hard-deleted through the Compliance API | Not retained; deletion is immediate and permanent | The caller of the `DELETE` endpoint |
120120
121121To learn how the rest of the Claude Platform handles retention, see [API and data retention](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention).
from line 124
124124
125125* If your legal-hold or audit horizon exceeds 6 years for activity metadata or session transcripts, export Activity Feed pages and session transcripts to your own archive as you ingest them.
126126* If your content-retention policy is shorter than your eDiscovery horizon, export chat and file content before the retention window expires; the Compliance API cannot return content that retention has already removed. The same applies to local session transcripts, which follow your organization's custom conversation retention period when a finite one is set, even when that period is shorter than 6 years. The local session endpoints stop returning messages older than your organization's current period as soon as the setting changes, and lengthening the period later does not restore transcripts that have already expired, so export any transcript you must keep beyond it.
127* If you must retain chat content after users delete it in claude.ai (for example, under a legal hold), export chat, file, and artifact content to your own archive as you ingest it; the Compliance API cannot return content that a user has already deleted.
127* If you must retain chat content or remote session transcripts after users delete them in claude.ai (for example, under a legal hold), export chat, file, artifact, and remote session content to your own archive as you ingest it; the Compliance API cannot return content that a user has already deleted.
128128* If a workflow might issue a Compliance API hard-delete (for example, DLP enforcement), retrieve and archive the target content first. There is no recovery window after a hard-delete.
129129
130130In every other case, rely on direct API retrieval and avoid maintaining a parallel copy.
from line 154
154154* Local session transcript content in an organization whose [customer-managed encryption key](https://platform.claude.com/docs/en/manage-claude/cmek) cannot currently be used. Those requests return [503 Service Unavailable](https://platform.claude.com/docs/en/manage-claude/compliance-errors#local-sessions-temporarily-unavailable), and session metadata is still listed.
155155* Content removed by your organization's retention policy.
156156* Content of chats that users delete in claude.ai (the chats are still listed, with `deleted_at` populated).
157* Remote sessions that users delete (deleted sessions are no longer listed, and the messages endpoint returns 404 for them).
157158* Content hard-deleted through the Compliance API.
158159
159160See the [Compliance API FAQ](https://platform.claude.com/docs/en/manage-claude/compliance-faq#data-coverage-and-retention) for more on what the Compliance API does and does not capture.
agents-and-tools/mcp-connector Changed · +2 / -2 lines
from line 663
663663 <Tabs>
664664 <Tab title="Gradle">
665665 ```kotlin
666 implementation("com.anthropic:anthropic-java-mcp:2.58.0")
666 implementation("com.anthropic:anthropic-java-mcp:2.60.0")
667667 ```
668668 </Tab>
669669
from line 672
672672 <dependency>
673673 <groupId>com.anthropic</groupId>
674674 <artifactId>anthropic-java-mcp</artifactId>
675 <version>2.58.0</version>
675 <version>2.60.0</version>
676676 </dependency>
677677 ```
678678 </Tab>
agents-and-tools/tool-use/advisor-tool Changed · +1 / -1 lines
from line 31
3131
3232The advisor fits these configurations:
3333
34* **You currently use Sonnet on complex tasks:** Add a higher-tier advisor. Opus keeps total cost similar or lower; Claude Fable 5 maximizes the quality lift.
34* **You currently use Sonnet on complex tasks:** Add a higher-tier advisor. Opus keeps total cost similar or lower; Claude Fable 5.1 maximizes the quality lift.
3535* **You currently use Haiku and want a step up in intelligence:** Add an Opus or Fable advisor. Expect higher cost than Haiku alone, but lower than switching the executor to a larger model.
3636
3737Results are task-dependent. Evaluate on your own workload.
build-with-claude/claude-in-amazon-bedrock Changed · +2 / -2 lines
from line 102
102102 <Tabs>
103103 <Tab title="Gradle">
104104 ```kotlin
105 implementation("com.anthropic:anthropic-java-bedrock:2.58.0")
105 implementation("com.anthropic:anthropic-java-bedrock:2.60.0")
106106 ```
107107 </Tab>
108108
from line 111
111111 <dependency>
112112 <groupId>com.anthropic</groupId>
113113 <artifactId>anthropic-java-bedrock</artifactId>
114 <version>2.58.0</version>
114 <version>2.60.0</version>
115115 </dependency>
116116 ```
117117 </Tab>
build-with-claude/claude-in-microsoft-foundry Changed · +2 / -2 lines
from line 77
7777 <Tabs>
7878 <Tab title="Gradle">
7979 ```kotlin
80 implementation("com.anthropic:anthropic-java-foundry:2.58.0")
80 implementation("com.anthropic:anthropic-java-foundry:2.60.0")
8181
8282 // For Entra ID authentication, also add the Azure Identity library
8383 implementation("com.azure:azure-identity:1.18.3")
from line 89
8989 <dependency>
9090 <groupId>com.anthropic</groupId>
9191 <artifactId>anthropic-java-foundry</artifactId>
92 <version>2.58.0</version>
92 <version>2.60.0</version>
9393 </dependency>
9494 <!-- For Entra ID authentication, also add the Azure Identity library -->
9595 <dependency>
build-with-claude/claude-on-amazon-bedrock-legacy Changed · +2 / -2 lines
from line 54
5454 <Tab title="Java">
5555 <CodeGroup>
5656 ```groovy Gradle
57 implementation("com.anthropic:anthropic-java-bedrock:2.58.0")
57 implementation("com.anthropic:anthropic-java-bedrock:2.60.0")
5858 ```
5959
6060 ```xml Maven
from line 61
6161 <dependency>
6262 <groupId>com.anthropic</groupId>
6363 <artifactId>anthropic-java-bedrock</artifactId>
64 <version>2.58.0</version>
64 <version>2.60.0</version>
6565 </dependency>
6666 ```
6767
build-with-claude/claude-platform-on-aws Changed · +2 / -2 lines
from line 305
305305
306306 <Tab title="Java">
307307 ```kotlin Gradle
308 implementation("com.anthropic:anthropic-java-aws:2.58.0")
308 implementation("com.anthropic:anthropic-java-aws:2.60.0")
309309 ```
310310
311311 ```xml Maven
from line 312
312312 <dependency>
313313 <groupId>com.anthropic</groupId>
314314 <artifactId>anthropic-java-aws</artifactId>
315 <version>2.58.0</version>
315 <version>2.60.0</version>
316316 </dependency>
317317 ```
318318 </Tab>
build-with-claude/mid-conversation-system-messages Changed · +1 / -1 lines
from line 1170
11701170## Limitations
11711171
11721172* **Not for the first message.** A `system` message that carries content cannot be the first entry in `messages`. Use the top-level `system` field for instructions that apply from the very start.
1173* **Placement is constrained.** A `system` message that carries content (`text`, `tool_addition`, or `tool_removal` blocks) must immediately follow a `user` turn (including a `user` turn that carries `tool_result` blocks) or an `assistant` turn ending in a server tool result, and must precede an `assistant` turn or end the array. It cannot sit between a `tool_use` block and its `tool_result`. Placing it elsewhere returns a 400 error. A message with empty `content` that only sets [`output_config.effort`](https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta) renders nothing at its position and is accepted anywhere in `messages`, including first or between an `assistant` turn and a `user` turn. Consecutive `system` messages are judged together, so adding a text-carrying message next to an effort-only one makes the whole group follow the content rule.
1173* **Placement is constrained.** A `system` message that carries content (`text`, `tool_addition`, or `tool_removal` blocks) must immediately follow a `user` turn (including a `user` turn that carries `tool_result` blocks) or an `assistant` turn ending in a server tool result, and must precede an `assistant` turn or end the array. It cannot sit between a `tool_use` block and its `tool_result`. Placing it elsewhere returns a 400 error. One exception: `tool_addition` and `tool_removal` blocks are not accepted immediately after a [paused](https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons#pause-turn) `assistant` turn (one ending in a server tool result), though `text` blocks are; resume the paused turn first, then send the tool change in the next `system` message. A message with empty `content` that only sets [`output_config.effort`](https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta) renders nothing at its position and is accepted anywhere in `messages`, including first or between an `assistant` turn and a `user` turn. Consecutive `system` messages are judged together, so adding a text-carrying message next to an effort-only one makes the whole group follow the content rule.
11741174* **Turn-scoped messages are text-only and re-sent verbatim.** A `clear_at: "next_user_message"` message carries no `tool_addition`, `tool_removal`, `output_config`, or `cache_control`, and once cleared it must stay in `messages` byte-for-byte on later requests. See [Turn-scoped system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#turn-scoped-system-messages).
11751175* **Not a place for untrusted content.** Claude treats system content as operator instructions and follows it. Do not place text from outside the conversation, such as raw tool output, retrieved documents, or web content, directly in a system message; doing so gives that text operator-level authority. Keep that data in `tool_result` blocks and continue to follow [Mitigate jailbreaks and prompt injections](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/mitigate-jailbreaks).
11761176
build-with-claude/prompt-caching Changed · +1 / -1 lines
from line 867
8678673. Position `C`: The token count at the last `cache_control` block.
868868
869869<Note>
870 If `B` and/or `C` are larger than `A`, they will necessarily be cache misses, because `A` is the highest cache hit.
870 If `B` or `C` is larger than `A`, it is necessarily a cache miss, because `A` is the highest cache hit.
871871</Note>
872872
873873You'll be charged for:
build-with-claude/prompt-engineering/prompting-claude-opus-4-8 Changed · +1 / -1 lines
from line 157
157157
158158## Computer use
159159
160Claude Opus 4.8 supports the `computer_toolset_20260801` toolset (on the Claude API and Google Cloud) and the earlier `computer_20251124` tool version. For tasks inside webpages, Claude Opus 4.8 also supports the [browser use tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool) (`browser_toolset_20260801`). [Computer use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) capability works across resolutions, up to a maximum resolution of 2576px / 3.75MP. Internal computer use testing shows that sending images at 1080p provides a good balance of performance and cost.
160Claude Opus 4.8 supports the `computer_toolset_20260801` toolset (on the Claude API and Google Cloud) and the earlier `computer_20251124` tool version. On the Claude API and Google Cloud, Claude Opus 4.8 also supports the [browser use tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool) (`browser_toolset_20260801`) for tasks inside webpages. [Computer use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) capability works across resolutions, up to a maximum resolution of 2576px / 3.75MP. Internal computer use testing shows that sending images at 1080p provides a good balance of performance and cost.
161161
162162For particularly cost-sensitive workloads, 720p or 1366×768 are lower-cost options with strong performance. Conduct your own testing to find the ideal settings for your use case; experimenting with effort settings can also help tune the model's behavior.
163163
build-with-claude/prompt-engineering/prompting-claude-sonnet-5 Changed · +1 / -1 lines
from line 153
153153
154154## Computer use
155155
156Claude Sonnet 5 supports the `computer_toolset_20260801` toolset (on the Claude API and Google Cloud) and the earlier `computer_20251124` tool version. For tasks inside webpages, Claude Sonnet 5 also supports the [browser use tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool) (`browser_toolset_20260801`). [Computer use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) capability works across resolutions, up to a maximum resolution of 2576px / 3.75MP. Internal computer use testing shows that sending images at 1080p provides a good balance of performance and cost.
156Claude Sonnet 5 supports the `computer_toolset_20260801` toolset (on the Claude API and Google Cloud) and the earlier `computer_20251124` tool version. On the Claude API and Google Cloud, Claude Sonnet 5 also supports the [browser use tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool) (`browser_toolset_20260801`) for tasks inside webpages. [Computer use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) capability works across resolutions, up to a maximum resolution of 2576px / 3.75MP. Internal computer use testing shows that sending images at 1080p provides a good balance of performance and cost.
157157
158158For particularly cost-sensitive workloads, 720p or 1366×768 are lower-cost options with strong performance. Conduct your own testing to find the ideal settings for your use case; experimenting with effort settings can also help tune the model's behavior.
159159
build-with-claude/task-budgets Changed · +2 / -0 lines
from line 439
439439 ```
440440</CodeGroup>
441441
442In this example, the tokens spent before compaction are the usage of all the messages you have removed from the history so far, measured as in [Measure your current usage](https://platform.claude.com/docs/en/build-with-claude/task-budgets#measure-your-current-usage). Leave out anything still present in the messages you send, including any summary you added, because the server counts those tokens itself. Update this figure only when you replace the history this way; don't decrement it per request. Pass the resulting `remaining` on every request, not only the one that compacts.
443
442444For loops that resend the full uncompacted history on every turn, omit `remaining` and let the server track the countdown.
443445
444446## Changing the budget mid-conversation
build-with-claude/token-counting Changed · +1 / -1 lines
from line 779
779779<Note>
780780 See [Thinking and the context window](https://platform.claude.com/docs/en/build-with-claude/thinking#thinking-and-the-context-window) for more details.
781781
782 * Thinking blocks from **previous** assistant turns are ignored and **do not** count toward your input tokens
782 * Thinking blocks from **previous** assistant turns count toward your input tokens on models that [keep all prior turns](https://platform.claude.com/docs/en/build-with-claude/thinking#thinking-block-preservation-by-model); on models that keep only the last turn, the API strips them and they do **not** count
783783 * **Current** assistant turn thinking **does** count toward your input tokens
784784</Note>
785785
cli-sdks-libraries/cli/quickstart Changed · +1 / -1 lines
from line 29
2929 For Linux environments, download the release binary directly.
3030
3131 ```bash
32 VERSION=1.27.0
32 VERSION=1.29.0
3333 OS=$(uname -s | tr '[:upper:]' '[:lower:]')
3434 case $(uname -m) in
3535 x86_64) ARCH=amd64 ;;
cli-sdks-libraries/sdks/java Changed · +2 / -2 lines
from line 15
1515<Tabs>
1616 <Tab title="Gradle">
1717 ```kotlin
18 implementation("com.anthropic:anthropic-java:2.58.0")
18 implementation("com.anthropic:anthropic-java:2.60.0")
1919 ```
2020 </Tab>
2121
from line 24
2424 <dependency>
2525 <groupId>com.anthropic</groupId>
2626 <artifactId>anthropic-java</artifactId>
27 <version>2.58.0</version>
27 <version>2.60.0</version>
2828 </dependency>
2929 ```
3030 </Tab>
cli-sdks-libraries/sdks/typescript Changed · +1 / -1 lines
from line 18
1818
1919## Requirements
2020
21TypeScript >= 4.9 is supported.
21TypeScript >= 5.0 is supported.
2222
2323The following runtimes are supported:
2424
get-started Changed · +2 / -2 lines
from line 436
436436 }
437437
438438 dependencies {
439 implementation("com.anthropic:anthropic-java:2.58.0")
439 implementation("com.anthropic:anthropic-java:2.60.0")
440440 }
441441
442442 application {
from line 462
462462 <dependency>
463463 <groupId>com.anthropic</groupId>
464464 <artifactId>anthropic-java</artifactId>
465 <version>2.58.0</version>
465 <version>2.60.0</version>
466466 </dependency>
467467 </dependencies>
468468 </project>
manage-claude/api-and-data-retention Changed · +1 / -1 lines
from line 16
1616* Only what is technically necessary for the feature to work is retained. Conversation content (your prompts and Claude's outputs) is not retained by default; the exception is [Covered Models](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), which require 30-day retention.
1717* Retained data is purged on the shortest practical time to live (TTL), and Anthropic aims to give customers control over how long data is retained. What is held, and the retention duration where a specific TTL applies, is documented on each feature's page.
1818
19Several retention models sit outside the ZDR and HIPAA arrangements described on this page. Data accessible through the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) follows its own retention model. The [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) retains data for 6 years. Chat, file, and project content from claude.ai follows your organization's retention policy set in [claude.ai > Organization settings > Data and privacy](https://claude.ai/admin-settings/data-privacy-controls). [Local session transcripts](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retrieve-local-sessions) (from sessions on users' machines, in apps such as Cowork and Claude Code) are stored for 6 years by default, or for your organization's custom conversation retention period when a finite one is set (the same claude.ai setting). [Remote session transcripts](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retrieve-remote-sessions) (Cowork in the cloud) are retained for 6 years. The Compliance API does not capture local sessions for which ZDR is in effect, or any local sessions from organizations with HIPAA readiness enabled.
19Several retention models sit outside the ZDR and HIPAA arrangements described on this page. Data accessible through the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) follows its own retention model. The [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) retains data for 6 years. Chat, file, and project content from claude.ai follows your organization's retention policy set in [claude.ai > Organization settings > Data and privacy](https://claude.ai/admin-settings/data-privacy-controls). [Local session transcripts](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retrieve-local-sessions) (from sessions on users' machines, in apps such as Cowork and Claude Code) are stored for 6 years by default, or for your organization's custom conversation retention period when a finite one is set (the same claude.ai setting). [Remote session transcripts](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retrieve-remote-sessions) (Cowork in the cloud) are retained for 6 years, unless a user deletes the session sooner. The Compliance API does not capture local sessions for which ZDR is in effect, or any local sessions from organizations with HIPAA readiness enabled.
2020
2121## Zero data retention (ZDR)
2222
manage-claude/authentication Changed · +1 / -1 lines
from line 127
127127
128128The [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) accepts a personal key or service account key only if the key isn't scoped to a specific workspace.
129129
130You can find a workspace's ID in the **ID** column of [Settings → Workspaces](https://platform.claude.com/settings/workspaces) in the Claude Console, or by calling the [List Workspaces](https://platform.claude.com/docs/en/api/admin/workspaces/list) endpoint. Neither lists the Default Workspace's ID: read it from the `anthropic-workspace-id` [response header](https://platform.claude.com/docs/en/manage-claude/workspaces#identify-the-workspace-behind-an-api-response) of any request that runs there (for example, one made with a workspace key from the Default Workspace), or from `scope.workspace_id` on such a key in [List API Keys](https://platform.claude.com/docs/en/api/admin/api_keys/list).
130You can find a workspace's ID in the **ID** column of [Settings → Workspaces](https://platform.claude.com/settings/workspaces) in the Claude Console, or by calling the [List Workspaces](https://platform.claude.com/docs/en/api/admin/workspaces/list) endpoint. List Workspaces omits the Default Workspace; its ID is in the `anthropic-workspace-id` [response header](https://platform.claude.com/docs/en/manage-claude/workspaces#identify-the-workspace-behind-an-api-response) of any request that runs there.
131131
132132<CodeGroup>
133133 ```bash cURL
manage-claude/compliance-faq Changed · +1 / -1 lines
from line 103
103103 </Accordion>
104104
105105 <Accordion title="Is deleted content recoverable through the Compliance API?">
106 No. Deletes performed through the Compliance API are immediate, permanent, and not recoverable. The content of a chat that a user deletes in claude.ai is not recoverable either: the Compliance API still returns the chat and its messages, with `deleted_at` populated, but not their content. Pull any content you need to retain (for legal hold or archival) while it is still available. See [Plan content retention](https://platform.claude.com/docs/en/manage-claude/compliance-integration-patterns#plan-content-retention) for when to export content to your own archive.
106 No. Deletes performed through the Compliance API are immediate, permanent, and not recoverable. The content of a chat that a user deletes in claude.ai is not recoverable either: the Compliance API still returns the chat and its messages, with `deleted_at` populated, but not their content. A remote session that a user deletes is likewise not recoverable, and the remote session endpoints no longer return it. Pull any content you need to retain (for legal hold or archival) while it is still available. See [Plan content retention](https://platform.claude.com/docs/en/manage-claude/compliance-integration-patterns#plan-content-retention) for when to export content to your own archive.
107107 </Accordion>
108108
109109 <Accordion title="What does the Compliance API not capture?">