OneProvider

Visión

Envía imágenes a Claude por /v1/messages en base64 o como URL. Formato de la solicitud, tipos de archivo admitidos, límites de tamaño y qué modelo elegir.

Todos los modelos de Claude aceptan imágenes. Pásalas en línea como base64 o como URL dentro de un bloque de contenido image.

Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA: https://oneprovider.dev/docs/llms.txt

Bloque de contenido de imagen

Combina bloques de texto y de imagen dentro del mismo arreglo content. El modelo los trata como un único flujo ordenado.

json
{
"model": "claude-sonnet-5-5",
"max_tokens": 512,
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image in one sentence." },
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAA..."
}
}
]
}
]
}

Origen por URL

La API también acepta una URL HTTPS pública: descargamos la imagen en el servidor y se la pasamos al modelo.

json
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/diagram.png"
}
}

Formatos y límites

  • Tipos de medio: image/jpeg, image/png, image/gif, image/webp.
  • Hasta 20 imágenes por solicitud y 5 MB por imagen antes de codificar en base64.
  • Los GIF animados se decodifican al primer fotograma.
  • Los tokens de visión se facturan como tokens de entrada: una imagen típica de 1024×1024 ocupa unos 1600 tokens.

Python (archivo → base64)

python
import base64, mimetypes
from anthropic import Anthropic
client = Anthropic(base_url="https://api.oneprovider.dev")
def encode_image(path: str):
with open(path, "rb") as f:
data = base64.standard_b64encode(f.read()).decode("ascii")
return {
"type": "base64",
"media_type": mimetypes.guess_type(path)[0] or "image/png",
"data": data,
}
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=512,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this screenshot?"},
{"type": "image", "source": encode_image("./screen.png")},
],
}],
)
print(msg.content[0].text)

Elegir un modelo para visión

  • OCR y texto denso: claude-opus-5-5 cuando la precisión importa más que el costo.
  • Descripción de objetos y escenas: claude-sonnet-5-5 como opción equilibrada por defecto.
  • Diagramas simples y capturas de interfaz: claude-haiku-5-5 para procesamiento por lotes de bajo costo; pasa los casos complejos a Sonnet u Opus.
Sin generación de imágenes La visión es solo de entrada. Claude no genera imágenes en este endpoint. Si necesitas generar imágenes, combina OneProvider con otro proveedor (Replicate, fal.ai, OpenAI): ambas API pueden convivir en la misma app.

Respuestas rápidas

¿Qué base URL uso?

Claude Code y los SDK de Anthropic usan https://api.oneprovider.dev. Los SDK de OpenAI y los clientes compatibles con OpenAI usan https://api.oneprovider.dev/v1. Una misma clave funciona con ambas; la lista de modelos está en la página de modelos y las tarifas, en la página de precios .

¿Cómo me autentico?

Envía la clave sk-… tal cual en x-api-key o en Authorization: Bearer: en uno de los dos, nunca en ambos. Guarda la clave en una variable de entorno, no en un archivo que se suba al repositorio. Más sobre la autenticación .

¿Dónde obtengo una clave?

Abre tu panel en el bot de Telegram @oneprovider_robot o en app.oneprovider.dev, recarga el saldo y pulsa “Emitir una clave”. Cada clave puede tener su propio límite de gasto. Panel y claves de API .

¿Qué significan 401, 404 y 429?

401: falta la clave, está mal escrita o se envió en un encabezado equivocado; pega la clave completa, sin comillas ni espacios. 404: casi siempre es una base URL incorrecta, por ejemplo con /v1 ausente o duplicado. 429 con “Insufficient balance”: se agotó el saldo del panel o el límite de gasto de la clave, así que recarga en lugar de reintentar; cualquier otro 429 es un límite de frecuencia, así que espera según Retry-After. Detalles: códigos de error y solución de problemas .

¿Por qué se cortan o se reinician los streams?

Las VPN y los proxies VLESS suelen almacenar SSE en búfer o romper la negociación de HTTP/2. OneProvider no tiene restricciones regionales y no almacena los streams en búfer: desactiva el proxy y reintenta.

¿Dónde pregunto si esto no basta?

Escribe a @Oneproviderhelpbot en Telegram o abre “Soporte” en el panel web, con el código de estado HTTP y el mensaje de error exacto. Cómo funciona el soporte .

Última actualización: 2026-11-08 ¿Encontraste un error? @Oneproviderhelpbot