Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
One change · api

Message Batches API changed

build-with-claude/batch-processing

Nearest release: v2.1.280, published under an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+49added
Lines−48removed
From line 87 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits9to this page, all time

The whole hunk

from line 87, old and new numbered
/
lines
from line 87
8787| Claude Mythos 5.1 ([limited availability](https://anthropic.com/glasswing)) | $5 / MTok | $25 / MTok |
8888| Claude Fable 5 | $5 / MTok | $25 / MTok |
8989| Claude Mythos 5 ([limited availability](https://anthropic.com/glasswing)) | $5 / MTok | $25 / MTok |
90| Claude Opus 5.5 | $2 / MTok | $10 / MTok |
9091| Claude Opus 5 | $2.50 / MTok | $12.50 / MTok |
9192| Claude Opus 4.8 | $2.50 / MTok | $12.50 / MTok |
9293| Claude Opus 4.7 | $2.50 / MTok | $12.50 / MTok |
from line 125
124125 {
125126 "custom_id": "my-first-request",
126127 "params": {
127 "model": "claude-opus-5",
128 "model": "claude-opus-5-5",
128129 "max_tokens": 1024,
129130 "messages": [
130131 {"role": "user", "content": "Hello, world"}
from line 135
134135 {
135136 "custom_id": "my-second-request",
136137 "params": {
137 "model": "claude-opus-5",
138 "model": "claude-opus-5-5",
138139 "max_tokens": 1024,
139140 "messages": [
140141 {"role": "user", "content": "Hi again, friend"}
from line 151
150151 requests:
151152 - custom_id: my-first-request
152153 params:
153 model: claude-opus-5
154 model: claude-opus-5-5
154155 max_tokens: 1024
155156 messages:
156157 - role: user
from line 158
157158 content: Hello, world
158159 - custom_id: my-second-request
159160 params:
160 model: claude-opus-5
161 model: claude-opus-5-5
161162 max_tokens: 1024
162163 messages:
163164 - role: user
from line 177
176177 Request(
177178 custom_id="my-first-request",
178179 params=MessageCreateParamsNonStreaming(
179 model="claude-opus-5",
180 model="claude-opus-5-5",
180181 max_tokens=1024,
181182 messages=[
182183 {
from line 190
189190 Request(
190191 custom_id="my-second-request",
191192 params=MessageCreateParamsNonStreaming(
192 model="claude-opus-5",
193 model="claude-opus-5-5",
193194 max_tokens=1024,
194195 messages=[
195196 {
from line 214
213214 {
214215 custom_id: "my-first-request",
215216 params: {
216 model: "claude-opus-5",
217 model: "claude-opus-5-5",
217218 max_tokens: 1024,
218219 messages: [{ role: "user", content: "Hello, world" }]
219220 }
from line 222
221222 {
222223 custom_id: "my-second-request",
223224 params: {
224 model: "claude-opus-5",
225 model: "claude-opus-5-5",
225226 max_tokens: 1024,
226227 messages: [{ role: "user", content: "Hi again, friend" }]
227228 }
from line 249
248249 CustomID = "my-first-request",
249250 Params = new()
250251 {
251 Model = Model.ClaudeOpus5,
252 Model = Model.ClaudeOpus5_5,
252253 MaxTokens = 1024,
253254 Messages =
254255 [
from line 262
261262 CustomID = "my-second-request",
262263 Params = new()
263264 {
264 Model = Model.ClaudeOpus5,
265 Model = Model.ClaudeOpus5_5,
265266 MaxTokens = 1024,
266267 Messages =
267268 [
from line 285
284285 {
285286 CustomID: "my-first-request",
286287 Params: anthropic.MessageBatchNewParamsRequestParams{
287 Model: anthropic.ModelClaudeOpus5,
288 Model: anthropic.ModelClaudeOpus5_5,
288289 MaxTokens: 1024,
289290 Messages: []anthropic.MessageParam{
290291 anthropic.NewUserMessage(
from line 297
296297 {
297298 CustomID: "my-second-request",
298299 Params: anthropic.MessageBatchNewParamsRequestParams{
299 Model: anthropic.ModelClaudeOpus5,
300 Model: anthropic.ModelClaudeOpus5_5,
300301 MaxTokens: 1024,
301302 Messages: []anthropic.MessageParam{
302303 anthropic.NewUserMessage(
from line 321
320321 .customId("my-first-request")
321322 .params(
322323 BatchCreateParams.Request.Params.builder()
323 .model(Model.CLAUDE_OPUS_5)
324 .model(Model.CLAUDE_OPUS_5_5)
324325 .maxTokens(1024)
325326 .addUserMessage("Hello, world")
326327 .build()
from line 333
332333 .customId("my-second-request")
333334 .params(
334335 BatchCreateParams.Request.Params.builder()
335 .model(Model.CLAUDE_OPUS_5)
336 .model(Model.CLAUDE_OPUS_5_5)
336337 .maxTokens(1024)
337338 .addUserMessage("Hi again, friend")
338339 .build()
from line 355
354355 [
355356 'custom_id' => 'my-first-request',
356357 'params' => [
357 'model' => 'claude-opus-5',
358 'model' => 'claude-opus-5-5',
358359 'max_tokens' => 1024,
359360 'messages' => [
360361 ['role' => 'user', 'content' => 'Hello, world']
from line 365
364365 [
365366 'custom_id' => 'my-second-request',
366367 'params' => [
367 'model' => 'claude-opus-5',
368 'model' => 'claude-opus-5-5',
368369 'max_tokens' => 1024,
369370 'messages' => [
370371 ['role' => 'user', 'content' => 'Hi again, friend']
from line 386
385386 {
386387 custom_id: "my-first-request",
387388 params: {
388 model: "claude-opus-5",
389 model: "claude-opus-5-5",
389390 max_tokens: 1024,
390391 messages: [
391392 { role: "user", content: "Hello, world" }
from line 396
395396 {
396397 custom_id: "my-second-request",
397398 params: {
398 model: "claude-opus-5",
399 model: "claude-opus-5-5",
399400 max_tokens: 1024,
400401 messages: [
401402 { role: "user", content: "Hi again, friend" }
from line 932
931932The results are in `.jsonl` format, where each line is a valid JSON object representing the result of a single request in the Message Batch. For each streamed result, you can do something different depending on its `custom_id` and result type. Here is an example set of results:
932933 
933934```jsonl .jsonl file
934{"custom_id":"my-second-request","result":{"type":"succeeded","message":{"id":"msg_014VwiXbi91y3JMjcpyGBHX5","type":"message","role":"assistant","model":"claude-opus-5","content":[{"type":"text","text":"Hello again! It's nice to see you. How can I assist you today? Is there anything specific you'd like to chat about or any questions you have?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":11,"output_tokens":36}}}}
935{"custom_id":"my-first-request","result":{"type":"succeeded","message":{"id":"msg_01FqfsLoHwgeFbguDgpz48m7","type":"message","role":"assistant","model":"claude-opus-5","content":[{"type":"text","text":"Hello! How can I assist you today? Feel free to ask me any questions or let me know if there's anything you'd like to chat about."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":10,"output_tokens":34}}}}
935{"custom_id":"my-second-request","result":{"type":"succeeded","message":{"id":"msg_014VwiXbi91y3JMjcpyGBHX5","type":"message","role":"assistant","model":"claude-opus-5-5","content":[{"type":"text","text":"Hello again! It's nice to see you. How can I assist you today? Is there anything specific you'd like to chat about or any questions you have?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":11,"output_tokens":36}}}}
936{"custom_id":"my-first-request","result":{"type":"succeeded","message":{"id":"msg_01FqfsLoHwgeFbguDgpz48m7","type":"message","role":"assistant","model":"claude-opus-5-5","content":[{"type":"text","text":"Hello! How can I assist you today? Feel free to ask me any questions or let me know if there's anything you'd like to chat about."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":10,"output_tokens":34}}}}
936937```
937938 
938939If your result has an error, its `result.error` will be set to the standard [error shape](https://platform.claude.com/docs/en/api/errors#error-shapes).
from line 1076
10751076 {
10761077 "custom_id": "my-first-request",
10771078 "params": {
1078 "model": "claude-opus-5",
1079 "model": "claude-opus-5-5",
10791080 "max_tokens": 1024,
10801081 "system": [
10811082 {
from line 1097
10961097 {
10971098 "custom_id": "my-second-request",
10981099 "params": {
1099 "model": "claude-opus-5",
1100 "model": "claude-opus-5-5",
11001101 "max_tokens": 1024,
11011102 "system": [
11021103 {
from line 1124
11231124 requests:
11241125 - custom_id: my-first-request
11251126 params:
1126 model: claude-opus-5
1127 model: claude-opus-5-5
11271128 max_tokens: 1024
11281129 system:
11291130 - type: text
from line 1141
11401141 content: Analyze the major themes in Pride and Prejudice.
11411142 - custom_id: my-second-request
11421143 params:
1143 model: claude-opus-5
1144 model: claude-opus-5-5
11441145 max_tokens: 1024
11451146 system:
11461147 - type: text
from line 1170
11691170 Request(
11701171 custom_id="my-first-request",
11711172 params=MessageCreateParamsNonStreaming(
1172 model="claude-opus-5",
1173 model="claude-opus-5-5",
11731174 max_tokens=1024,
11741175 system=[
11751176 {
from line 1194
11931194 Request(
11941195 custom_id="my-second-request",
11951196 params=MessageCreateParamsNonStreaming(
1196 model="claude-opus-5",
1197 model="claude-opus-5-5",
11971198 max_tokens=1024,
11981199 system=[
11991200 {
from line 1227
12261227 {
12271228 custom_id: "my-first-request",
12281229 params: {
1229 model: "claude-opus-5",
1230 model: "claude-opus-5-5",
12301231 max_tokens: 1024,
12311232 system: [
12321233 {
from line 1248
12471248 {
12481249 custom_id: "my-second-request",
12491250 params: {
1250 model: "claude-opus-5",
1251 model: "claude-opus-5-5",
12511252 max_tokens: 1024,
12521253 system: [
12531254 {
from line 1287
12861287 CustomID = "my-first-request",
12871288 Params = new()
12881289 {
1289 Model = Model.ClaudeOpus5,
1290 Model = Model.ClaudeOpus5_5,
12901291 MaxTokens = 1024,
12911292 System = new List<TextBlockParam>
12921293 {
from line 1312
13111312 CustomID = "my-second-request",
13121313 Params = new()
13131314 {
1314 Model = Model.ClaudeOpus5,
1315 Model = Model.ClaudeOpus5_5,
13151316 MaxTokens = 1024,
13161317 System = new List<TextBlockParam>
13171318 {
from line 1344
13431344 {
13441345 CustomID: "my-first-request",
13451346 Params: anthropic.MessageBatchNewParamsRequestParams{
1346 Model: anthropic.ModelClaudeOpus5,
1347 Model: anthropic.ModelClaudeOpus5_5,
13471348 MaxTokens: 1024,
13481349 System: []anthropic.TextBlockParam{
13491350 {
from line 1363
13621363 {
13631364 CustomID: "my-second-request",
13641365 Params: anthropic.MessageBatchNewParamsRequestParams{
1365 Model: anthropic.ModelClaudeOpus5,
1366 Model: anthropic.ModelClaudeOpus5_5,
13661367 MaxTokens: 1024,
13671368 System: []anthropic.TextBlockParam{
13681369 {
from line 1400
13991400 .customId("my-first-request")
14001401 .params(
14011402 BatchCreateParams.Request.Params.builder()
1402 .model(Model.CLAUDE_OPUS_5)
1403 .model(Model.CLAUDE_OPUS_5_5)
14031404 .maxTokens(1024)
14041405 .systemOfTextBlockParams(
14051406 List.of(
from line 1425
14241425 .customId("my-second-request")
14251426 .params(
14261427 BatchCreateParams.Request.Params.builder()
1427 .model(Model.CLAUDE_OPUS_5)
1428 .model(Model.CLAUDE_OPUS_5_5)
14281429 .maxTokens(1024)
14291430 .systemOfTextBlockParams(
14301431 List.of(
from line 1458
14571458 [
14581459 'custom_id' => 'my-first-request',
14591460 'params' => [
1460 'model' => 'claude-opus-5',
1461 'model' => 'claude-opus-5-5',
14611462 'max_tokens' => 1024,
14621463 'system' => [
14631464 [
from line 1479
14781479 [
14791480 'custom_id' => 'my-second-request',
14801481 'params' => [
1481 'model' => 'claude-opus-5',
1482 'model' => 'claude-opus-5-5',
14821483 'max_tokens' => 1024,
14831484 'system' => [
14841485 [
from line 1509
15081509 {
15091510 custom_id: "my-first-request",
15101511 params: {
1511 model: "claude-opus-5",
1512 model: "claude-opus-5-5",
15121513 max_tokens: 1024,
15131514 system: [
15141515 {
from line 1530
15291530 {
15301531 custom_id: "my-second-request",
15311532 params: {
1532 model: "claude-opus-5",
1533 model: "claude-opus-5-5",
15331534 max_tokens: 1024,
15341535 system: [
15351536 {
from line 1565
15641565 
15651566### Extended output (beta)
15661567 
1567The `output-300k-2026-03-24` beta header raises the `max_tokens` cap to 300,000 for batch requests using Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5, or Claude Sonnet 4.6. Include the header to generate outputs far longer than the standard 128k `max_tokens` limit in a single turn.
1568The `output-300k-2026-03-24` beta header raises the `max_tokens` cap to 300,000 for batch requests using Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5, or Claude Sonnet 4.6. Include the header to generate outputs far longer than the standard 128k `max_tokens` limit in a single turn.
15681569 
15691570<Note>
15701571 Extended output is available on the Message Batches API only, not the synchronous Messages API. It is supported on the Claude API and Claude Platform on AWS, and is not currently available on Amazon Bedrock, Google Cloud, or Microsoft Foundry.
from line 1588
15871588 {
15881589 "custom_id": "long-form-request",
15891590 "params": {
1590 "model": "claude-opus-5",
1591 "model": "claude-opus-5-5",
15911592 "max_tokens": 300000,
15921593 "messages": [
15931594 {"role": "user", "content": "Write a comprehensive technical guide to building distributed systems, covering architecture patterns, consistency models, fault tolerance, and operational best practices."}
from line 1604
16031604 requests:
16041605 - custom_id: long-form-request
16051606 params:
1606 model: claude-opus-5
1607 model: claude-opus-5-5
16071608 max_tokens: 300000
16081609 messages:
16091610 - role: user
from line 1627
16261627 Request(
16271628 custom_id="long-form-request",
16281629 params=MessageCreateParamsNonStreaming(
1629 model="claude-opus-5",
1630 model="claude-opus-5-5",
16301631 max_tokens=300_000,
16311632 messages=[
16321633 {
from line 1652
16511652 {
16521653 custom_id: "long-form-request",
16531654 params: {
1654 model: "claude-opus-5",
1655 model: "claude-opus-5-5",
16551656 max_tokens: 300000,
16561657 messages: [
16571658 {
from line 1687
16861687 CustomID = "long-form-request",
16871688 Params = new()
16881689 {
1689 Model = Model.ClaudeOpus5,
1690 Model = Model.ClaudeOpus5_5,
16901691 MaxTokens = 300_000,
16911692 Messages =
16921693 [
from line 1711
17101711 {
17111712 CustomID: "long-form-request",
17121713 Params: anthropic.BetaMessageBatchNewParamsRequestParams{
1713 Model: anthropic.ModelClaudeOpus5,
1714 Model: anthropic.ModelClaudeOpus5_5,
17141715 MaxTokens: 300_000,
17151716 Messages: []anthropic.BetaMessageParam{
17161717 anthropic.NewBetaUserMessage(
from line 1742
17411742 .customId("long-form-request")
17421743 .params(
17431744 BatchCreateParams.Request.Params.builder()
1744 .model(Model.CLAUDE_OPUS_5)
1745 .model(Model.CLAUDE_OPUS_5_5)
17451746 .maxTokens(300_000L)
17461747 .addUserMessage("Write a comprehensive technical guide to building distributed systems, covering architecture patterns, consistency models, fault tolerance, and operational best practices.")
17471748 .build()
from line 1766
17651766 [
17661767 'custom_id' => 'long-form-request',
17671768 'params' => [
1768 'model' => 'claude-opus-5',
1769 'model' => 'claude-opus-5-5',
17691770 'max_tokens' => 300_000,
17701771 'messages' => [
17711772 ['role' => 'user', 'content' => 'Write a comprehensive technical guide to building distributed systems, covering architecture patterns, consistency models, fault tolerance, and operational best practices.']
from line 1788
17871788 {
17881789 custom_id: "long-form-request",
17891790 params: {
1790 model: "claude-opus-5",
1791 model: "claude-opus-5-5",
17911792 max_tokens: 300_000,
17921793 messages: [
17931794 { role: "user", content: "Write a comprehensive technical guide to building distributed systems, covering architecture patterns, consistency models, fault tolerance, and operational best practices." }