EN ▾

NoFilterAPI Documentation

API Documentation

Integrate our uncensored LLM into your application using standard OpenAI SDKs. Send text, receive text, and bypass content filters with zero configuration.

uncensoredhttps://api.nofilteraichatbot.com/v1

Base URL and Authentication

Start every request by pointing your client to https://api.nofilteraichatbot.com/v1 and including your API key in the authorization header.

Generate a key via the dashboard using Google or email credentials, then pass it as Bearer YOUR_API_KEY to authenticate each call.

First Request

Send your first prompt to the chat completions endpoint to verify connectivity and model behavior.

This example requests a simple response using the uncensored model.

curl https://api.nofilteraichatbot.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Get the temperature in Tokyo"}]
  }'

Python Integration

Use the official OpenAI Python library to interact with our API without modifying the core logic.

Configure the base URL to route requests to our uncensored inference engine.

from openai import OpenAI

client = OpenAI(base_url="https://api.nofilteraichatbot.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 Integration

Initialize the SDK in your JavaScript environment to handle text generation seamlessly.

Ensure you override the default base URL to direct traffic to our specific endpoint.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.nofilteraichatbot.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);

Streaming and Usage

Enable streaming by setting stream: true to receive partial responses in real-time.

The final chunk includes a summary of token usage for accurate billing tracking.

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)

Rate Limits and Constraints

Each API key supports 300 requests per minute and allows 8 concurrent requests.

The context window spans 100,000 tokens, and request bodies must stay under 8 MB.

Common questions

How do I handle authentication errors?

A 401 error indicates an invalid or missing API key. Verify your key in the dashboard and ensure the header format is correct.

What happens if I run out of credit?

Requests return a 402 error when prepaid credit is exhausted. Top up via crypto to resume service immediately.

Why do I get a 429 error?

A 429 response means you have exceeded the rate limit of 300 requests per minute per key. Wait for the window to reset or reduce concurrent requests.

Secure your API key

Register, grab the key, update the endpoint. Simple integration.

Claim trial key