Requisitos previos
Para usar la API apertus, necesitas una cuenta y una clave de API. Regístrate con Google o correo electrónico en la página Obtener clave de API. Recibes una clave de inmediato; no se requiere número de teléfono. Si quieres probar primero, cada cuenta nueva recibe $0,50 en crédito de prueba válido por 7 días. No se necesita tarjeta para la prueba. Para producción, recarga con criptomonedas (USDT en TRC20 o USDC en Base). El crédito no caduca y los errores no consumen saldo. Tienes una clave activa por cuenta; generar una nueva reemplaza a la anterior. Mantén tu clave segura y pásala en el encabezado Authorization como token bearer. La API es estrictamente de texto y sirve un único modelo sin censura optimizado para responder sin rechazos por contenido.
URL base y autenticación
Envía todas las peticiones a https://api.apertus.cc/v1. Esta URL base funciona con los SDK oficiales de OpenAI y cualquier cliente compatible simplemente cambiando el endpoint. Incluye tu clave de API en el encabezado: Authorization: Bearer YOUR_API_KEY. El único endpoint admitido es POST /v1/chat/completions. También está disponible el endpoint GET /v1/models para verificar la conectividad. El ID del modelo a usar es uncensored. Este es un modelo de pesos abiertos que se ejecuta en nuestros servidores, distinto de GPT, Claude u otros proveedores. Maneja entrada de texto y devuelve salida de texto. No esperes embeddings, imágenes ni audio. La API está diseñada para desarrolladores que buscan una integración directa sin la complejidad del enrutamiento de modelos.
Primera petición
Envía una petición básica de generación para verificar tu configuración. Usa el comando curl para hacer un POST al endpoint de chat completions. Establece el modelo en uncensored e incluye un mensaje simple. Esto confirma que tu clave de API funciona y que la URL base es correcta. Puedes ajustar parámetros como temperature o max_tokens según sea necesario. La respuesta contendrá el texto generado por el modelo. Si recibes un error 401, verifica tu clave. Un error 402 indica que tienes crédito insuficiente. Un error 429 significa que has alcanzado el límite de peticiones. Esta petición simple demuestra el acceso directo a la API sin middleware. Es la forma más rápida de validar tu integración antes de construir lógica más compleja.
Integración con Python
Usa el SDK oficial de Python openai para interactuar con la API. Inicializa el cliente con la URL base https://api.apertus.cc/v1 y tu clave de API. Establece el modelo en uncensored. Envía mensajes como una lista de diccionarios. El SDK maneja la serialización y el análisis de errores automáticamente. Este enfoque es ideal para servicios backend o scripts de procesamiento de datos. Puedes transmitir respuestas o obtener bloques completos. El código del cliente es idéntico al que usarías para OpenAI, solo que con una URL base diferente. Esto reduce la fricción al cambiar de otros proveedores. Asegúrate de tener la versión más reciente del SDK para la mejor compatibilidad. La integración es mínima, requiriendo solo cambios de configuración en tu configuración de cliente existente.
Integración con Node.js
Para entornos JavaScript o TypeScript, usa el paquete npm openai. Configura el cliente con la misma URL base y clave que en Python. Llama a chat.completions.create() con el modelo uncensored. Pasa tus mensajes en el formato estándar. Esto funciona bien para funciones serverless o backends de Node.js. El SDK gestiona las peticiones HTTP y el análisis de respuestas. Puedes manejar errores de forma elegante verificando el estado de la respuesta. El código sigue siendo portátil entre diferentes servicios compatibles con OpenAI. Esto facilita cambiar de proveedor si es necesario. La integración con Node.js admite patrones tanto sincrónicos como asíncronos. Úsalo para construir APIs, bots o flujos de trabajo automatizados que requieran generación de texto sin censura.
Respuestas en streaming
Habilita el streaming estableciendo stream: true en tu petición. La API devuelve fragmentos de texto a medida que se generan. Esto mejora la latencia percibida para respuestas largas. Cada fragmento contiene parte de la finalización. El fragmento final incluye estadísticas de uso de tokens. El streaming es compatible mediante Server-Sent Events (SSE). Usa las utilidades de streaming del SDK para procesar fragmentos de manera eficiente. Esto es útil para interfaces de chat o aplicaciones en tiempo real. Ten en cuenta que el streaming consume los mismos tokens que el no streaming. Los errores pueden ocurrir durante el streaming, así que gestiona las interrupciones. El modelo sin censura admite streaming de forma predeterminada. Esta función te permite mostrar texto de forma incremental. Es una función estándar en las APIs de LLM modernas. Asegúrate de que el código de tu cliente maneje correctamente las respuestas parciales.
Límites, errores y contexto
La ventana de contexto es de 100.000 tokens en total, incluyendo prompt y finalización. La salida máxima es de 32.000 tokens por petición, o 2.048 si max_tokens no está establecido. Los límites de velocidad son de 300 peticiones por minuto y 8 peticiones simultáneas por clave. Los cuerpos de las peticiones deben ser inferiores a 8 MB. Los errores comunes incluyen 401 para claves no válidas, 402 por falta de crédito y 429 por límites de velocidad. El modelo rechaza contenido sexual que involucre menores. No rechaza otros temas adultos, ficticios o controversos legales. La tarificación es transparente: $0,25 por 1M de tokens de entrada y $1,00 por 1M de tokens de salida. Los errores son gratuitos. El crédito es prepago y no caduca. Usa estos límites para planificar la escala de tu aplicación. La API está diseñada para generación de texto de alto volumen y rentable.
cURL
curl https://api.apertus.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.apertus.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apertus.cc/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);Streaming
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)