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"
}
}
Crea un mensaje utilizando el formato de la API Anthropic Messages. Soporta texto, imágenes, PDFs, herramientas y pensamiento extendido.
Autenticación
string
requerido
Token Bearer. Use su clave API como token Bearer en el encabezado Authorization.Formato:
Bearer <SUNRA_KEY>Solicitud
Este endpoint espera un objeto.string
requerido
El modelo que completará su prompt. Explore los modelos disponibles en sunra.ai/models.
object[]
requerido
Mensajes de entrada. Cada mensaje de entrada tiene un
role y content.Mostrar propiedades
Mostrar propiedades
string
requerido
El rol del autor del mensaje. Valores admitidos:
user, assistant.string | object[]
requerido
El contenido del mensaje. Puede ser una cadena de texto simple o un array de bloques de contenido.
Mostrar tipos de bloques de contenido
Mostrar tipos de bloques de contenido
string
requerido
El tipo de bloque de contenido. Valores admitidos:
text, image, tool_use, tool_result.string
Contenido de texto. Usado cuando el tipo es
text.object
Fuente de la imagen. Usado cuando el tipo es
image.Mostrar propiedades
Mostrar propiedades
string
requerido
El tipo de fuente. Valores admitidos:
base64, url.string
requerido
El tipo de medio de la imagen. Por ejemplo,
image/jpeg, image/png, image/gif, image/webp.string
Datos de imagen codificados en base64. Requerido cuando el tipo de fuente es
base64.string
URL de la imagen. Requerido cuando el tipo de fuente es
url.integer
requerido
El número máximo de tokens a generar antes de detenerse. Tenga en cuenta que el modelo puede detenerse antes de alcanzar este máximo.
string | object[]
Prompt del sistema. Un prompt del sistema es una forma de proporcionar contexto e instrucciones al modelo. Puede ser una cadena de texto o un array de bloques de contenido.
boolean
predeterminado:false
Indica si la respuesta debe transmitirse de forma incremental mediante eventos server-sent (SSE).
number
predeterminado:1
Cantidad de aleatoriedad inyectada en la respuesta. Varía de 0.0 a 1.0. Use
temperature más cercana a 0.0 para tareas analíticas/de opción múltiple, y más cercana a 1.0 para tareas creativas y generativas.number
Usa muestreo por núcleo. En el muestreo por núcleo, calculamos la distribución acumulativa sobre todas las opciones para cada token siguiente en orden decreciente de probabilidad y la cortamos una vez que alcanza una probabilidad particular especificada por
top_p.integer
Solo muestrea entre las K mejores opciones para cada token siguiente. Se utiliza para eliminar respuestas de baja probabilidad de la “cola larga”. Recomendado solo para casos de uso avanzados.
string[]
Secuencias de texto personalizadas que harán que el modelo deje de generar. El texto devuelto no contendrá la secuencia de parada.
object[]
object
Cómo el modelo debe usar las herramientas proporcionadas.
object
Un objeto que describe los metadatos de la solicitud.
Mostrar propiedades
Mostrar propiedades
string
Un identificador externo para el usuario asociado con la solicitud.
object
Respuesta
Respuesta de mensaje exitosa.string
Identificador único del mensaje, por ejemplo
msg_01XFDUDYJgAACzvnptvVoYEL.string
Tipo de objeto. Siempre
message.string
Rol conversacional del mensaje generado. Siempre
assistant.object[]
Contenido generado por el modelo. Este es un array de bloques de contenido.
Mostrar propiedades
Mostrar propiedades
string
El tipo de bloque de contenido. Puede ser
text, tool_use o thinking.string
El texto generado. Presente cuando el tipo es
text.string
El ID del bloque de uso de herramienta. Presente cuando el tipo es
tool_use.string
El nombre de la herramienta. Presente cuando el tipo es
tool_use.object
La entrada de la herramienta. Presente cuando el tipo es
tool_use.string
El contenido del pensamiento. Presente cuando el tipo es
thinking.string
El modelo que procesó la solicitud.
string | null
La razón por la que el modelo dejó de generar. Puede ser
end_turn (el modelo alcanzó un punto de parada natural), max_tokens (excedió max_tokens o el máximo del modelo), stop_sequence (se generó una de sus secuencias de parada personalizadas) o tool_use (el modelo invocó una o más herramientas).string | null
Qué secuencia de parada personalizada se generó, si alguna.
object
Uso para facturación y límites de tasa. Los tres buckets de entrada son mutuamente excluyentes — consulte Uso de tokens.
Mostrar propiedades
Mostrar propiedades
integer
El número de tokens de entrada nuevos utilizados. Excluye ambos buckets de caché.
integer
El número de tokens de salida utilizados.
integer
Todos los buckets de entrada más
output_tokens. Se omite en las respuestas con streaming.integer
El número de tokens de entrada utilizados para crear la entrada de caché.
integer
El número de tokens de entrada leídos desde la caché.
string | null
Presente como
anthropic.exclusive.v1 cuando Sunra ha normalizado esta respuesta. Compruebe este valor en lugar de inferir la convención a partir de los números. Consulte Uso de tokens.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