explainx.ai0k
TrendingAI News TodayPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

follow on google

Add explainx.ai as a preferred source

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

community

Join the community

learn

mind: share how you thinkpathways — start freeworkshopsbootcampscoursescompare Explainxcertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcpestacktoolsmdx readeragentsllmsdesignsdictionarypeopleagi trackerfelony benchranks

company

aboutvisionmissionteaminstructorsteach on explainxpartnershipscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportcontactprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

explainx.ai

On this page

  • TL;DR: what readers ask first
  • Why long agent loops get slow
  • How Message Threads work
  • What the 35% claim actually says
  • What it does not change
  • The rules that will bite you
  • Data handling and privacy
  • Who should adopt it now
  • Where this fits
  • FAQ recap
  • Related reading
← Back to blog

explainx / blog

Anthropic Message Threads: Send Only the New Messages and Cut Time to First Token by 35%

Claude API, Anthropic, Latency, AI Agents, Claude Code

Part of Anthropic and Claude

Anthropic Message Threads lets Claude agents send only new messages each turn. How the thread parameter works, the 35% TTFT claim, limits and what it costs.

Nov 3, 2026·9 min read·Yash Thakker
add explainx.ai
go deep
Anthropic Message Threads: Send Only the New Messages and Cut Time to First Token by 35%

Anthropic has put Message Threads into public beta on the Claude Platform, and the pitch is simple: stop re-uploading the whole conversation on every agent turn. In its announcement (dated November 2, 2026), Anthropic says requests with 500k to 1M tokens see a median time to first token (TTFT) drop of about 35%, with message threads on by default for most Claude Code users. The feature is documented in the Claude Platform docs, and The Decoder was among the first to report it.

This post explains how the thread parameter works, what the 35% figure does and does not tell you, and the constraints that decide whether you should adopt it now.

TL;DR: what readers ask first

table · 2 cols
QuestionShort answer
What changes?You send the full conversation once, then only new messages plus the previous response id
How fast?Anthropic reports about 35% lower median TTFT at 500k to 1M tokens (Claude Code traffic)
Does it save tokens or money?No. Claude still reads the whole conversation. Pricing and rate limits are unchanged
StatusPublic beta, header message-threads-2026-08-12
LifetimeExpires 5 minutes after the last request, deleted within 1 hour
Eligible for ZDR or HIPAA?No
Where?Claude Platform, Claude Platform on AWS, Microsoft Foundry, Google Cloud (Anthropic managed)

Why long agent loops get slow

A coding agent can make hundreds of requests in one session. Each request carries every earlier message and every tool result. Once a conversation reaches hundreds of thousands of tokens, the upload alone adds time before Claude starts to answer.

Anthropic's docs describe the second cost: without a thread, the API also validates and tokenizes the whole conversation again on every turn. With a thread, most of that work covers only the new turn. So the saving is on the request path, before the model starts generating.

This sits next to earlier latency work. In October, Anthropic explained that Claude Code now compresses each turn's payload, which we covered in what gzip is and why Claude Code responds sooner. Gzip makes the same upload smaller. Message Threads removes most of the upload instead.

Latency stopwatch showing the wait before the first token in a Claude Message Threads requestLatency stopwatch showing the wait before the first token in a Claude Message Threads request

How Message Threads work

The flow has three parts, all described in the docs.

  1. Create. Send your first request as you do today, with the full conversation, system and tools, and add "thread": {"type": "create"}. The API stores the conversation, including Claude's reply, under the response id.
  2. Continue. Send only the messages since the previous response, plus "thread": {"type": "continue", "previous_message_id": "<previous id>"}. Leave system and tools out; the thread keeps the values from the create request.
  3. Replay. A thread is best effort. If it can no longer be continued, the API returns a 404 and you send the full conversation again as a new create request.

Here is the Python shape from the docs, using the SDK helper:

python
client = anthropic.Anthropic()

thread = client.beta.messages.thread(
    model="claude-opus-5-5",
    max_tokens=1024,
    cache_control={"type": "ephemeral"},
    system="You are a support agent for Acme. Keep replies short.",
)

thread.send({"role": "user", "content": "Hi! I have a question about an order."})
second = thread.send(
    {"role": "user", "content": "How long does standard shipping usually take?"}
)

The helper creates the thread on turn one, continues it on turn two, adds the beta header and keeps the full conversation in memory. If you build requests yourself with cURL or the standard create method, add the thread field and the message-threads-2026-08-12 header to every request.

What the 35% claim actually says

Be precise about the number. Anthropic's wording is that, with message threads on by default for most Claude Code users, requests with 500k to 1M tokens see a median TTFT drop of about 35%. Three things follow.

  • It is a median, not a worst case, and it covers one length band.
  • It comes from Claude Code traffic, a heavy agent workload. A chat app with short conversations will see little.
  • It is Anthropic's own measurement. We found no independent benchmark yet, so treat it as a vendor claim until people publish their own runs.

The logic is sound, though: the longer the conversation, the more redundant upload and re-processing a thread avoids. Anthropic says the benefit grows with context size. The docs name the best fits: long coding-agent loops, computer-use agents (screenshots stay with the thread instead of being uploaded each turn), and document or image-heavy workflows.

What it does not change

Anthropic is direct on this: "Claude still reads the full conversation on every turn, so token usage stays the same." Standard token rates and rate limits apply. If your problem is the bill, use prompt caching. Our prompt caching guide covers the mechanics, and Claude Code token efficiency and prompt-cache sessions shows how cache hits shape session cost. The cache-read price change is analysed in Sonnet 5.5 cache read at 0.10.

Threads do not cache for you. Per the docs, "A thread does not cache your prompt for you": you still choose where breakpoints go. A top-level cache_control on every request of the thread asks for caching of each turn. Threads allow at most 4 cache_control breakpoints per request, and the top-level one counts as one. A fifth returns a 400 error with the code thread_unsupported_request.

So the two features stack. Caching cuts what you pay to re-read context. Threads cut what you upload and re-validate. For the cost side of Opus-class sessions, see Opus 5.5 task cost in Claude Code.

The rules that will bite you

The docs list a lot of fine print. These are the ones most likely to cause errors in a first integration.

table · 2 cols
RuleWhat happens if you break it
system and tools are create-onlySending either on a continue request, even as null, returns 400
model, tool_choice, thinking, mcp_servers, context_management, output_config and the top-level cache_control are fixedA changed value returns 400 thread_fingerprint_mismatch
Each response id can be continued onceA second continue returns 400 thread_already_continued
Continue only after message_stop when streamingAn early continue can return 404
Do not continue after a refusalStart a new thread without the refused turn
Do not resend earlier messagesThey can appear twice or cause an error

Your application stays the source of truth. The docs tell you to keep your own copy of every message and build the replay path from the start, because no response tells you whether the API stored that turn. You only find out on the next continue request.

Other causes of a thread_not_found 404 include a different organization, workspace or service account, a response that ended in a tool call cut off by max_tokens, and a previous turn written by a fallback model. Server-side fallback works with threads, but the API does not store a turn a fallback model wrote, so the next turn must be a full create request.

Features that do not work with threads

  • Message Batches
  • Token counting (count the full conversation instead)
  • Compaction on demand, and context editing except clear_thinking_20251015 with keep: "all"
  • Organizations with HIPAA readiness or Inference hooks enabled

Because a thread is append-only, you cannot summarize earlier turns inside it. To compact, start a new thread from a summary. That matters for agents that rely on automatic compaction, such as the long-running setups in Claude Managed Agents dynamic workflows.

Weekly digest3.6k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.

Data handling and privacy

Threads are not free of trade-offs on data. Anthropic says each thread is held in memory, encrypted and not written to disk, and deleted no more than 1 hour after its last use. A thread holds the conversation sent to the model, the system prompt and tools from the create request, and a fingerprint of the fixed fields. Files are held by reference, so they must stay available while the thread lives.

The docs mark the feature not ZDR eligible and not HIPAA eligible. Using it does not affect your other ZDR-eligible features, but a regulated team should check its contract before turning threads on. There is also no API to list, read or delete a thread.

Who should adopt it now

Adopt it if you run long, tool-heavy agent loops where requests regularly pass 100k tokens, you control the client, and you can write a replay path. The SDK helper already does the replay for you on thread_not_found, thread_already_continued and thread_continue_in_flight, and the SDK's beta tool runner uses a thread by default.

Wait if your conversations are short, you depend on batches or token counting, you need ZDR or HIPAA, or you use compaction heavily. Keep gains realistic: Anthropic's number is for 500k to 1M token requests, and your own distribution may sit far below that.

A practical test plan:

  1. Log TTFT per turn for a real session without threads, at several context sizes.
  2. Turn on the SDK helper with the same model and cache_control.
  3. Compare median and p90 TTFT by context bucket, and count 404 replays.
  4. Check that your cost per task did not change, as Anthropic says it should not.

For related choices on the platform side, see Claude Platform cost and performance with prompt caching and effort.

Where this fits

The pattern is not new in the industry. Stateful conversation handles let a provider keep context server-side so the client stops resending it. Anthropic's version is deliberately short-lived and best effort, with the client keeping the real state. That design avoids a hard dependency on server memory, at the price of the replay code you must write. The caution that follows is the usual one for betas: the header carries a date, the feature can change, and the unsupported list is open-ended. The docs say the API can add values to it, and that you should send the full conversation without thread if you see one you do not recognize.

FAQ recap

Message Threads cut upload and re-validation work, not tokens or price. Median TTFT fell about 35% in Anthropic's Claude Code measurements for 500k to 1M token requests. Test it on your own agent before you rely on that figure.

Related reading

  • What is gzip: why Claude Code responds sooner
  • Prompt caching and LLM cost optimization
  • Claude Code token efficiency and prompt-cache sessions
  • Sonnet 5.5 cache read price cut
  • Opus 5.5 task cost in Claude Code
  • Claude Platform cost and performance
  • Claude Managed Agents dynamic workflows

Details reflect Anthropic's announcement and documentation as of November 3, 2026. The feature is in beta and may change.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

View Yash Thakker in People in AI →

Related posts

Jul 8, 2026

Fable 5 Advisor and Orchestrator Patterns: 92% Quality at 63% Cost (July 2026)

Anthropic's @ClaudeDevs shared two Fable 5 cost patterns July 8: advisor mode (Sonnet executes, Fable steers) and orchestrator mode (Fable plans, Sonnet researches). explainx.ai maps the benchmarks, API advisor tool, and when to use each.

Oct 30, 2026

Claude Code Reportedly Blocks Recreating Existing Video Games: What Is Reported and What Is Not

Around October 27, 2026 Claude Code reportedly began receiving a server-delivered instruction against recreating existing games. A GitHub issue from a licensed board-game developer shows real effects, but Anthropic has not published the rule. Here is what is sourced and what is not.

Oct 18, 2026

What Is Gzip? Why Claude Code Now Responds 3x Sooner by Compressing Your Conversation

Anthropic says Claude Code is up to 3x faster to start responding, Claude chat and Cowork 1.5x faster and the API 1.5x faster to first token, partly because Claude Code now gzips the conversation it sends on every turn and cloud sessions start as you type. Here is what gzip is, why it helps, what the numbers measure, and what we cannot attribute to it.