da ▾
Llmcheapest

Uncensored LLM API. Pay only for tokens.

Create key
uncensoredapi.llmcheapest.com/v1

Quickstart: Integrate in Minutes

Integrate our uncensored LLM API in minutes using standard OpenAI-compatible endpoints. Start with a trial key, send your first request, and handle streaming or structured data without subscription lock-in.

uncensored#01

Authentication and Base URL Setup

Your API key grants access to the uncensored model. Use the standard OPENAI_API_KEY header with the base URL https://api.llmcheapest.com/v1. This ensures compatibility with any OpenAI-compatible SDK or client library.

Retrieve your key instantly after signup via Google or email. The key is displayed once, so save it securely. All requests authenticate against this single key per account.

Sending Your First Chat Completion

Send a simple text prompt to generate a response. The endpoint POST /v1/chat/completions accepts standard parameters like model, messages, and max_tokens.

Set the model to uncensored for unrestricted output. The API processes input tokens and returns generated text without content filters for lawful adult topics.

curl https://api.llmcheapest.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Calculate the total cost for 500k input tokens at 0.2 per million."}]
  }'

Handling Streaming Responses (SSE)

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery.

Parse each chunk to update your UI incrementally. Token usage details appear in the final chunk. This approach reduces perceived latency for long responses.

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)

Enforcing JSON Mode for Structured Data

Use response_format: {"type": "json_object"} to force JSON output. This is ideal for parsing structured data or integrating with other systems.

The model will return valid JSON syntax. Ensure your application handles potential parsing errors gracefully.

from openai import OpenAI

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

Configuring Tools and Function Calling

Define tools in the tools parameter. The model can call functions based on the prompt context.

Specify tool_choice to control function invocation. This enables complex workflows like data extraction or automated actions.

import OpenAI from "openai";

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

Limits, Errors, and Context Window

The context window supports 100,000 tokens total. Max output is 16,000 tokens per request. Rate limits are 300 requests per minute and 8 concurrent requests per key.

Handle errors like 401 (invalid key), 402 (insufficient credit), and 429 (rate limit). Requests consume credit only on successful token generation.

Frequently asked questions

#02
What is the cheapest LLM API for side projects?

Our API charges $0.15 per 1M input tokens and $0.50 per 1M output tokens. Prepaid credit is required, with no monthly fees or hidden costs. Errors and refusals do not consume credit.

How do I handle streaming responses?

Set <code>stream: true</code> in your request to receive Server-Sent Events (SSE). Each chunk contains partial text, with token usage details in the final chunk. This reduces perceived latency for long responses.

What are the rate limits?

You can send up to 300 requests per minute and 8 concurrent requests per key. The request body limit is 8 MB. Exceeding these limits returns a 429 error.

Get your API key in one step

#03

Sign up, grab the key, point to our endpoint. That is all you need.