ES ▾
2026-10-30gptsemfiltro.comuncensored
Gptsemfiltro

API LLM sin censura, compatible con OpenAI

Obtén tu clave

Documentación de la API de ChatGPT: Referencia rápida y primeros llamados

La mayoría de las APIs de chat comparten el formato de petición que popularizó la API de ChatGPT. Esta página es una referencia breve para el endpoint compatible en este sitio, con ejemplos para copiar y pegar.

Libro de referencia abierto que se despliega en mosaicos de endpoints conectados y un cubo de servidor, para documentación de API

Resumen

  1. URL base https://api.gptsemfiltro.com/v1, autenticación con token bearer, ID del modelo uncensored.
  2. Tres métodos: completados de chat, respuestas y la lista de modelos; el saldo tiene sus propios endpoints.
  3. Se admite streaming, llamadas a funciones y modo JSON; el contexto es de 100.000 tokens.
  4. Los errores 429 llevan un código: rate_limited o concurrency.

Qué cubre esta página

Si buscabas documentación de la API de chatgpt, quizás prefieras la documentación propia de OpenAI para sus propios modelos. Esta página es otra cosa: una referencia práctica para una API compatible con OpenAI alojada en este sitio. Ejecuta un único modelo de pesos abiertos, uncensored, ajustado para responder sin rechazos de contenido para uso adulto lícito. No es la API oficial de OpenAI ni de ningún otro proveedor.

Las formas de petición y respuesta siguen el formato familiar de OpenAI, por lo que los SDK oficiales y la mayoría de las herramientas funcionan después de cambiar la URL base y la clave. La referencia completa está en la documentación de la API; esta página te da la versión rápida con ejemplos que puedes ejecutar.

Conceptos básicos de conexión y una primera llamada

Conceptos básicos de conexión

ÍtemValor
URL basehttps://api.gptsemfiltro.com/v1
AutenticaciónAuthorization: Bearer YOUR_KEY
ID del modelouncensored
Endpoint de chatPOST /v1/chat/completions
Endpoint de respuestasPOST /v1/responses
Lista de modelosGET /v1/models
SaldoGET /v1/balance o GET /v1/dashboard/billing/credit_grants
Cuerpo de petición máximo8 MB
Ventana de contexto100,000 tokens, prompt más respuesta

Obtén una clave en la página de clave de API. Los nuevos usuarios pueden reclamar un crédito de prueba de $0,50 con un solo clic; es válido por 7 días y no requiere pago. Puedes regenerar una clave en cualquier momento, y las cuentas que hayan recargado pueden tener hasta 5 claves, etiquetarlas y revocar cualquiera.

Tu primera llamada

curl https://api.gptsemfiltro.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "system", "content": "You answer in plain language."},
      {"role": "user", "content": "What is a context window?"}
    ],
    "temperature": 0.7
  }'
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You answer in plain language."},
        {"role": "user", "content": "What is a context window?"},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

La respuesta contiene choices[0].message.content y un objeto usage con los recuentos de tokens del prompt y la completación.

Parámetros de la petición

Los parámetros que usarás más:

No disponible: generación de imágenes, audio o video, embeddings y ajuste fino. El servicio maneja solo texto.

Los roles funcionan como en el formato de OpenAI. Un mensaje system establece el comportamiento para toda la conversación, los mensajes user contienen la entrada del usuario, los mensajes assistant contienen respuestas anteriores y los mensajes tool devuelven resultados de funciones. La API no conserva memoria entre llamadas, por lo que cada petición debe incluir el historial que deseas que vea el modelo. El prompt y la respuesta comparten la ventana de 100 000 tokens, lo que significa que un historial largo deja menos espacio para la respuesta.

Streaming, llamadas a funciones y modo JSON

Transmisión

Establece stream a true y lee los eventos a medida que llegan. Cada fragmento tiene un pequeño delta de texto, y el uso llega al final.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.gptsemfiltro.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "List five uses of a context window." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Una petición en streaming mantiene su espacio de concurrencia hasta que finaliza el flujo, así que cierra los flujos que ya no necesites.

Llamadas a herramientas y modo JSON

Declara funciones con tools. Cuando el modelo quiera una, la respuesta tendrá tool_calls en lugar de texto. Ejecutas la función y envías el resultado de vuelta como un mensaje con role: "tool".

import json
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

messages = [{"role": "user", "content": "What is the weather in Lisbon?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]

messages.append(first.choices[0].message)
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps({"city": "Lisbon", "temp_c": 21}),
})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)

En producción, verifica que exista tool_calls antes de leerlo, ya que el modelo puede responder en texto plano. Para salida estructurada sin herramientas, añade "response_format": {"type": "json_object"} y indica en el prompt que quieres JSON.

Límites, errores y cabeceras

LímiteClave completaClave de prueba
Peticiones simultáneas82
Peticiones por minuto30060
Tamaño del cuerpo8 MB8 MB

Al superar un límite, la API devuelve HTTP 429. El código de error rate_limited significa demasiadas peticiones por minuto; concurrency significa demasiadas a la vez. En sobrecarga temporal también obtienes 429, con una cabecera Retry-After: 5. Las peticiones fallidas o rechazadas no se cobran.

Cabeceras de respuesta útiles: X-Request-Id (cítala al contactar con soporte), X-Balance-USD, X-RateLimit-Limit-Requests y X-RateLimit-Limit-Concurrency.

Un pequeño auxiliar de reintento en Node que espera Retry-After y aumenta el retraso en cada intento:

async function chat(messages, tries = 4) {
  for (let n = 0; n < tries; n++) {
    const res = await fetch("https://api.gptsemfiltro.com/v1/chat/completions", {
      method: "POST",
      headers: {
        "Authorization": "Bearer " + process.env.API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ model: "uncensored", messages: messages }),
    });
    if (res.status === 429) {
      const wait = Number(res.headers.get("Retry-After") || 5);
      await new Promise(function (r) { setTimeout(r, wait * 1000 * (n + 1)); });
      continue;
    }
    return res.json();
  }
  throw new Error("still rate limited");
}

Mover código existente y verificar tu saldo

Mover código existente a este endpoint

Si tu código ya llama a un endpoint de chat estilo OpenAI, la migración es pequeña. Cambia estos tres valores y deja el resto:

  1. La URL base se convierte en https://api.gptsemfiltro.com/v1.
  2. La clave se convierte en la de la página de claves de API.
  3. El modelo se convierte en uncensored.

Luego verifica en qué depende tu código. Todo lo basado en texto y con forma de chat se traslada: prompts de sistema, historial, streaming, llamadas a funciones y modo JSON. Cualquier otra cosa no existe aquí. No hay generación de imágenes, ni audio o video, ni embeddings ni ajuste fino, por lo que el código que llama a esas rutas necesita otro proveedor.

El endpoint de respuestas también está disponible, para clientes que prefieran ese formato:

curl https://api.gptsemfiltro.com/v1/responses \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "uncensored", "input": "Summarise what a context window is in one sentence."}'

Pruébalo antes de lanzarlo, porque diferentes modelos se comportan de manera distinta con el mismo prompt. Los rechazos, el tono y la longitud pueden cambiar, así que vuelve a ejecutar los prompts que te interesen.

Comprobación de tu saldo desde código

El saldo está disponible de tres formas. Cada respuesta incluye el encabezado X-Balance-USD. También puedes llamar a GET /v1/balance o a la ruta estilo OpenAI GET /v1/dashboard/billing/credit_grants, que algunos paneles ya saben leer.

curl https://api.gptsemfiltro.com/v1/balance \
  -H "Authorization: Bearer YOUR_KEY"

Un patrón útil es leer el encabezado después de cada llamada, guardarlo y alertar cuando cae por debajo de un umbral que tú elijas. Como el crédito es prepago y no caduca, un saldo bajo es una señal para recargar, no una fecha límite.

Resumen de precios

El coste de entrada es de $0,15 por 1M de tokens y el de salida de $0,50 por 1M de tokens, descontados del crédito prepago. Ejemplo: 3.000 tokens de entrada y 600 de salida cuestan 3.000 x $0,15 / 1M + 600 x $0,50 / 1M = $0,00045 + $0,0003 = $0,00075. Las recargas son importes enteros de $20 a $500 con bonificaciones de +5% desde $50, +10% desde $100 y +15% desde $200, pagados en USDT (TRC20) o USDC (Base). Más detalles en la página de precios. Los prompts no se usan para entrenamiento.

Lista de comprobación para solucionar problemas en una primera integración

La mayoría de los fallos en las primeras llamadas provienen de una lista corta de causas. Revísalas en orden antes de sospechar del servicio.

  1. Estado 401. La clave falta o está mal escrita. Imprime el encabezado que realmente envía tu cliente y compáralo con Authorization: Bearer YOUR_KEY. Si la clave se pegó en un lugar público, regénerala en la página de clave de API; la clave antigua deja de funcionar de inmediato.
  2. Estado 404. La ruta es incorrecta. La base URL termina en /v1, y el SDK añade /chat/completions por sí mismo. Si llamas a la API con HTTP plano, escribe la ruta completa.
  3. Un error sobre el modelo. El único ID de modelo es uncensored. Un nombre copiado de la documentación de otro proveedor no coincidirá. GET /v1/models lista lo que la clave puede usar.
  4. Una petición muy grande falla. El límite del cuerpo es de 8 MB. Es mejor recortar o resumir los historiales largos mucho antes de que se acerquen a ese tamaño, y la ventana de 100 000 tokens se comparte entre el prompt y la completación de todos modos.
  5. 429 intermitentes. Lee el código de error. concurrency significa demasiadas llamadas a la vez, así que reduce tu cantidad de workers. rate_limited significa demasiadas por minuto. Un encabezado Retry-After: 5 significa sobrecarga temporal, y una espera corta lo soluciona.
  6. Respuestas cortadas. Si configuras max_tokens, la respuesta se detiene ahí y finish_reason lee length. Aumenta el límite o elimínalo.

Guarda el valor X-Request-Id de cualquier llamada que no puedas explicar. Es la forma más rápida de señalar una petición exacta cuando escribes a soporte.

Preguntas frecuentes

¿Es esta la API oficial de ChatGPT?

No. Es un modelo de pesos abiertos alojado de forma independiente con una interfaz compatible con OpenAI. No está operado por OpenAI.

¿Qué endpoints se admiten?

POST /v1/chat/completions, POST /v1/responses y GET /v1/models, más los endpoints de balance en /v1/balance y /v1/dashboard/billing/credit_grants.

¿Necesito un SDK diferente?

No. Los SDK oficiales de OpenAI para Python y Node funcionan después de cambiar la base URL, la clave y el nombre del modelo.

¿Cómo verifico mi crédito restante?

Lee la cabecera X-Balance-USD en cualquier respuesta, o llama a GET /v1/balance.

Obtén tu clave de API

Regístrate, copia la clave y actualiza tu base URL. La configuración está completa.

Obtén tu clave