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(사용자 정의 중단 시퀀스 중 하나가 생성됨), 또는 tool_use(모델이 하나 이상의 도구를 호출함)일 수 있습니다.string | null
생성된 사용자 정의 중단 시퀀스(해당하는 경우).
object
청구 및 속도 제한 사용량. 세 가지 입력 버킷은 상호 배타적입니다 — 토큰 사용량을 참고하세요.
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