CATCH #2267
DETECTED OCT 23, 2026 13:21 UTC
THE CATCHscore 10/10
EXHIBIT 2267 · FLASH
Oct 23, 2026 13:21 UTC
pypi
anthropic
Anthropic's latest SDK v2.2.0 hints at new 'claude-opus-4-8' and 'claude-haiku-4-5' model IDs, alongside 'beta.messages.thread()' and 'beta.messages.tool_runner()' features, and new analytics endpoints.
READY TO POST:
anthropic just dropped v2.2.0 of their python sdk and it's got some juicy hints: new model ids like 'claude-opus-4-8' and 'claude-haiku-4-5' surfaced. maybe some new models are on the way?
looks like anthropic is gearing up for new messaging features with 'beta.messages.thread()' and 'beta.messages.tool_runner()' showing up in their latest sdk. also, new analytics endpoints are in there too!
EVIDENCE — the receipts
anthropic 2.1.0 -> 2.2.0: +406 strings, -691 strings, 145 interesting
[model_id] (2)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state = BetaFallbackState()
with state:
message = client.beta.messages.create(**params)
+ python
with client.messages.stream(
model="claude-haiku-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
[feature_flag] (14)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state = BetaFallbackState()
with state:
message = client.beta.messages.create(**params)
+ /v1/organizations/analytics/cost?beta=true
+ /v1/organizations/analytics/usage?beta=true
+ Message threads are not available on this client; use `client.beta.messages.create()` with the full `messages` instead
+ Start a thread on `client` with the arguments of `client.beta.messages.thread()`. Sends nothing.
+ The arguments of a `client.beta.messages.thread()` call for the whole conversation, in a new dict.
+ beta.messages.thread()
+ beta.messages.tool_runner()
+ client.beta.messages.thread()
+ client.beta.messages.thread(...)
+ client.beta.messages.tool_runner()
+ py
with client.beta.messages.stream(...) as stream:
for chunk in stream:
...
+ py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
+ with the threads beta appended to a caller-set
[endpoint] (6)
+ /v1/organizations/analytics/cost?beta=true
+ /v1/organizations/analytics/usage?beta=true
+ /v1/organizations/analytics/cost
+ /v1/organizations/analytics/usage
+ GET /v1/organizations/analytics/cost
+ GET /v1/organizations/analytics/usage
[sentence] (134)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state =
caught by the 20-minute sweep ·
the live wire · all receipts