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

structured-outputs changed

build-with-claude/structured-outputs

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+68added
Lines−67removed
From line 13 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 13, old and new numbered
/
lines
from line 13
1313 - claude-fable-5
1414 - claude-mythos-5
1515 - claude-mythos-preview
16 - claude-opus-5-5
1617 - claude-opus-5
1718 - claude-opus-4-8
1819 - claude-opus-4-7
from line 77
7677 -H "x-api-key: $ANTHROPIC_API_KEY" \
7778 -H "anthropic-version: 2023-06-01" \
7879 -d '{
79 "model": "claude-opus-5",
80 "model": "claude-opus-5-5",
8081 "max_tokens": 1024,
8182 "messages": [
8283 {
from line 108
107108 ant messages create \
108109 --transform 'content.#(type=="text").text|@fromstr' \
109110 --format jsonl <<'YAML'
110 model: claude-opus-5
111 model: claude-opus-5-5
111112 max_tokens: 1024
112113 messages:
113114 - role: user
from line 135
134135 client = anthropic.Anthropic()
135136 
136137 response = client.messages.create(
137 model="claude-opus-5",
138 model="claude-opus-5-5",
138139 max_tokens=1024,
139140 messages=[
140141 {
from line 167
166167 const client = new Anthropic();
167168 
168169 const response = await client.messages.create({
169 model: "claude-opus-5",
170 model: "claude-opus-5-5",
170171 max_tokens: 1024,
171172 messages: [
172173 {
from line 210
209210 
210211 var parameters = new MessageCreateParams
211212 {
212 Model = Model.ClaudeOpus5,
213 Model = Model.ClaudeOpus5_5,
213214 MaxTokens = 1024,
214215 Messages = [new() { Role = Role.User, Content = "Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan." }],
215216 OutputConfig = new OutputConfig
from line 243
242243 
243244 response, _ := client.Messages.New(context.Background(),
244245 anthropic.MessageNewParams{
245 Model: anthropic.ModelClaudeOpus5,
246 Model: anthropic.ModelClaudeOpus5_5,
246247 MaxTokens: 1024,
247248 Messages: []anthropic.MessageParam{
248249 anthropic.NewUserMessage(
from line 287
286287 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
287288 
288289 StructuredMessageCreateParams<ContactInfo> params = MessageCreateParams.builder()
289 .model(Model.CLAUDE_OPUS_5)
290 .model(Model.CLAUDE_OPUS_5_5)
290291 .maxTokens(1024)
291292 .addUserMessage("Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan.")
292293 .outputConfig(ContactInfo.class)
from line 312
311312 'content' => 'Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan.'
312313 ]
313314 ],
314 model: 'claude-opus-5',
315 model: 'claude-opus-5-5',
315316 outputConfig: [
316317 'format' => [
317318 'type' => 'json_schema',
from line 339
338339 client = Anthropic::Client.new
339340 
340341 response = client.messages.create(
341 model: "claude-opus-5",
342 model: "claude-opus-5-5",
342343 max_tokens: 1024,
343344 messages: [
344345 {
from line 422
421422 ant messages create \
422423 --transform 'content.#(type=="text").text|@fromstr|{name,email}' \
423424 --format yaml <<'YAML'
424 model: claude-opus-5
425 model: claude-opus-5-5
425426 max_tokens: 1024
426427 messages:
427428 - role: user
from line 460
459460 client = Anthropic()
460461 
461462 response = client.messages.parse(
462 model="claude-opus-5",
463 model="claude-opus-5-5",
463464 max_tokens=1024,
464465 messages=[
465466 {
from line 488
487488 const client = new Anthropic();
488489 
489490 const response = await client.messages.parse({
490 model: "claude-opus-5",
491 model: "claude-opus-5-5",
491492 max_tokens: 1024,
492493 messages: [
493494 {
from line 513
512513 
513514 var response = await client.Messages.Create(new MessageCreateParams
514515 {
515 Model = Model.ClaudeOpus5,
516 Model = Model.ClaudeOpus5_5,
516517 MaxTokens = 1024,
517518 Messages = [new() {
518519 Role = Role.User,
from line 575
574575 schema := generateSchema(&ContactInfo{})
575576 
576577 message, _ := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
577 Model: anthropic.ModelClaudeOpus5,
578 Model: anthropic.ModelClaudeOpus5_5,
578579 MaxTokens: 1024,
579580 Messages: []anthropic.MessageParam{
580581 anthropic.NewUserMessage(anthropic.NewTextBlock(
from line 611
610611 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
611612 
612613 StructuredMessageCreateParams<ContactInfo> createParams = MessageCreateParams.builder()
613 .model(Model.CLAUDE_OPUS_5)
614 .model(Model.CLAUDE_OPUS_5_5)
614615 .maxTokens(1024)
615616 .outputConfig(ContactInfo.class)
616617 .addUserMessage("Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan and wants to schedule a demo for next Tuesday at 2pm.")
from line 646
645646 messages: [
646647 ['role' => 'user', 'content' => 'Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan and wants to schedule a demo for next Tuesday at 2pm.'],
647648 ],
648 model: 'claude-opus-5',
649 model: 'claude-opus-5-5',
649650 outputConfig: ['format' => ContactInfo::class],
650651 );
651652 
from line 667
666667 end
667668 
668669 message = client.messages.create(
669 model: "claude-opus-5",
670 model: "claude-opus-5-5",
670671 max_tokens: 1024,
671672 messages: [{
672673 role: "user",
from line 695
694695 ant messages create \
695696 --transform 'content.#(type=="text").text|@fromstr|{name,email}' \
696697 --format yaml <<'YAML'
697 model: claude-opus-5
698 model: claude-opus-5-5
698699 max_tokens: 1024
699700 messages:
700701 - role: user
from line 736
735736 plan_interest: str
736737 # ...
737738 response = client.messages.parse(
738 model="claude-opus-5",
739 model="claude-opus-5-5",
739740 max_tokens=1024,
740741 messages=[
741742 {
from line 768
767768 schema["properties"]["custom_field"] = {"type": "string"}
768769 
769770 response = client.messages.create(
770 model="claude-opus-5",
771 model="claude-opus-5-5",
771772 max_tokens=1024,
772773 messages=[{"role": "user", "content": "..."}],
773774 output_config={
from line 796
795796 const client = new Anthropic();
796797 
797798 const response = await client.messages.parse({
798 model: "claude-opus-5",
799 model: "claude-opus-5-5",
799800 max_tokens: 1024,
800801 messages: [
801802 {
from line 823
822823 const client = new Anthropic();
823824 
824825 const response = await client.messages.parse({
825 model: "claude-opus-5",
826 model: "claude-opus-5-5",
826827 max_tokens: 1024,
827828 messages: [
828829 {
from line 868
867868 
868869 var response = await client.Messages.Create(new MessageCreateParams
869870 {
870 Model = Model.ClaudeOpus5,
871 Model = Model.ClaudeOpus5_5,
871872 MaxTokens = 1024,
872873 Messages = [new() {
873874 Role = Role.User,
from line 934
933934 schema := generateSchema(&ContactInfo{})
934935 
935936 message, _ := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
936 Model: anthropic.ModelClaudeOpus5,
937 Model: anthropic.ModelClaudeOpus5_5,
937938 MaxTokens: 1024,
938939 Messages: []anthropic.MessageParam{
939940 anthropic.NewUserMessage(anthropic.NewTextBlock(
from line 981
980981 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
981982 
982983 StructuredMessageCreateParams<ContactInfo> createParams = MessageCreateParams.builder()
983 .model(Model.CLAUDE_OPUS_5)
984 .model(Model.CLAUDE_OPUS_5_5)
984985 .maxTokens(1024)
985986 .outputConfig(ContactInfo.class)
986987 .addUserMessage("Extract contact info: John Smith, [email protected], interested in the Pro plan")
from line 1021
10201021 
10211022 void main() {
10221023 StructuredMessageCreateParams<BookList> createParams = MessageCreateParams.builder()
1023 .model(Model.CLAUDE_OPUS_5)
1024 .model(Model.CLAUDE_OPUS_5_5)
10241025 .maxTokens(2048)
10251026 .outputConfig(BookList.class, JsonSchemaLocalValidation.NO)
10261027 .addUserMessage("List some famous late twentieth century novels.")
from line 1204
12031204 .build();
12041205 
12051206 MessageCreateParams createParams = MessageCreateParams.builder()
1206 .model(Model.CLAUDE_OPUS_5)
1207 .model(Model.CLAUDE_OPUS_5_5)
12071208 .maxTokens(1024)
12081209 .outputConfig(outputConfig)
12091210 .addUserMessage(
from line 1248
12471248 messages: [
12481249 ['role' => 'user', 'content' => 'Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan.'],
12491250 ],
1250 model: 'claude-opus-5',
1251 model: 'claude-opus-5-5',
12511252 outputConfig: ['format' => ContactInfo::class],
12521253 );
12531254 
from line 1320
13191320 messages: [
13201321 ['role' => 'user', 'content' => 'Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan.'],
13211322 ],
1322 model: 'claude-opus-5',
1323 model: 'claude-opus-5-5',
13231324 outputConfig: OutputConfig::with(format: JSONOutputFormat::with(schema: [
13241325 'type' => 'object',
13251326 'properties' => [
from line 1355
13541355 client = Anthropic::Client.new
13551356 
13561357 message = client.messages.create(
1357 model: "claude-opus-5",
1358 model: "claude-opus-5-5",
13581359 max_tokens: 1024,
13591360 messages: [
13601361 {
from line 1389
13881389 end
13891390 
13901391 message = client.messages.create(
1391 model: "claude-opus-5",
1392 model: "claude-opus-5-5",
13921393 max_tokens: 1024,
13931394 messages: [{role: "user", content: "give me some famous numbers"}],
13941395 output_config: {format: Output}
from line 1429
14281429 -H "x-api-key: $ANTHROPIC_API_KEY" \
14291430 -H "anthropic-version: 2023-06-01" \
14301431 -d '{
1431 "model": "claude-opus-5",
1432 "model": "claude-opus-5-5",
14321433 "max_tokens": 4096,
14331434 "messages": [
14341435 {
from line 1464
14631464 ant messages create \
14641465 --transform 'content.#(type=="text").text|@fromstr' \
14651466 --format jsonl <<'YAML'
1466 model: claude-opus-5
1467 model: claude-opus-5-5
14671468 max_tokens: 4096
14681469 messages:
14691470 - role: user
from line 1503
15021503 invoice_text = "Invoice #12345, Date: 2024-01-15, Total: $500.00"
15031504 
15041505 response = client.messages.parse(
1505 model="claude-opus-5",
1506 model="claude-opus-5-5",
15061507 max_tokens=4096,
15071508 output_format=Invoice,
15081509 messages=[
from line 1530
15291530 
15301531 const invoiceText = "Invoice #12345, Date: 2024-01-15, Total: $500.00";
15311532 const response = await client.messages.parse({
1532 model: "claude-opus-5",
1533 model: "claude-opus-5-5",
15331534 max_tokens: 4096,
15341535 output_config: { format: zodOutputFormat(InvoiceSchema) },
15351536 messages: [{ role: "user", content: `Extract invoice data from: ${invoiceText}` }]
from line 1545
15441545 
15451546 var parameters = new MessageCreateParams
15461547 {
1547 Model = Model.ClaudeOpus5,
1548 Model = Model.ClaudeOpus5_5,
15481549 MaxTokens = 4096,
15491550 OutputConfig = new OutputConfig
15501551 {
from line 1613
16121613 }
16131614 
16141615 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1615 Model: anthropic.ModelClaudeOpus5,
1616 Model: anthropic.ModelClaudeOpus5_5,
16161617 MaxTokens: 4096,
16171618 OutputConfig: anthropic.OutputConfigParam{
16181619 Format: anthropic.JSONOutputFormatParam{
from line 1672
16711672 String invoiceText = "Invoice #12345, Date: 2024-01-15, Total: $500.00";
16721673 
16731674 StructuredMessageCreateParams<Invoice> params = MessageCreateParams.builder()
1674 .model(Model.CLAUDE_OPUS_5)
1675 .model(Model.CLAUDE_OPUS_5_5)
16751676 .maxTokens(4096L)
16761677 .outputConfig(Invoice.class)
16771678 .addUserMessage("Extract invoice data from: " + invoiceText)
from line 1710
17091710 messages: [
17101711 ['role' => 'user', 'content' => "Extract invoice data from: $invoiceText"]
17111712 ],
1712 model: 'claude-opus-5',
1713 model: 'claude-opus-5-5',
17131714 outputConfig: ['format' => Invoice::class],
17141715 );
17151716 
from line 1739
17381739 invoice_text = "Invoice #12345, Date: 2024-01-15, Total: $500.00"
17391740 
17401741 message = client.messages.create(
1741 model: "claude-opus-5",
1742 model: "claude-opus-5-5",
17421743 max_tokens: 4096,
17431744 output_config: {format: Invoice},
17441745 messages: [
from line 1763
17621763 -H "x-api-key: $ANTHROPIC_API_KEY" \
17631764 -H "anthropic-version: 2023-06-01" \
17641765 -d '{
1765 "model": "claude-opus-5",
1766 "model": "claude-opus-5-5",
17661767 "max_tokens": 1024,
17671768 "messages": [
17681769 {
from line 1794
17931794 ant messages create \
17941795 --transform 'content.#(type=="text").text|@fromstr' \
17951796 --format jsonl <<'YAML'
1796 model: claude-opus-5
1797 model: claude-opus-5-5
17971798 max_tokens: 1024
17981799 messages:
17991800 - role: user
from line 1839
18381839 
18391840 feedback_text = "Great product, but the delivery was slow."
18401841 response = client.messages.parse(
1841 model="claude-opus-5",
1842 model="claude-opus-5-5",
18421843 max_tokens=1024,
18431844 output_format=Classification,
18441845 messages=[{"role": "user", "content": f"Classify this feedback: {feedback_text}"}],
from line 1863
18621863 
18631864 const feedbackText = "Great product, but the delivery was slow.";
18641865 const response = await client.messages.parse({
1865 model: "claude-opus-5",
1866 model: "claude-opus-5-5",
18661867 max_tokens: 1024,
18671868 output_config: { format: zodOutputFormat(ClassificationSchema) },
18681869 messages: [{ role: "user", content: `Classify this feedback: ${feedbackText}` }]
from line 1877
18761877 
18771878 var parameters = new MessageCreateParams
18781879 {
1879 Model = Model.ClaudeOpus5,
1880 Model = Model.ClaudeOpus5_5,
18801881 MaxTokens = 1024,
18811882 Messages = [new() { Role = Role.User, Content = $"Classify this feedback: {feedbackText}" }],
18821883 OutputConfig = new OutputConfig
from line 1921
19201921 }
19211922 
19221923 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1923 Model: anthropic.ModelClaudeOpus5,
1924 Model: anthropic.ModelClaudeOpus5_5,
19241925 MaxTokens: 1024,
19251926 OutputConfig: anthropic.OutputConfigParam{
19261927 Format: anthropic.JSONOutputFormatParam{
from line 1968
19671968 String feedbackText = "Great product, fast shipping!";
19681969 
19691970 StructuredMessageCreateParams<Classification> params = MessageCreateParams.builder()
1970 .model(Model.CLAUDE_OPUS_5)
1971 .model(Model.CLAUDE_OPUS_5_5)
19711972 .maxTokens(1024L)
19721973 .outputConfig(Classification.class)
19731974 .addUserMessage("Classify this feedback: " + feedbackText)
from line 2005
20042005 messages: [
20052006 ['role' => 'user', 'content' => "Classify this feedback: {$feedbackText}"]
20062007 ],
2007 model: 'claude-opus-5',
2008 model: 'claude-opus-5-5',
20082009 outputConfig: ['format' => Classification::class],
20092010 );
20102011 
from line 2028
20272028 feedback_text = "Great product, fast shipping!"
20282029 
20292030 message = client.messages.create(
2030 model: "claude-opus-5",
2031 model: "claude-opus-5-5",
20312032 max_tokens: 1024,
20322033 output_config: {format: Classification},
20332034 messages: [
from line 2050
20492050 -H "x-api-key: $ANTHROPIC_API_KEY" \
20502051 -H "anthropic-version: 2023-06-01" \
20512052 -d '{
2052 "model": "claude-opus-5",
2053 "model": "claude-opus-5-5",
20532054 "max_tokens": 1024,
20542055 "messages": [
20552056 {
from line 2084
20832084 ant messages create \
20842085 --transform 'content.#(type=="text").text' \
20852086 --raw-output <<'YAML'
2086 model: claude-opus-5
2087 model: claude-opus-5-5
20872088 max_tokens: 1024
20882089 output_config:
20892090 format:
from line 2130
21292130 
21302131 
21312132 response = client.messages.parse(
2132 model="claude-opus-5",
2133 model="claude-opus-5-5",
21332134 max_tokens=1024,
21342135 output_format=APIResponse,
21352136 messages=[{"role": "user", "content": "Process this request: ..."}],
from line 2153
21522153 });
21532154 
21542155 const response = await client.messages.parse({
2155 model: "claude-opus-5",
2156 model: "claude-opus-5-5",
21562157 max_tokens: 1024,
21572158 output_config: { format: zodOutputFormat(APIResponseSchema) },
21582159 messages: [{ role: "user", content: "Process this request..." }]
from line 2165
21642165 ```csharp C#
21652166 var parameters = new MessageCreateParams
21662167 {
2167 Model = Model.ClaudeOpus5,
2168 Model = Model.ClaudeOpus5_5,
21682169 MaxTokens = 1024,
21692170 Messages = [new() { Role = Role.User, Content = "Process this request: ..." }],
21702171 OutputConfig = new OutputConfig
from line 2201
22002201 client := anthropic.NewClient()
22012202 
22022203 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
2203 Model: anthropic.ModelClaudeOpus5,
2204 Model: anthropic.ModelClaudeOpus5_5,
22042205 MaxTokens: 1024,
22052206 OutputConfig: anthropic.OutputConfigParam{
22062207 Format: anthropic.JSONOutputFormatParam{
from line 2292
22912292 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
22922293 
22932294 StructuredMessageCreateParams<APIResponse> params = MessageCreateParams.builder()
2294 .model(Model.CLAUDE_OPUS_5)
2295 .model(Model.CLAUDE_OPUS_5_5)
22952296 .maxTokens(1024L)
22962297 .outputConfig(APIResponse.class)
22972298 .addUserMessage("Process this request: ...")
from line 2335
23342335 messages: [
23352336 ['role' => 'user', 'content' => 'Process this request: ...']
23362337 ],
2337 model: 'claude-opus-5',
2338 model: 'claude-opus-5-5',
23382339 outputConfig: ['format' => APIResponse::class],
23392340 );
23402341 
from line 2369
23682369 end
23692370 
23702371 message = client.messages.create(
2371 model: "claude-opus-5",
2372 model: "claude-opus-5-5",
23722373 max_tokens: 1024,
23732374 output_config: {format: APIResponse},
23742375 messages: [
from line 2402
24012402 -H "x-api-key: $ANTHROPIC_API_KEY" \
24022403 -H "anthropic-version: 2023-06-01" \
24032404 -d '{
2404 "model": "claude-opus-5",
2405 "model": "claude-opus-5-5",
24052406 "max_tokens": 1024,
24062407 "messages": [
24072408 {
from line 2444
24432444 
24442445 ```bash CLI
24452446 ant messages create <<'YAML'
2446 model: claude-opus-5
2447 model: claude-opus-5-5
24472448 max_tokens: 1024
24482449 messages:
24492450 - role: user
from line 2483
24822483 
24832484 ```python Python
24842485 response = client.messages.create(
2485 model="claude-opus-5",
2486 model="claude-opus-5-5",
24862487 max_tokens=1024,
24872488 messages=[
24882489 {
from line 2529
25282529 
25292530 ```typescript TypeScript
25302531 const response = await client.messages.create({
2531 model: "claude-opus-5",
2532 model: "claude-opus-5-5",
25322533 max_tokens: 1024,
25332534 messages: [{ role: "user", content: "Help me plan a trip to Paris departing May 15, 2026" }],
25342535 // JSON outputs: structured response format
from line 2583
25822583 ```csharp C#
25832584 var parameters = new MessageCreateParams
25842585 {
2585 Model = Model.ClaudeOpus5,
2586 Model = Model.ClaudeOpus5_5,
25862587 MaxTokens = 1024,
25872588 Messages = [new() { Role = Role.User, Content = "Help me plan a trip to Paris departing May 15, 2026" }],
25882589 // JSON outputs: structured response format
from line 2633
26322633 client := anthropic.NewClient()
26332634 
26342635 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
2635 Model: anthropic.ModelClaudeOpus5,
2636 Model: anthropic.ModelClaudeOpus5_5,
26362637 MaxTokens: 1024,
26372638 Messages: []anthropic.MessageParam{
26382639 anthropic.NewUserMessage(anthropic.NewTextBlock("Help me plan a trip to Paris departing May 15, 2026")),
from line 2700
26992700 .build();
27002701 
27012702 MessageCreateParams params = MessageCreateParams.builder()
2702 .model(Model.CLAUDE_OPUS_5)
2703 .model(Model.CLAUDE_OPUS_5_5)
27032704 .maxTokens(1024L)
27042705 .addUserMessage("Help me plan a trip to Paris departing May 15, 2026")
27052706 .outputConfig(OutputConfig.builder()
from line 2738
27372738 messages: [
27382739 ['role' => 'user', 'content' => 'Help me plan a trip to Paris departing May 15, 2026']
27392740 ],
2740 model: 'claude-opus-5',
2741 model: 'claude-opus-5-5',
27412742 // JSON outputs: structured response format
27422743 outputConfig: ['format' => TripPlan::class],
27432744 // Strict tool use: guaranteed tool parameters
from line 2772
27712772 client = Anthropic::Client.new
27722773 
27732774 message = client.messages.create(
2774 model: "claude-opus-5",
2775 model: "claude-opus-5-5",
27752776 max_tokens: 1024,
27762777 messages: [
27772778 {role: "user", content: "Help me plan a trip to Paris departing May 15, 2026"}