ES ▾
Obtener clave de API

API de Character AI: Cambia tu cliente en tres líneas

Conecta tu chatbot a un LLM sin censura en minutos con nuestra API compatible con OpenAI. Esta guía te muestra cómo configurar, realizar peticiones básicas y usar streaming sin complicaciones de configuración.

https://api.characteraiapi.com/v1

Requisitos previos

Antes de escribir código, necesitas una cuenta activa en characteraiapi.com. Visita la página Obtener clave de API y regístrate solo con un correo electrónico y contraseña. No se requiere tarjeta de crédito para comenzar, y las cuentas nuevas reciben $0,50 en crédito de prueba válido por 7 días. Una vez registrado, tu clave de API se muestra inmediatamente. Mantén esta clave segura, ya que autentica todas las peticiones al endpoint. También necesitarás un SDK de un lenguaje compatible instalado en tu entorno de desarrollo. El endpoint character ai api acepta parámetros estándar de OpenAI, por lo que cualquier cliente compatible con OpenAI puede funcionar con cambios mínimos.

Instalar el SDK

Para proyectos en Python, instala el paquete oficial de OpenAI usando pip. Esta biblioteca maneja automáticamente la serialización JSON y las peticiones HTTP. Para aplicaciones en Node.js, usa npm para agregar el paquete openai. Ambas bibliotecas admiten las funciones de streaming y llamadas a herramientas descritas más adelante en esta guía. Asegúrate de que la versión de tu SDK sea lo suficientemente reciente para admitir Server-Sent Events (SSE) para streaming de tokens en tiempo real. Si usas un cliente HTTP personalizado en lugar de un SDK, debes manejar manualmente la carga útil JSON y el análisis del flujo SSE según la especificación de la API de OpenAI.

Autenticación

Toda petición a la API debe incluir tu clave de API en el encabezado Authorization. Usa el formato Bearer YOUR_API_KEY. La URL base para todas las peticiones es https://api.characteraiapi.com/v1. Al usar un SDK, configura la configuración base_url con este valor y proporciona tu clave mediante el parámetro api_key. Si pierdes tu clave o sospechas una filtración, puedes regenerarla desde el panel; la clave antigua se revocará inmediatamente. Solo se permite una clave activa por cuenta. Asegúrate de usar la URL base correcta, ya que las peticiones al endpoint estándar de OpenAI fallarán con un error 404 o 401.

Completado de chat básico

La funcionalidad principal se sirve a través del endpoint /v1/chat/completions. Envía una petición POST con un nombre de modelo de uncensored y tu historial de mensajes. El modelo responde con salida de texto sin aplicar filtros de contenido estándar para contenido adulto legal. A continuación se muestra un ejemplo de curl que demuestra una petición simple de completado de texto.

curl https://api.characteraiapi.com/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."}]
  }'

Esta petición devuelve un objeto de completado que contiene el texto generado. Puedes ajustar parámetros como temperature para controlar la aleatoriedad o max_tokens para limitar la longitud de la salida. El modelo admite una ventana de contexto de 100.000 tokens, lo que permite procesar un historial de conversación sustancial o documentos largos en una sola petición.

Respuestas en streaming

Para una mejor experiencia de usuario, habilita el streaming estableciendo stream: true en tu petición. La API devuelve Server-Sent Events (SSE) que contienen fragmentos de tokens parciales a medida que se generan. Esto reduce la latencia percibida para aplicaciones de chatbot. Usa el parámetro stream_options si deseas recibir las estadísticas de uso finales en el último evento. El streaming es particularmente útil para el roleplay de personajes en tiempo real, donde mostrar texto palabra por palabra mejora la inmersión. Asegúrate de que el código de tu cliente maneje correctamente el formato SSE para analizar cada fragmento secuencialmente.

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 de peticiones y errores

La API impone un límite de 300 peticiones por minuto por clave. Si lo excedes, recibirás un error 429 Too Many Requests. Los cuerpos de las peticiones tienen un límite de 8 MB. Los errores comunes incluyen 401 para una clave inválida o ausente, y 402 si tu crédito prepago se agota. Puedes recargar desde $10 usando criptomonedas (USDT o USDC), con créditos adicionales disponibles para depósitos más grandes. A diferencia de algunos proveedores, no hay tarifas ocultas ni bloqueos de suscripción; pagas solo por los tokens que consumes. Los precios son transparentes: $0.25 por cada 1M de tokens de entrada y $1.00 por cada 1M de tokens de salida. Asegúrate de que tu lógica de manejo de errores reintente en caso de 429 con retroceso exponencial.

from openai import OpenAI

client = OpenAI(base_url="https://api.characteraiapi.com/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.characteraiapi.com/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);

Ficha técnica de la API

Una tabla con cada límite, función y precio.

ElementoValor
Formatocompatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave
EndpointsPOST /v1/chat/completions · GET /v1/models
AutenticaciónAuthorization: Bearer YOUR_KEY
Base URLhttps://api.characteraiapi.com/v1
ID del modelouncensored
Modo JSONresponse_format: {"type": "json_object"}
Salida máximahasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte)
Parámetrostemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Ventana de contexto100.000 tokens (entrada + salida)
Streamingsí: server-sent events; el último fragmento incluye el uso de tokens
Llamadas a funcionessí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool
Tamaño de peticiónhasta 8 MB
CabecerasX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Concurrencia8 peticiones a la vez por clave
Límite de peticiones300 por minuto por clave
Caducidadel crédito pagado no caduca, sin suscripción
Bono+5 % desde $50, +10 % desde $100
RecargaUSDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500
Precio$0,25 por 1M tokens de entrada · $1,00 por 1M de salida
Facturacióncré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
Clavesuna clave activa por cuenta; una nueva reemplaza a la anterior
AccesoGoogle o correo y contraseña
Contenidocontenido adulto permitido; se rechaza el contenido sexual con menores

Códigos de error

Los errores llegan como JSON con un type fijo; las peticiones fallidas o rechazadas no se cobran.

CódigoTipoSignificado
400bad_requestJSON inválido, mensajes vacíos, parámetro incorrecto o contexto demasiado largo
401missing_key · invalid_key · key_revokedfalta la clave, es incorrecta o fue reemplazada
402no_creditsin crédito: recarga y sigue al instante
403content_blockedcontenido sexual con menores: rechazado, no se cobra
404not_foundendpoint desconocido
413request_too_largecuerpo mayor de 8 MB
429rate_limited · concurrencymás de 300/min o 8 en paralelo: espera y reintenta
503upstream_busymodelo ocupado: reintenta en unos segundos

Preguntas y respuestas

¿Es esta la API oficial de Character.ai?

No, este es un servicio independiente alojado en characteraiapi.com. Sirve su propio modelo sin censura y no está afiliado con Character.AI ni con ningún otro proveedor importante de LLM.

¿El modelo admite generación de imágenes o audio?

No. La API es solo de texto. Acepta entrada de texto y devuelve salida de texto. No admite embeddings, ajuste fino ni entradas/salidas multimodales.

¿Cómo se define 'sin censura'?

El modelo no rechaza temas adultos, ficticios o controversos legales. Solo bloquea contenido sexual que involucre menores, lo cual es un límite estricto aplicado a todas las peticiones.

Tu clave está a un formulario de distancia

Crea una cuenta, copia la clave, cambia la URL base. Eso es toda la configuración.

Obtener clave de API