Class MessageCreateParams.Builder
-
- All Implemented Interfaces:
public final class MessageCreateParams.BuilderA builder for MessageCreateParams.
-
-
Method Summary
-
-
Method Detail
-
betas
final MessageCreateParams.Builder betas(List<AnthropicBeta> betas)
Optional header to specify the beta version(s) you want to use.
-
betas
final MessageCreateParams.Builder betas(Optional<List<AnthropicBeta>> betas)
Alias for calling Builder.betas with
betas.orElse(null).
-
addBeta
final MessageCreateParams.Builder addBeta(AnthropicBeta beta)
Adds a single AnthropicBeta to betas.
-
addBeta
final MessageCreateParams.Builder addBeta(String value)
Sets addBeta to an arbitrary String.
You should usually call addBeta with a well-typed AnthropicBeta constant instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
body
final MessageCreateParams.Builder body(MessageCreateParams.Body body)
Sets the entire request body.
This is generally only useful if you are already constructing the body separately. Otherwise, it's more convenient to use the top-level setters instead:
-
maxTokens
final MessageCreateParams.Builder maxTokens(Long maxTokens)
The maximum number of tokens to generate before stopping.
Note that our models may stop before reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate.
Different models have different maximum values for this parameter. See models for details.
-
maxTokens
final MessageCreateParams.Builder maxTokens(JsonField<Long> maxTokens)
Sets Builder.maxTokens to an arbitrary JSON value.
You should usually call Builder.maxTokens with a well-typed Long value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
messages
final MessageCreateParams.Builder messages(List<BetaMessageParam> messages)
Input messages.
Our models are trained to operate on alternating
userandassistantconversational turns. When creating a newMessage, you specify the prior conversational turns with themessagesparameter, and the model then generates the nextMessagein the conversation. Consecutiveuserorassistantturns in your request will be combined into a single turn.Each input message must be an object with a
roleandcontent. You can specify a singleuser-role message, or you can include multipleuserandassistantmessages.If the final message uses the
assistantrole, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response.Example with a single
usermessage:[{ "role": "user", "content": "Hello, Claude" }]Example with multiple conversational turns:
[ { "role": "user", "content": "Hello there." }, { "role": "assistant", "content": "Hi, I'm Claude. How can I help you?" }, { "role": "user", "content": "Can you explain LLMs in plain English?" } ]Example with a partially-filled response from Claude:
[ { "role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun" }, { "role": "assistant", "content": "The best answer is (" } ]Each input message
contentmay be either a singlestringor an array of content blocks, where each block has a specifictype. Using astringforcontentis shorthand for an array of one content block of type"text". The following input messages are equivalent:{ "role": "user", "content": "Hello, Claude" }{ "role": "user", "content": [{ "type": "text", "text": "Hello, Claude" }] }Starting with Claude 3 models, you can also send image content blocks:
{ "role": "user", "content": [ { "type": "image", "source": { "type": "base64", "media_type": "image/jpeg", "data": "/9j/4AAQSkZJRg..." } }, { "type": "text", "text": "What is in this image?" } ] }We currently support the
base64source type for images, and theimage/jpeg,image/png,image/gif, andimage/webpmedia types.See examples for more input examples.
Note that if you want to include a system prompt, you can use the top-level
systemparameter — there is no"system"role for input messages in the Messages API.There is a limit of 100000 messages in a single request.
-
messages
final MessageCreateParams.Builder messages(JsonField<List<BetaMessageParam>> messages)
Sets Builder.messages to an arbitrary JSON value.
You should usually call Builder.messages with a well-typed
List<BetaMessageParam>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addMessage
final MessageCreateParams.Builder addMessage(BetaMessageParam message)
Adds a single BetaMessageParam to messages.
-
addMessage
final MessageCreateParams.Builder addMessage(BetaMessage message)
Alias for calling addMessage with
message.toParam().
-
addUserMessage
final MessageCreateParams.Builder addUserMessage(BetaMessageParam.Content content)
Alias for calling addMessage with the following:
BetaMessageParam.builder() .role(BetaMessageParam.Role.USER) .content(content) .build()
-
addUserMessage
final MessageCreateParams.Builder addUserMessage(String string)
Alias for calling addUserMessage with
BetaMessageParam.Content.ofString(string).
-
addUserMessageOfBetaContentBlockParams
final MessageCreateParams.Builder addUserMessageOfBetaContentBlockParams(List<BetaContentBlockParam> betaContentBlockParams)
Alias for calling addUserMessage with
BetaMessageParam.Content.ofBetaContentBlockParams(betaContentBlockParams).
-
addAssistantMessage
final MessageCreateParams.Builder addAssistantMessage(BetaMessageParam.Content content)
Alias for calling addMessage with the following:
BetaMessageParam.builder() .role(BetaMessageParam.Role.ASSISTANT) .content(content) .build()
-
addAssistantMessage
final MessageCreateParams.Builder addAssistantMessage(String string)
Alias for calling addAssistantMessage with
BetaMessageParam.Content.ofString(string).
-
addAssistantMessageOfBetaContentBlockParams
final MessageCreateParams.Builder addAssistantMessageOfBetaContentBlockParams(List<BetaContentBlockParam> betaContentBlockParams)
Alias for calling addAssistantMessage with
BetaMessageParam.Content.ofBetaContentBlockParams(betaContentBlockParams).
-
model
final MessageCreateParams.Builder model(Model model)
The model that will complete your prompt.\n\nSee models for additional details and options.
-
model
final MessageCreateParams.Builder model(JsonField<Model> model)
Sets Builder.model to an arbitrary JSON value.
You should usually call Builder.model with a well-typed Model value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
model
final MessageCreateParams.Builder model(String value)
Sets model to an arbitrary String.
You should usually call model with a well-typed Model constant instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
container
final MessageCreateParams.Builder container(String container)
Container identifier for reuse across requests.
-
container
final MessageCreateParams.Builder container(Optional<String> container)
Alias for calling Builder.container with
container.orElse(null).
-
container
final MessageCreateParams.Builder container(JsonField<String> container)
Sets Builder.container to an arbitrary JSON value.
You should usually call Builder.container with a well-typed String value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
mcpServers
final MessageCreateParams.Builder mcpServers(List<BetaRequestMcpServerUrlDefinition> mcpServers)
MCP servers to be utilized in this request
-
mcpServers
final MessageCreateParams.Builder mcpServers(JsonField<List<BetaRequestMcpServerUrlDefinition>> mcpServers)
Sets Builder.mcpServers to an arbitrary JSON value.
You should usually call Builder.mcpServers with a well-typed
List<BetaRequestMcpServerUrlDefinition>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addMcpServer
final MessageCreateParams.Builder addMcpServer(BetaRequestMcpServerUrlDefinition mcpServer)
Adds a single BetaRequestMcpServerUrlDefinition to mcpServers.
-
metadata
final MessageCreateParams.Builder metadata(BetaMetadata metadata)
An object describing metadata about the request.
-
metadata
final MessageCreateParams.Builder metadata(JsonField<BetaMetadata> metadata)
Sets Builder.metadata to an arbitrary JSON value.
You should usually call Builder.metadata with a well-typed BetaMetadata value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
serviceTier
final MessageCreateParams.Builder serviceTier(MessageCreateParams.ServiceTier serviceTier)
Determines whether to use priority capacity (if available) or standard capacity for this request.
Anthropic offers different levels of service for your API requests. See service-tiers for details.
-
serviceTier
final MessageCreateParams.Builder serviceTier(JsonField<MessageCreateParams.ServiceTier> serviceTier)
Sets Builder.serviceTier to an arbitrary JSON value.
You should usually call Builder.serviceTier with a well-typed ServiceTier value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
stopSequences
final MessageCreateParams.Builder stopSequences(List<String> stopSequences)
Custom text sequences that will cause the model to stop generating.
Our models will normally stop when they have naturally completed their turn, which will result in a response
stop_reasonof"end_turn".If you want the model to stop generating when it encounters custom strings of text, you can use the
stop_sequencesparameter. If the model encounters one of the custom sequences, the responsestop_reasonvalue will be"stop_sequence"and the responsestop_sequencevalue will contain the matched stop sequence.
-
stopSequences
final MessageCreateParams.Builder stopSequences(JsonField<List<String>> stopSequences)
Sets Builder.stopSequences to an arbitrary JSON value.
You should usually call Builder.stopSequences with a well-typed
List<String>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addStopSequence
final MessageCreateParams.Builder addStopSequence(String stopSequence)
Adds a single String to stopSequences.
-
system
final MessageCreateParams.Builder system(MessageCreateParams.System system)
System prompt.
A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our guide to system prompts.
-
system
final MessageCreateParams.Builder system(JsonField<MessageCreateParams.System> system)
Sets Builder.system to an arbitrary JSON value.
You should usually call Builder.system with a well-typed System value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
system
final MessageCreateParams.Builder system(String string)
Alias for calling system with
System.ofString(string).
-
systemOfBetaTextBlockParams
final MessageCreateParams.Builder systemOfBetaTextBlockParams(List<BetaTextBlockParam> betaTextBlockParams)
Alias for calling system with
System.ofBetaTextBlockParams(betaTextBlockParams).
-
temperature
final MessageCreateParams.Builder temperature(Double temperature)
Amount of randomness injected into the response.
Defaults to
1.0. Ranges from0.0to1.0. Usetemperaturecloser to0.0for analytical / multiple choice, and closer to1.0for creative and generative tasks.Note that even with
temperatureof0.0, the results will not be fully deterministic.
-
temperature
final MessageCreateParams.Builder temperature(JsonField<Double> temperature)
Sets Builder.temperature to an arbitrary JSON value.
You should usually call Builder.temperature with a well-typed Double value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
thinking
final MessageCreateParams.Builder thinking(BetaThinkingConfigParam thinking)
Configuration for enabling Claude's extended thinking.
When enabled, responses include
thinkingcontent blocks showing Claude's thinking process before the final answer. Requires a minimum budget of 1,024 tokens and counts towards yourmax_tokenslimit.See extended thinking for details.
-
thinking
final MessageCreateParams.Builder thinking(JsonField<BetaThinkingConfigParam> thinking)
Sets Builder.thinking to an arbitrary JSON value.
You should usually call Builder.thinking with a well-typed BetaThinkingConfigParam value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
thinking
final MessageCreateParams.Builder thinking(BetaThinkingConfigEnabled enabled)
Alias for calling thinking with
BetaThinkingConfigParam.ofEnabled(enabled).
-
thinking
final MessageCreateParams.Builder thinking(BetaThinkingConfigDisabled disabled)
Alias for calling thinking with
BetaThinkingConfigParam.ofDisabled(disabled).
-
enabledThinking
final MessageCreateParams.Builder enabledThinking(Long budgetTokens)
Alias for calling thinking with the following:
BetaThinkingConfigEnabled.builder() .budgetTokens(budgetTokens) .build()
-
toolChoice
final MessageCreateParams.Builder toolChoice(BetaToolChoice toolChoice)
How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
-
toolChoice
final MessageCreateParams.Builder toolChoice(JsonField<BetaToolChoice> toolChoice)
Sets Builder.toolChoice to an arbitrary JSON value.
You should usually call Builder.toolChoice with a well-typed BetaToolChoice value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
toolChoice
final MessageCreateParams.Builder toolChoice(BetaToolChoiceAuto auto)
Alias for calling toolChoice with
BetaToolChoice.ofAuto(auto).
-
toolChoice
final MessageCreateParams.Builder toolChoice(BetaToolChoiceAny any)
Alias for calling toolChoice with
BetaToolChoice.ofAny(any).
-
toolChoice
final MessageCreateParams.Builder toolChoice(BetaToolChoiceTool tool)
Alias for calling toolChoice with
BetaToolChoice.ofTool(tool).
-
toolChoice
final MessageCreateParams.Builder toolChoice(BetaToolChoiceNone none)
Alias for calling toolChoice with
BetaToolChoice.ofNone(none).
-
toolToolChoice
final MessageCreateParams.Builder toolToolChoice(String name)
Alias for calling toolChoice with the following:
BetaToolChoiceTool.builder() .name(name) .build()
-
tools
final MessageCreateParams.Builder tools(List<BetaToolUnion> tools)
Definitions of tools that the model may use.
If you include
toolsin your API request, the model may returntool_usecontent blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model usingtool_resultcontent blocks.Each tool definition includes:
name: Name of the tool.description: Optional, but strongly-recommended description of the tool.input_schema: JSON schema for the toolinputshape that the model will produce intool_useoutput content blocks.
For example, if you defined
toolsas:[ { "name": "get_stock_price", "description": "Get the current stock price for a given ticker symbol.", "input_schema": { "type": "object", "properties": { "ticker": { "type": "string", "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." } }, "required": ["ticker"] } } ]And then asked the model "What's the S&P 500 at today?", the model might produce
tool_usecontent blocks in the response like this:[ { "type": "tool_use", "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", "name": "get_stock_price", "input": { "ticker": "^GSPC" } } ]You might then run your
get_stock_pricetool with{"ticker": "^GSPC"}as an input, and return the following back to the model in a subsequentusermessage:[ { "type": "tool_result", "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", "content": "259.75 USD" } ]Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output.
See our guide for more details.
-
tools
final MessageCreateParams.Builder tools(JsonField<List<BetaToolUnion>> tools)
Sets Builder.tools to an arbitrary JSON value.
You should usually call Builder.tools with a well-typed
List<BetaToolUnion>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addTool
final MessageCreateParams.Builder addTool(BetaToolUnion tool)
Adds a single BetaToolUnion to tools.
-
addTool
final MessageCreateParams.Builder addTool(BetaTool betaTool)
Alias for calling addTool with
BetaToolUnion.ofBetaTool(betaTool).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolComputerUse20241022 computerUse20241022)
Alias for calling addTool with
BetaToolUnion.ofComputerUse20241022(computerUse20241022).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolBash20241022 bash20241022)
Alias for calling addTool with
BetaToolUnion.ofBash20241022(bash20241022).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolTextEditor20241022 textEditor20241022)
Alias for calling addTool with
BetaToolUnion.ofTextEditor20241022(textEditor20241022).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolComputerUse20250124 computerUse20250124)
Alias for calling addTool with
BetaToolUnion.ofComputerUse20250124(computerUse20250124).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolBash20250124 bash20250124)
Alias for calling addTool with
BetaToolUnion.ofBash20250124(bash20250124).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolTextEditor20250124 textEditor20250124)
Alias for calling addTool with
BetaToolUnion.ofTextEditor20250124(textEditor20250124).
-
addTool
final MessageCreateParams.Builder addTool(BetaToolTextEditor20250429 textEditor20250429)
Alias for calling addTool with
BetaToolUnion.ofTextEditor20250429(textEditor20250429).
-
addTool
final MessageCreateParams.Builder addTool(BetaWebSearchTool20250305 webSearchTool20250305)
Alias for calling addTool with
BetaToolUnion.ofWebSearchTool20250305(webSearchTool20250305).
-
addTool
final MessageCreateParams.Builder addTool(BetaCodeExecutionTool20250522 codeExecutionTool20250522)
Alias for calling addTool with
BetaToolUnion.ofCodeExecutionTool20250522(codeExecutionTool20250522).
-
topK
final MessageCreateParams.Builder topK(Long topK)
Only sample from the top K options for each subsequent token.
Used to remove "long tail" low probability responses. Learn more technical details here.
Recommended for advanced use cases only. You usually only need to use
temperature.
-
topK
final MessageCreateParams.Builder topK(JsonField<Long> topK)
Sets Builder.topK to an arbitrary JSON value.
You should usually call Builder.topK with a well-typed Long value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
topP
final MessageCreateParams.Builder topP(Double topP)
Use nucleus sampling.
In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by
top_p. You should either altertemperatureortop_p, but not both.Recommended for advanced use cases only. You usually only need to use
temperature.
-
topP
final MessageCreateParams.Builder topP(JsonField<Double> topP)
Sets Builder.topP to an arbitrary JSON value.
You should usually call Builder.topP with a well-typed Double value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
additionalBodyProperties
final MessageCreateParams.Builder additionalBodyProperties(Map<String, JsonValue> additionalBodyProperties)
-
putAdditionalBodyProperty
final MessageCreateParams.Builder putAdditionalBodyProperty(String key, JsonValue value)
-
putAllAdditionalBodyProperties
final MessageCreateParams.Builder putAllAdditionalBodyProperties(Map<String, JsonValue> additionalBodyProperties)
-
removeAdditionalBodyProperty
final MessageCreateParams.Builder removeAdditionalBodyProperty(String key)
-
removeAllAdditionalBodyProperties
final MessageCreateParams.Builder removeAllAdditionalBodyProperties(Set<String> keys)
-
additionalHeaders
final MessageCreateParams.Builder additionalHeaders(Headers additionalHeaders)
-
additionalHeaders
final MessageCreateParams.Builder additionalHeaders(Map<String, Iterable<String>> additionalHeaders)
-
putAdditionalHeader
final MessageCreateParams.Builder putAdditionalHeader(String name, String value)
-
putAdditionalHeaders
final MessageCreateParams.Builder putAdditionalHeaders(String name, Iterable<String> values)
-
putAllAdditionalHeaders
final MessageCreateParams.Builder putAllAdditionalHeaders(Headers additionalHeaders)
-
putAllAdditionalHeaders
final MessageCreateParams.Builder putAllAdditionalHeaders(Map<String, Iterable<String>> additionalHeaders)
-
replaceAdditionalHeaders
final MessageCreateParams.Builder replaceAdditionalHeaders(String name, String value)
-
replaceAdditionalHeaders
final MessageCreateParams.Builder replaceAdditionalHeaders(String name, Iterable<String> values)
-
replaceAllAdditionalHeaders
final MessageCreateParams.Builder replaceAllAdditionalHeaders(Headers additionalHeaders)
-
replaceAllAdditionalHeaders
final MessageCreateParams.Builder replaceAllAdditionalHeaders(Map<String, Iterable<String>> additionalHeaders)
-
removeAdditionalHeaders
final MessageCreateParams.Builder removeAdditionalHeaders(String name)
-
removeAllAdditionalHeaders
final MessageCreateParams.Builder removeAllAdditionalHeaders(Set<String> names)
-
additionalQueryParams
final MessageCreateParams.Builder additionalQueryParams(QueryParams additionalQueryParams)
-
additionalQueryParams
final MessageCreateParams.Builder additionalQueryParams(Map<String, Iterable<String>> additionalQueryParams)
-
putAdditionalQueryParam
final MessageCreateParams.Builder putAdditionalQueryParam(String key, String value)
-
putAdditionalQueryParams
final MessageCreateParams.Builder putAdditionalQueryParams(String key, Iterable<String> values)
-
putAllAdditionalQueryParams
final MessageCreateParams.Builder putAllAdditionalQueryParams(QueryParams additionalQueryParams)
-
putAllAdditionalQueryParams
final MessageCreateParams.Builder putAllAdditionalQueryParams(Map<String, Iterable<String>> additionalQueryParams)
-
replaceAdditionalQueryParams
final MessageCreateParams.Builder replaceAdditionalQueryParams(String key, String value)
-
replaceAdditionalQueryParams
final MessageCreateParams.Builder replaceAdditionalQueryParams(String key, Iterable<String> values)
-
replaceAllAdditionalQueryParams
final MessageCreateParams.Builder replaceAllAdditionalQueryParams(QueryParams additionalQueryParams)
-
replaceAllAdditionalQueryParams
final MessageCreateParams.Builder replaceAllAdditionalQueryParams(Map<String, Iterable<String>> additionalQueryParams)
-
removeAdditionalQueryParams
final MessageCreateParams.Builder removeAdditionalQueryParams(String key)
-
removeAllAdditionalQueryParams
final MessageCreateParams.Builder removeAllAdditionalQueryParams(Set<String> keys)
-
build
final MessageCreateParams build()
Returns an immutable instance of MessageCreateParams.
Further updates to this Builder will not mutate the returned instance.
The following fields are required:
.maxTokens() .messages() .model()
-
-
-
-