Integrate the uncensored LLM API
Integrate the uncensored LLM API with a standard OpenAI-compatible endpoint. This guide covers authentication, request parameters, streaming, and error handling for developers who need reliable, unfiltered responses.
Base URL and Authentication
Use the provided base URL and API key for all requests. The endpoint is https://api.howtomakechatgptunfiltered.com/v1. Pass your key in the Authorization header as a Bearer token. This standard format lets you swap in our service without changing your client code. You get an API key immediately after signing up with Google or email. No phone number is required.
curl https://api.howtomakechatgptunfiltered.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate total tokens for input array"}]
}'Errors like 401 indicate an invalid key, while 402 means you need more credit. Your key is active as soon as you see it on the dashboard.
POST /v1/chat/completions Parameters
Send your prompts to the chat completions endpoint with standard parameters. Use model: "uncensored" to select the model. The context window is 100,000 tokens for prompt and completion combined. You can set temperature, top_p, and stop sequences. Max output is 16,000 tokens per request. Set max_tokens to avoid unexpected truncation. JSON mode is available via response_format. Function calling works with tools. Parameters like presence_penalty and frequency_penalty help control repetition. Seed values ensure reproducible outputs.
Streaming Responses and Token Counting
Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery. Token usage details appear in the final chunk of the stream. This allows you to track costs and context usage accurately. Streaming reduces perceived latency for long responses. It is ideal for chat interfaces. You can parse partial tokens for instant display. The last chunk contains the complete usage statistics. This transparency helps you monitor API consumption.
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)
Function Calling and JSON Mode
Use function calling to integrate external tools. Define tools in the tools parameter. The model returns a function call object for your code to execute. Set tool_choice to auto or specify a tool. JSON mode enforces structured output. Set response_format to {"type": "json_object"}. This ensures valid JSON for parsing. It is useful for data extraction. Function calling supports complex workflows. The model handles tool arguments automatically. JSON mode prevents formatting errors. Both features work with the uncensored model. They integrate with standard OpenAI SDKs.
Error Handling and Rate Limits
Handle errors gracefully with standard HTTP status codes. 401 means your API key is invalid. 402 indicates insufficient prepaid credit. 429 signals that you hit the rate limit. The limit is 300 requests per minute per key. You can have 8 concurrent requests. The request body must be under 8 MB. Errors and refusals do not consume credit. Refunds are not available for used credit. Double charges are fixed via Support. Each account gets one active key. A new key replaces the old one. Always check the status code.
GET /v1/models Endpoint
Query available models with a GET request. The endpoint is /v1/models. It returns a list of model objects. Our service offers one model: uncensored. This confirms the API is working. Use this endpoint for health checks. It returns metadata about the model. The model ID is always uncensored. This standard endpoint ensures compatibility. It works with any OpenAI-compatible client. You can verify connectivity quickly. It is useful for automated tests. The response includes the model name and ID.
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.howtomakechatgptunfiltered.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
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.howtomakechatgptunfiltered.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);Common questions
How do I make chatgpt unfiltered using this API?
Set the model ID to "uncensored" in your requests. The API serves an open-weight model tuned for no refusals. It works with standard OpenAI SDKs by changing the base URL. Use the provided API key for authentication. This eliminates the need for local setup.
What is the pricing for this uncensored chatgpt API?
The price is $0.15 per 1M input tokens and $0.50 per 1M output tokens. Credit is prepaid via crypto (USDT or USDC). Errors and refusals are free. Credit never expires. No subscription fees apply. Bonus credit is available for larger top-ups.
How do I debug missing citations in parallel chat API responses?
Ensure you are parsing the last SSE chunk for usage data. Streaming responses include token counts in the final event. If citations are missing, check that you are not truncating the stream prematurely. The model returns usage details only when the stream completes. Verify your client handles SSE correctly.
Generate your API key
Register, copy the key, update your base URL. Done.