tr ▾
Create key

API Reference: Endpoints and Parameters

Connect your code to our uncensored inference layer using standard OpenAI protocols. Send text, get text, and handle streaming responses with zero friction.

Base URL and Authentication

The API lives at https://api.chatainofilter.com/v1. This base URL works with any OpenAI-compatible client or SDK. You authenticate by passing your unique API key in the Authorization header. Your key appears immediately after signup via Google or email. There is no monthly subscription to manage. You simply top up with crypto and spend tokens as needed.

Errors like a 401 mean your key is invalid. A 402 indicates you have no credit left. A 429 signals you hit the rate limit. You can generate a new key at any time, and it replaces the old one instantly. Keep your key secure in your environment variables.

First Request

Send a completion request to POST /v1/chat/completions. The model ID is uncensored. This model answers without refusing lawful adult, fictional, or controversial topics. It is not GPT or Claude. It is an open-weight model tuned for unrestricted generation. Text goes in. Text comes out. Simple.

curl https://api.chatainofilter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Generate the python code for a simple tcp server"}]
  }'

Verify connectivity with GET /v1/models. This returns the available models. Currently, only the uncensored model is available for chat completions. No embeddings or image generation exists here. Just pure text inference.

Python SDK Integration

Use the official OpenAI Python library. Set the base URL to our endpoint. Pass your API key. The SDK handles the HTTP requests for you. This works with standard openai packages. You can adjust parameters like temperature or top_p to control creativity. Streaming is supported via SSE. Use the async client for high-throughput applications.

from openai import OpenAI

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

Handle errors gracefully. Network issues happen. Rate limits occur. Check the status code. If you get a 429, wait and retry. The SDK does not retry automatically by default. Configure retries in your client settings if needed.

Node SDK Implementation

Install the openai Node package. Configure the base URL and API key. The syntax mirrors the Python client. This consistency lets you switch languages easily. Use stream: true for real-time token delivery. JSON mode is available via response_format. This forces structured output. Useful for parsing data.

import OpenAI from "openai";

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

Debug missing citations or weird responses by checking the logprobs field. This gives you visibility into token probabilities. You can analyze confidence levels. This helps in debugging edge cases. The API returns token usage in the final chunk when streaming.

Streaming Responses

Enable streaming by setting stream: true. The API sends Server-Sent Events. Each event contains a partial response. This reduces perceived latency for users. You can display tokens as they generate. This is critical for chat interfaces. The final chunk includes token usage statistics.

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)

Handle interruptions gracefully. If the connection drops, you can resume or restart. The model does not save state between requests. Each call is independent. You must manage conversation history in your application. Send the full context with each request. This ensures consistency.

Rate Limits and Constraints

You have 300 requests per minute per key. You can run 8 concurrent requests. The request body must be under 8 MB. The context window is 100,000 tokens. This includes prompt and completion combined. Max output is 16,000 tokens per request. If you omit max_tokens, it defaults to 2,048. Errors are free. Refusals are free. You only pay for successful token generation. No monthly fees. No expiration on credit. Just pay with crypto and use.

Frequently asked questions

Is this chat AI no filter compatible with standard OpenAI clients?

Yes. The API uses the <code>chat-completions</code> endpoint format. You only need to change the base URL and API key. Any OpenAI-compatible SDK will work. This includes libraries for Python, Node.js, and Go.

How do I debug missing citations in parallel chat API responses?

Enable <code>logprobs</code> in your request. This returns token probabilities. You can then analyze the model's confidence. This helps identify why certain tokens were chosen. It is useful for debugging unexpected outputs.

What happens if I hit the rate limit?

You receive a 429 status code. Your request is rejected. You must wait until the rate window resets. You have 300 requests per minute. Adjust your concurrency to 8 or fewer. This prevents overwhelming the API.

Secure your access key

Register, copy the credential, update the endpoint. Full configuration complete.

Create key

ChatainofilterOpenAI-compatible uncensored API