Primera petición en cinco minutos
Conecta tu cliente compatible con OpenAI a nuestra API sin censura en segundos. Esta guía rápida cubre la configuración base, peticiones estándar, streaming y uso de herramientas con el modelo 'sin censura'.
URL base y autenticación
Apunta tu SDK de OpenAI o cualquier cliente compatible a nuestra URL base. No necesitas una biblioteca específica; cualquier herramienta que acepte una clave de API estándar funciona aquí. Obtén tu clave desde el panel después de iniciar sesión con Google o correo electrónico. La clave se muestra inmediatamente y es la única credencial necesaria para todas las peticiones.
Configura la URL base en https://api.ollamaapi.top/v1. Usa el ID de modelo uncensored para todas las completaciones de chat. Este modelo es de pesos abiertos, ajustado para tener menos rechazos, y es distinto de los modelos de los principales proveedores. No es GPT, Claude ni ningún otro modelo propietario. La autenticación depende únicamente del encabezado token Bearer.
Primera petición
Envía una petición estándar de completación de chat para probar la conectividad. El endpoint acepta cargas útiles JSON con messages, model y parámetros opcionales como temperature o max_tokens. El ID del modelo es siempre uncensored. Las respuestas devuelven JSON estructurado que incluye el contenido del asistente y métricas de uso de tokens.
Si la petición tiene éxito, recibirás una respuesta 200 OK. Si falla la autenticación, obtendrás un error 401. Si no tienes fondos, obtendrás un error 402. Estos errores son gratuitos, por lo que solo pagas por el uso de tokens con éxito. Usa esta muestra para verificar tu configuración antes de integrarla en tu aplicación.
curl https://api.ollamaapi.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
SDK Python
Usa la biblioteca oficial de Python de OpenAI o cualquier cliente compatible. Inicializa el cliente con tu URL base y clave de API. Establece el modelo en uncensored. Pasa tus mensajes como una lista de diccionarios que contengan role y content. La biblioteca maneja la serialización y el análisis de respuestas automáticamente.
Se admiten respuestas en streaming mediante el parámetro stream. Esto te permite procesar tokens a medida que se generan, lo cual es útil para salidas largas o actualizaciones de interfaz de usuario en tiempo real. El último fragmento contiene el uso total de tokens para facturación. Asegúrate de manejar las excepciones de forma adecuada, ya que los errores de red no generan cargos.
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamaapi.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
SDK Node
Instala el paquete npm openai o usa cualquier envoltorio basado en fetch. Configura el cliente con la URL base https://api.ollamaapi.top/v1 y tu clave de API. El ID del modelo sigue siendo uncensored. Pasa el cuerpo de la petición con messages y configuraciones opcionales como top_p o seed.
Los usuarios de Node.js pueden aprovechar los patrones async/await para un código limpio. El objeto de respuesta incluye choices, usage y id. Puedes extraer el mensaje del asistente de la primera opción. El manejo de errores debe tener en cuenta los límites de velocidad (429) y el crédito insuficiente (402). Estos errores no consumen tokens, por lo que tu saldo prepago permanece intacto hasta que se genere una respuesta exitosa.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamaapi.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Respuestas en streaming
Habilita el streaming estableciendo stream: true en tu petición. La API devuelve un flujo de Server-Sent Events (SSE). Cada fragmento contiene contenido parcial, lo que te permite mostrar tokens a medida que se generan. Esto reduce la latencia percibida para los usuarios y mejora la experiencia para la generación de texto largo.
El último fragmento del flujo incluye los datos completos de uso de tokens. Puedes usar esto para rastrear el consumo en tiempo real. Ten en cuenta que el streaming no cambia el modelo de precios; sigues pagando por 1M de tokens de entrada y salida. Los errores durante el streaming también son gratuitos. Si la conexión se interrumpe, puedes reanudar o reiniciar la petición sin penalización.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Límites, errores y contexto
La ventana de contexto es de 100.000 tokens en total, incluyendo tanto prompt como completion. La salida máxima por petición es de 32.000 tokens (2.048 si max_tokens no está establecido). Si excedes la ventana de contexto, la petición falla. Los errores incluyen 401 para claves inválidas, 402 para crédito insuficiente y 429 para límites de velocidad. El límite de peticiones es de 300 por minuto y 8 peticiones simultáneas por clave. Los cuerpos de las peticiones están limitados a 8 MB. Los errores son gratuitos, lo que significa que no pagas por peticiones fallidas o rechazos. El crédito no caduca y no se requiere suscripción.
Ficha técnica de la API
Una tabla con cada límite, función y precio.
| Elemento | Valor |
|---|---|
| Formato | compatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave |
| Base URL | https://api.ollamaapi.top/v1 |
| Autenticación | Authorization: Bearer YOUR_KEY |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| ID del modelo | uncensored |
| Salida máxima | hasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte) |
| Modo JSON | response_format: {"type": "json_object"} |
| Parámetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Llamadas a funciones | sí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool |
| Streaming | sí: server-sent events; el último fragmento incluye el uso de tokens |
| Ventana de contexto | 100.000 tokens (entrada + salida) |
| Límite de peticiones | 300 por minuto por clave |
| Concurrencia | 8 peticiones a la vez por clave |
| Cabeceras | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Tamaño de petición | hasta 8 MB |
| Bono | +5 % desde $50, +10 % desde $100 |
| Caducidad | el crédito pagado no caduca, sin suscripción |
| Facturación | crédito prepago por uso real; errores y rechazos no se cobran |
| Prueba gratis | $0,50 durante 7 días, sin tarjeta · Clave de prueba: 2 solicitudes paralelas, 60 por minuto; límites completos (8 y 300) tras la primera recarga |
| Precio | $0,25 por 1M tokens de entrada · $1,00 por 1M de salida |
| Recarga | USDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500 |
| Acceso | Google o correo y contraseña |
| Claves | una clave activa por cuenta; una nueva reemplaza a la anterior |
| Contenido | contenido adulto permitido; se rechaza el contenido sexual con menores |
Errores y qué hacer
Los errores llegan como JSON con un type fijo; las peticiones fallidas o rechazadas no se cobran.
| Código | Tipo | Significado |
|---|---|---|
400 | bad_request | JSON inválido, mensajes vacíos, parámetro incorrecto o contexto demasiado largo |
401 | missing_key · invalid_key · key_revoked | falta la clave, es incorrecta o fue reemplazada |
402 | no_credit | sin crédito: recarga y sigue al instante |
403 | content_blocked | contenido sexual con menores: rechazado, no se cobra |
404 | not_found | endpoint desconocido |
413 | request_too_large | cuerpo mayor de 8 MB |
429 | rate_limited · concurrency | más de 300/min o 8 en paralelo: espera y reintenta |
503 | upstream_busy | modelo ocupado: reintenta en unos segundos |
Preguntas y respuestas
¿Esta API admite llamadas a funciones?
Sí, la API admite llamadas a funciones mediante los parámetros <code>tools</code> y <code>tool_choice</code>. Puedes definir herramientas en tu petición y el modelo devolverá JSON estructurado para su uso. Esta función es compatible con todos los clientes estándar compatibles con OpenAI.
¿Qué ocurre si excedo la ventana de contexto?
Si el total de tokens (prompt + completion) supera 100.000, la petición fallará con un error. Este error es gratuito, por lo que no se te cobra por el intento. Puedes ajustar el parámetro <code>max_tokens</code> o acortar tu prompt para mantenerte dentro de los límites.
¿Se puede reutilizar el crédito de prueba?
No, el crédito de prueba de $0,50 es válido por 7 días y solo se puede usar una vez por cuenta. No caduca tras su uso, pero si no se usa, se pierde después de 7 días. No se requiere tarjeta de crédito para obtener el crédito de prueba.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave y cambia la URL base. Esa es toda la configuración.
Obtener clave de API