Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

Resumen

Este endpoint proporciona compatibilidad nativa con la API de Anthropic Messages. Use esto para los modelos Claude con funciones como extended thinking. Este endpoint conserva el contrato nativo de Anthropic. messages debe ser un arreglo de mensajes user / assistant, system va en el campo superior system, y max_tokens es obligatorio. Si tu payload usa roles de OpenAI como system, developer o tool dentro de messages, envíalo a /v1/chat/completions.
URL base para el SDK de Anthropic: https://api.tokenlab.sh (sin el sufijo /v1)

Encabezados de la solicitud

x-api-key
string
requerido
Su API key de TokenLab. Alternativa al token Bearer.
anthropic-version
string
requerido
Versión de la API de Anthropic. Use 2023-06-01.

Cuerpo de la solicitud

model
string
requerido
ID del modelo Claude (p. ej., claude-sonnet-4-6 o claude-opus-4-6).
messages
array
requerido
Array de objetos de mensaje con role y content.
max_tokens
integer
requerido
Número máximo de tokens a generar.
system
string
Prompt del sistema (separado del array messages).
temperature
number
predeterminado:"1"
Temperatura de muestreo (0-1).
stream
boolean
predeterminado:"false"
Habilita respuestas en streaming.
thinking
object
Configuración de extended thinking (Claude Opus 4.5).
  • type (string): "enabled" para habilitarlo
  • budget_tokens (integer): Presupuesto de tokens para thinking
tools
array
Herramientas disponibles para el modelo.
tool_choice
object
Cómo debe usar las herramientas el modelo. Opciones: auto, any, tool (herramienta específica).
top_p
number
Parámetro de nucleus sampling. Use temperatura o top_p, no ambos.
top_k
integer
Muestrea solo entre las K opciones principales para cada token.
stop_sequences
array
Secuencias de parada personalizadas que harán que el modelo deje de generar.
metadata
object
Metadatos para adjuntar a la solicitud con fines de seguimiento.

Respuesta

id
string
Identificador único del mensaje.
type
string
Siempre message.
role
string
Siempre assistant.
content
array
Array de bloques de contenido (text, thinking, tool_use).
model
string
Modelo utilizado.
stop_reason
string
Por qué se detuvo la generación (end_turn, max_tokens, tool_use).
usage
object
Uso de tokens con input_tokens y output_tokens.
curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

Ejemplo de entrada de visión

Para los modelos Claude con soporte de visión, coloque las imágenes dentro de messages[].content como bloques de imagen estructurados.
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Ejemplo de Extended Thinking

message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")
```}
## Anthropic Message Batches

TokenLab ahora expone el flujo nativo de Anthropic Message Batches junto con `/v1/messages`.

Rutas disponibles:

- `POST /v1/messages/batches`
- `GET /v1/messages/batches`
- `GET /v1/messages/batches/:message_batch_id`
- `GET /v1/messages/batches/:message_batch_id/results`
- `POST /v1/messages/batches/:message_batch_id/cancel`
- `DELETE /v1/messages/batches/:message_batch_id`

Notas operativas:

- Usa la misma API key de TokenLab junto con los encabezados nativos de Anthropic.
- Si los elementos del batch hacen referencia a `file_id`, añade también `anthropic-beta: files-api-2025-04-14`.
- Los batch jobs conservan la forma nativa de solicitud/respuesta de Anthropic mientras TokenLab sigue internamente su ciclo de liquidación.