Redacted thinking blocks
In addition to regular thinking blocks, the API may return redacted_thinking blocks when portions of Claude's reasoning are safety-redacted. A redacted_thinking block contains encrypted thinking content in a data field, with no readable text:
{
"type": "redacted_thinking",
"data": "..."
}The data field is opaque and encrypted. Like the signature field on regular thinking blocks, pass redacted_thinking blocks back to the API unchanged when continuing a multi-turn conversation with tools.
If your code filters content blocks by type (for example, block.type == "thinking") when round-tripping responses with tool use, also include redacted_thinking blocks. Filtering on block.type == "thinking" alone silently drops redacted_thinking blocks and breaks the multi-turn protocol described in Preserving thinking blocks.
redacted_thinking blocks are a distinct content block type returned when thinking is safety-redacted. This is separate from the display: "omitted" option, which returns regular thinking blocks with an empty thinking field.