curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
LLM
Create a message
POST
/
v1
/
messages
curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
Anthropic Messages APIフォーマットを使用してメッセージを作成します。テキスト、画像、PDF、ツール、拡張思考に対応しています。
認証
string
必須
Bearerトークン。APIキーをAuthorizationヘッダーのBearerトークンとして使用してください。Format:
Bearer <SUNRA_KEY>リクエスト
このエンドポイントはJSONオブジェクトを受け付けます。string
必須
プロンプトを補完するモデル。利用可能なモデルは sunra.ai/models で確認できます。
object[]
必須
入力メッセージ。各入力メッセージには
roleとcontentがあります。表示 プロパティ
表示 プロパティ
string
必須
メッセージ作成者のロール。サポートされている値:
user, assistant。string | object[]
必須
メッセージの内容。単一の文字列またはコンテンツブロックの配列を指定できます。
表示 コンテンツブロックタイプ
表示 コンテンツブロックタイプ
string
必須
コンテンツブロックのタイプ。サポートされている値:
text, image, tool_use, tool_result。string
テキストコンテンツ。typeが
textの場合に使用されます。integer
必須
停止前に生成するトークンの最大数。モデルがこの最大値に達する前に停止する場合があることにご注意ください。
string | object[]
システムプロンプト。モデルにコンテキストと指示を提供する方法です。文字列またはコンテンツブロックの配列を指定できます。
boolean
デフォルト:false
サーバー送信イベント(SSE)を使用してレスポンスをインクリメンタルにストリーミングするかどうか。
number
デフォルト:1
レスポンスに注入されるランダム性の量。0.0から1.0の範囲。分析的/多肢選択タスクには0.0に近い
temperatureを、創造的・生成的タスクには1.0に近い値を使用してください。number
核サンプリングを使用します。核サンプリングでは、後続の各トークンについて確率の降順で全オプションの累積分布を計算し、
top_pで指定された特定の確率に達した時点で打ち切ります。integer
各後続トークンについて上位K個のオプションからのみサンプリングします。確率の低い「ロングテール」レスポンスを除去するために使用されます。上級ユースケースにのみ推奨されます。
string[]
モデルの生成を停止させるカスタムテキストシーケンス。返されるテキストには停止シーケンスは含まれません。
object[]
object
object
レスポンス
メッセージの成功レスポンス。string
一意のメッセージ識別子。例:
msg_01XFDUDYJgAACzvnptvVoYEL。string
オブジェクトタイプ。常に
message。string
生成されたメッセージの会話ロール。常に
assistant。object[]
string
リクエストを処理したモデル。
string | null
モデルが停止した理由。
end_turn(モデルが自然な停止点に達した)、max_tokens(max_tokensまたはモデルの最大値を超えた)、stop_sequence(カスタム停止シーケンスの1つが生成された)、またはtool_use(モデルが1つ以上のツールを呼び出した)。string | null
どのカスタム停止シーケンスが生成されたか(該当する場合)。
object
課金およびレート制限の使用状況。3つの入力バケットは相互排他的です — トークン使用量を参照してください。
表示 プロパティ
表示 プロパティ
integer
使用された新規の入力トークン数。両方のキャッシュバケットを除きます。
integer
使用された出力トークン数。
integer
すべての入力バケットと
output_tokensの合計。streamingのレスポンスでは省略されます。integer
キャッシュエントリの作成に使用された入力トークン数。
integer
キャッシュから読み取られた入力トークン数。
curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
⌘I