Authentication & Keys
Your API key authorizes every request. Create one by signing up with Google or an email and password on the Get API key page. The key appears immediately. You get one active key per account; generating a new key replaces the old one. No phone number is required for signup.
Include your key in the Authorization header as a Bearer token. If the key is invalid or missing, the API returns a 401 Unauthorized error. If you have an invalid key, check your account dashboard to verify the current active key.
Keep your key secure. Since credits never expire and mistakes are fixed via Support, you can regenerate keys freely without losing unused balance. Use the key in any OpenAI-compatible SDK by setting the environment variable or passing it directly.
Base URL & First Request
Use https://api.llmapipricingcomparison.com/v1 as your base URL. This endpoint works with official OpenAI SDKs by changing the base_url and providing your API key. Send a POST request to /v1/chat/completions with the model ID uncensored.
The model is an open-weight LLM tuned for lawful adult use, not GPT or Claude. It does not refuse controversial or NSFW topics. Here is a basic request structure:
curl https://api.llmapipricingcomparison.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Calculate total monthly cost for 5 million tokens"}]
}'You can also list available models using GET /v1/models. This confirms the endpoint is reachable and your key is valid before sending heavy payloads.
Python SDK Integration
Use the official openai Python package for easy integration. Set the base URL to our API endpoint and provide your key. The SDK handles tokenization and JSON formatting automatically.
from openai import OpenAI
client = OpenAI(base_url="https://api.llmapipricingcomparison.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 approach works for simple text generation. The SDK supports all parameters like temperature and top_p. Errors like insufficient credit return a 402 Payment Required status. You can top up with crypto to continue using the service without interruption.
Node.js SDK Setup
The Node.js SDK follows the same pattern. Initialize the client with your base URL and API key. Send requests to /v1/chat/completions using the uncensored model ID.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.llmapipricingcomparison.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 setup is ideal for server-side applications. The SDK manages connection pooling and retries. If you encounter a 429 Too Many Requests error, you are hitting the rate limit. Wait and retry, or optimize your request volume.
Streaming Responses
Enable streaming by setting stream: true in your request. The API returns data in real-time chunks. This is useful for chat interfaces where users expect instant feedback.
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 text. The final chunk includes the token usage statistics. Streaming does not change the pricing model; you pay per token regardless of whether the response is streamed or not. This feature ensures a smooth user experience for NSFW chatbots.
Rate Limits & Context Window
Each API key allows 300 requests per minute and 8 concurrent requests. The request body limit is 8 MB. Exceeding these limits returns a 429 error. The context window is 100,000 tokens total. The maximum output per request is 16,000 tokens.
If you do not set max_tokens, the default output is 2,048 tokens. Errors and refusals are free. Credit is charged only for successful token usage. This structure keeps costs predictable for high-volume NSFW content generation.