API Documentation
Start generating text immediately with our uncensored chat completions API. Use the standard OpenAI SDKs to send requests to our base URL with your API key.
Authentication and Base URL
Authenticate every request by passing your API key in the Authorization header. The base URL for all endpoints is https://api.notfilter.cc/v1. This structure ensures compatibility with existing OpenAI SDKs without complex configuration changes.
curl https://api.notfilter.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "what is the capital of france"}]
}'Your key grants access to the uncensored model. Keep it secure and regenerate it if compromised. The system validates credentials before processing tokens, so invalid keys return errors immediately.
Chat Completions Endpoint
Send text prompts and receive responses via the /v1/chat/completions endpoint. This is your primary interface for interacting with the model. Configure parameters like temperature and top_p to adjust response behavior.
from openai import OpenAI
client = OpenAI(base_url="https://api.notfilter.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)The API expects a standard message format. Input text is converted to tokens, processed, and returned as a coherent response. Errors are handled via standard HTTP status codes.
Streaming Responses
Enable real-time output by setting stream: true. The API returns data in chunks as they are generated. This reduces perceived latency for long responses.
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)Each chunk contains partial content. The final chunk includes token usage statistics. Parse these events to display text progressively to your users.
Function Calling and Tools
Define tools to allow the model to call external functions. Specify tool definitions in the request body. The model returns structured arguments when a function call is appropriate.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.notfilter.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);Execute the function using the returned arguments and pass the result back to the model. This enables complex workflows without manual parsing. Tool choices can be forced or automatic.
JSON Mode
Force structured output by setting response_format to {"type": "json_object"}. This ensures the response is valid JSON. Useful for parsing data in applications.
The model adheres to the schema you provide. Errors in JSON structure are rare but possible. Validate output in your application layer for safety.
Rate Limits and Context Window
Each API key supports 300 requests per minute and 8 concurrent requests. The context window is 100,000 tokens for prompt and completion combined. Max output is 16,000 tokens.
A 401 error indicates an invalid key. A 402 error means you have no prepaid credit. A 429 error signals rate limit exhaustion. Errors are free, so you are not charged for failed requests. Credit never expires.
Frequently asked questions
What is the base URL for the Not Filter API?
Use HTTPS://api.notfilter.cc/v1 for all requests. This URL works with standard OpenAI SDKs. Change the base URL in your client configuration to point here.
How do I handle streaming responses?
Set the stream parameter to true in your request. The API returns chunks of text as they are generated. Parse these chunks to display real-time output to users.
What happens if I hit the rate limit?
You receive a 429 status code. The limit is 300 requests per minute per key. Wait a moment and retry. You are not charged for rate-limited requests.
Obtain your key now
Register, copy the key, and update the endpoint. That is all.