API Documentation
Connect to our uncensored LLM in under five minutes. This quickstart guides you through authentication, the base URL, and your first no-filter API call.
Quickstart: Connect Your First Request
Start by generating your key on the dashboard. The base URL for all requests is HTTPS://api.filterno.cc/v1. Pass your key in the Authorization header as a bearer token. This setup works with any standard OpenAI-compatible client.
Test connectivity immediately with a simple completion request. The endpoint accepts standard chat formats and returns raw text without content filters.
Replace YOUR_API_KEY with the string issued to your account. The request body defines the model and the message content. You receive a response containing the generated text.
Endpoint: POST /v1/chat/completions
Send your prompts to POST /v1/chat/completions. This is the only chat endpoint we support. You provide a system instruction and user messages in an array format.
The model identifier is "uncensored". It processes text input and returns text output. Do not expect image or audio generation here.
Set the temperature to control randomness. Higher values produce more creative outputs. Lower values yield deterministic results. The API strictly follows the OpenAI schema for this endpoint.
Endpoint: GET /v1/models
Verify available models with a GET request to /v1/models. This endpoint returns a list of supported model IDs. You should see "uncensored" in the response.
This endpoint confirms your API key is valid. It also shows the model details. Use it for debugging connectivity issues.
The response includes the model ID and object type. It does not list pricing or limits. Check the documentation for token rates.
Parameters: Temperature, Top-P, and Tools
Control generation diversity with temperature and top_p. Temperature adjusts the probability distribution. Top_p filters low-probability tokens. Together they balance creativity and focus.
Use function calling for structured interactions. Define tools in the request body. The model can call these functions. Pass tool_choice to enforce specific behavior.
Set stop sequences to end generation early. Use seed for reproducible results. Presence and frequency penalties reduce repetition. These parameters follow standard OpenAI conventions.
Streaming Responses (SSE) & Token Usage
Enable streaming by setting stream to true. The API returns Server-Sent Events (SSE). Each chunk contains partial token data.
Token usage appears in the final chunk. Read it to track costs. Streaming reduces perceived latency for long responses. It is ideal for real-time applications.
Parse the SSE data structure carefully. Handle network interruptions gracefully. The API ensures data integrity through chunk boundaries.
Limits, Errors, and Token Arithmetic
You get 300 requests per minute per key. Concurrency is limited to 8 simultaneous requests. The max request body size is 8 MB.
The context window is 100,000 tokens. This includes prompt and completion. Max output is 16,000 tokens. Set max_tokens to cap usage.
Handle errors by checking status codes. 401 means invalid key. 402 indicates no credit. 429 signals rate limit. Retry with exponential backoff for 429.
cURL
curl https://api.filterno.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top five risks in a standard React application."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.filterno.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.filterno.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);Streaming
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)Frequently asked questions
How do I authenticate my requests?
Pass your API key in the Authorization header as a bearer token. Generate the key on the dashboard. It is shown immediately after signup. No phone number is required.
What is the maximum context window?
The context window is 100,000 tokens. This total includes both the prompt and the completion. You can set a max output of 16,000 tokens per request.
Why am I getting a 402 error?
A 402 error means your prepaid credit is exhausted. Top up using crypto. Credit never expires. Errors and refusals do not consume credit.
Your API key is one form away
Register, copy the key, update the base URL. That is the entire configuration.