# Claude Sonnet 5 — /chat/completions

Chat completions compatibles con OpenAI con Anthropic Claude Sonnet 5: calidad cercana a Opus en programación y agentes a la velocidad de Sonnet, con razonamiento adaptativo, entrada de imágenes, uso de herramientas, caché de prompts y streaming. Indica model como claude-sonnet-5. Nota: este modelo deja obsoletos temperature / top_p / top_k en el upstream; la pasarela los descarta sin avisar (sin error) y el muestreo usa los valores por defecto del modelo. Para controlar la profundidad del razonamiento usa reasoning_effort (low / medium / high / xhigh / max).

**Endpoint:** `POST https://nezhagate.com/v1/chat/completions`

## Autenticación
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Cuerpo de la petición
| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `model` | string | Sí | ID del modelo; aquí claude-sonnet-5. |
| `messages` | array | Sí | Array de mensajes; cada uno tiene role (system/user/assistant) y content. content puede ser una cadena o un array de partes {type:text} y {type:image_url} para comprensión de imágenes (multimodal/visión). |
| `stream` | boolean | No | Devuelve la respuesta en streaming como SSE. Por defecto false. |
| `temperature` | number | No | No soportado. Este modelo ha retirado los parámetros de muestreo; la pasarela descarta temperature / top_p / top_k en silencio (sin error) y el muestreo usa el valor por defecto del modelo. Usa reasoning_effort para cambiar profundidad de razonamiento por velocidad. |
| `max_tokens` | integer | No | Número máximo de tokens a generar. |
| `web_search` | boolean | No | Ponlo en true para activar la búsqueda web: la pasarela amplía el prompt con resultados en tiempo real (citando las fuentes) antes de que el modelo responda. También se puede activar con una entrada {"type":"web_search"} en tools. |
| `reasoning_effort` | string | No | Esfuerzo de razonamiento: low / medium / high / xhigh / max. Cuanto más alto, más profundo, lento y caro: los tokens de razonamiento se facturan a la tarifa de salida dentro de usage.completion_tokens. Si lo omites, el modelo decide de forma adaptativa. La pasarela lo traduce al output_config.effort nativo del modelo; en el endpoint nativo de Anthropic puedes enviar output_config tú mismo. La forma con sufijo también funciona (p. ej. claude-opus-5-high) y se factura exactamente igual que el modelo base. |

## Ejemplo de petición
```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "claude-sonnet-5", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
```

## Respuesta
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {"index": 0, "message": {"role": "assistant", "content": "Hello!"}, "finish_reason": "stop"}
  ],
  "usage": {"prompt_tokens": 11, "completion_tokens": 7, "total_tokens": 18}
}
```

## Entrada de imagen (visión)
Pon una imagen en el array content del mensaje y el modelo la analizará (preguntas sobre la imagen, lectura de texto / OCR, etc.). image_url acepta un enlace público a la imagen o un data URL en base64 (data:image/png;base64,...). Disponible en los modelos multimodales (gpt-5.5, la serie gemini, etc.).

```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "claude-sonnet-5", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```