EN ▾

abliteratedmodels.ccHosted uncensored API for developers.

Abliterated Models
Get API key

Developer Quickstart: Uncensored API

Integrate the uncensored LLM into your application using a standard OpenAI-compatible endpoint. This guide covers authentication, request formatting, streaming, and tool usage for the hosted API.

Base URL and Authentication

Start by setting your base_url to https://api.abliteratedmodels.cc/v1. Authenticate every request by including your API key in the Authorization header as a Bearer token. You can generate a key immediately after signing up via Google or email on the Get API key page. The key is displayed once; store it securely in your environment variables.

  • Header: Authorization: Bearer YOUR_API_KEY
  • No additional query parameters are required for auth.

Ensure your client library supports custom base URLs. This allows you to swap out the default OpenAI endpoint without changing your code structure.

First Request

Send a POST request to /v1/chat/completions with the model ID uncensored. The API accepts standard chat completion parameters. Text goes in, text comes out. There are no embeddings or image generation endpoints.

  • Model: uncensored
  • Endpoint: POST /v1/chat/completions

Use the following curl command to verify connectivity:

curl https://api.abliteratedmodels.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

Python SDK Integration

The official OpenAI Python SDK works directly with this API. Initialize the client with the correct base URL and your key. This approach abstracts the HTTP details while maintaining full control over parameters like temperature and top_p.

  • Use OpenAI(base_url=..., api_key=...)
  • Call client.chat.completions.create()

Here is a minimal example for a coding llm task:

from openai import OpenAI

client = OpenAI(base_url="https://api.abliteratedmodels.cc/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 SDK Integration

For Node.js environments, use the openai npm package. Configure the baseURL to point to our server. This method is ideal for backend services or serverless functions where you need programmatic access to the uncensored model.

  • Install the openai package
  • Set baseURL to https://api.abliteratedmodels.cc/v1

Example implementation:

import OpenAI from "openai";

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

Streaming Responses (SSE)

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE). Token usage statistics are included in the final chunk. This reduces perceived latency for end-users during content generation.

  • Set stream: true
  • Parse SSE events on the client or server

Code snippet for streaming:

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)

Rate Limits and Context Window

Each API key allows 300 requests per minute and 8 concurrent requests. The request body must not exceed 8 MB. The context window is 100,000 tokens total. There is no separate output cap; if max_tokens is unset, the response can run to the end of the window. If you hit the limit, your requests will queue or fail. Manage concurrency to stay within the 8 concurrent request threshold. Check the Pricing page for credit details.

Questions and answers

How does the uncensored model handle content refusals?

The model is tuned to answer without refusals for lawful adult use, including controversial or fictional topics. It does not apply the same corporate filters as other vendors. However, a hard limit blocks sexual content involving minors, which is always refused regardless of the prompt.

What happens if I exceed my prepaid credit?

When your prepaid credit is exhausted, subsequent requests will fail. You can top up by crypto: USDT (TRC20) or USDC (Base), with amounts between $20 and $500. Credit never expires, so you can add funds at any time without a subscription fee.

Does this API support function calling?

Yes, you can use the tools and tool_choice parameters for function calling. You can also enforce JSON output using response_format: {"type": "json_object"}. This is useful for generating structured data or integrating with other systems.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key

Specs at a glance

If your tool speaks the OpenAI API, these are the details that matter.

ParameterDetails
API formatOpenAI-compatible: any OpenAI SDK or client works — change the base URL and the key
Base URLhttps://api.abliteratedmodels.cc/v1
EndpointsPOST /v1/chat/completions · GET /v1/models
API keyAuthorization: Bearer YOUR_KEY
Model IDuncensored
Structured outputJSON object mode via response_format json_object
Max outputup to the rest of the 100,000-token window; max_tokens optional (no separate cap)
Max context100,000 tokens (prompt + completion together)
Other parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Function callingSupported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages
SSE streamingSupported (stream: true), usage included at the end
Max body8 MB request body
Rate limit300/min per key
Concurrency8 requests at the same time per key
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Trial credit$0.50 for 7 days, no card · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up
Top-upcrypto: USDT on TRON or USDC on Base, $20–$500, any whole sum
Token pricesinput $0.15 / 1M tokens, output $0.50 / 1M tokens
Subscriptionno monthly fee; paid credit does not expire
Volume bonus+5% from $50, +10% from $100, +15% from $200
How you paypay as you go from prepaid credit; nothing is charged for failed or refused requests
Key managementone key per account, regenerate any time (the old one stops working)
AccountGoogle or e-mail and password
Content policyuncensored for adults; the only hard rule: no sexual content involving minors

Error codes

The type field is stable, the message is for humans. Errors cost nothing.

HTTPTypeWhat to do
400bad_requestmalformed request or too long for the context window
401missing_key · invalid_key · key_revokedno key, wrong key, or a key replaced by a newer one
402no_creditout of credit; add credit and retry
403content_blockedsexual content involving minors — refused, not billed
404not_foundunknown endpoint
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyover 300/min or 8 parallel — back off and retry
503upstream_busytemporary overload, retry shortly