Authentication and Base URL
Use the provided API key with the base URL https://api.apirouteropen.com/v1. Pass the key in the Authorization header as a bearer token. No subscription or monthly fee applies. Credit is prepaid via crypto and never expires. Errors do not consume tokens. Refusals for unlawful adult content are free. Sign up with Google or email to get your key instantly.
First Request
Send a POST request to /v1/chat/completions with the model set to uncensored. This is a text-only API. It does not support images, audio, or embeddings. The model responds to prompts without content refusals for lawful adult use. You must include the system and user messages in the request body. The response contains the generated text token by token.
Here is how to make your first call using curl:
curl https://api.apirouteropen.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Show me the current status of the api endpoint"}]
}'This simple command verifies your key and returns the first token. Use this to debug connectivity before integrating into your application.
Python SDK Integration
Initialize the client with your key and the custom base URL. The official OpenAI Python SDK works directly with this endpoint. Set the model to uncensored in your requests. This approach requires minimal code changes. You can use the same libraries you already know. The SDK handles retries and JSON parsing automatically. Streaming is supported for real-time output.
Install the library and configure the client:
from openai import OpenAI
client = OpenAI(base_url="https://api.apirouteropen.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)This setup ensures compatibility with existing workflows. You can pass additional parameters like temperature or top_p as needed.
Node SDK Setup
Import the OpenAI package and configure the base URL. Use the fetch implementation if you are in a Node environment. The SDK accepts the same parameters as the standard OpenAI API. Pass the uncensored model ID to get results. This method works well for server-side applications. It supports both synchronous and asynchronous calls. You can integrate it into Express or Fastify routes easily.
Configure the Node.js client:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apirouteropen.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);This configuration ensures that your requests are routed correctly. The SDK handles the HTTP details for you.
Streaming Responses
Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE). Each chunk contains partial text updates. Token usage information is included in the final chunk. This feature is ideal for user-facing chat interfaces. It reduces perceived latency significantly. The client must handle the SSE stream correctly. Buffering issues can occur if the consumer is slow.
Implement streaming in your code:
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)Process each chunk to update the UI in real time. The final chunk provides the total token count.
Rate Limits and Errors
The API enforces strict limits to ensure stability. You are allowed 300 requests per minute per key. Only 8 requests can be active simultaneously. The request body size must not exceed 8 MB. A 401 error indicates an invalid or missing API key. A 402 error means your prepaid credit is exhausted. A 429 error signals that you have exceeded the rate limit. Credit is charged only for successful token generation. Errors are free. Your prepaid credit never expires.