Get API key

Abliterated ai chat API documentation

Send your first uncensored request in under two minutes using the standard OpenAI-compatible interface. This guide covers authentication, SDK integration, and streaming for your abliterated AI chat integration.

Quickstart: Your first request

Send a simple chat completion to verify connectivity and uncensored behavior. The API accepts standard chat/completions payloads and returns text responses without content filters for lawful adult use. You need a valid API key and the correct base URL to proceed. Start with a short prompt to confirm the model responds as expected.

The model ID is uncensored. Context window supports 100,000 tokens total. Output limits apply per request. Check your credits before sending large payloads. Errors like 402 indicate insufficient balance.

We prioritize raw throughput over complex routing. No third-party proxies interfere with your requests. The infrastructure is built for developers who need reliability. Use the examples below to integrate quickly.

Authentication and base URL

Use your unique API key sent immediately after signup. Authenticate every request with the Authorization: Bearer <key> header. The base URL is https://api.abliteratedaichat.com/v1. This ensures compatibility with official OpenAI SDKs and any compatible client library.

Keep your key secure. One active key per account; a new key replaces the old one. If you lose access, generate a new key from the dashboard. Errors return 401 for invalid keys. Never expose your key in client-side code.

Signup requires only an email or Google account. No phone number needed. Credits never expire. Refunds are not issued, but billing errors are fixed via Support. Use the key in your environment variables for clean code.

Streaming responses with SSE

Enable streaming by setting stream: true in your request. Receive tokens via Server-Sent Events (SSE) as they are generated. The final chunk includes total token usage for billing and tracking. This reduces perceived latency for long-form roleplay or writing tasks.

Parse the SSE stream carefully. Ignore non-data events. Concatenate token deltas to reconstruct the full response. The model does not refuse lawful adult content, so streaming works seamlessly for NSFW chatbot scenarios. Monitor for 429 rate limits during high-throughput sessions.

Streaming is ideal for real-time applications. It allows immediate display of generated text. Use this for chat interfaces where users expect instant feedback. Ensure your client handles partial responses correctly.

JSON mode and function calling

Use response_format with {"type": "json_object"} to enforce structured outputs. This is critical for parsing data or integrating with other systems. Function calling works via the standard tools and tool_choice parameters. The model follows instructions precisely, even with complex constraints.

Test function calling with simple tools first. Verify the model adheres to the schema. Abliterated models maintain instruction following better than many uncensored alternatives. However, large prompts with multiple constraints may still cause deviations. Always validate JSON output.

Combine streaming with JSON mode if needed. The final chunk contains usage stats. Function calling adds flexibility to your uncensored LLM integration. Use this for agent architectures or automated workflows requiring structured data.

Parameters: Temperature, Top P, and Stop sequences

Adjust temperature for creativity or determinism. Use top_p for nucleus sampling. Set stop sequences to halt generation at specific markers. These parameters control the model's behavior. Lower temperatures yield more consistent outputs. Higher temperatures increase randomness.

Experiment with different values for your use case. Roleplay benefits from higher temperature. Coding tasks may require lower temperature for precision. The API supports all standard parameters: seed, presence_penalty, and frequency_penalty. Fine-tune these for optimal results.

Stop sequences are useful for multi-turn conversations. They prevent the model from continuing past a desired point. Use them to structure responses cleanly. Combine with JSON mode for reliable data extraction. Test thoroughly before deploying to production.

Rate limits and concurrency

Limit is 300 requests per minute per key. Concurrent requests capped at 8 per key. Request body size limited to 8 MB. These limits ensure fair usage and stable performance. Exceeding limits returns 429 errors. Implement retry logic with exponential backoff.

Monitor your usage to avoid throttling. High concurrency may trigger limits if requests are large. Context window is 100,000 tokens. Max output is 16,000 tokens per request. Errors and refusals are free, so failed requests don't cost credits.

Plan your integration accordingly. Use queuing for burst traffic. The API handles high throughput efficiently. No SLA guarantees, but infrastructure is built for reliability. Contact Support for issues. Keep your key secure to avoid unauthorized usage.

cURL

curl https://api.abliteratedaichat.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "What is the capital of France"}]
  }'

Python

from openai import OpenAI

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

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)

Common inquiries

Does the abliterated AI chat model lose instruction following?

It maintains strong instruction following, even with complex constraints. However, very large prompts may cause minor deviations. Test thoroughly for your specific use case. The model is tuned to answer without refusals while preserving structure.

How do I handle 402 or 429 errors?

A 402 error means insufficient credit. Top up via crypto to continue. A 429 error indicates rate limit exceeded. Wait and retry with exponential backoff. Errors are free, so 429s do not consume credits.

What is the context window size?

The context window is 100,000 tokens for prompt and completion combined. Max output per request is 16,000 tokens. Use this for long-form roleplay or document analysis. Ensure your payload fits within the 8 MB body limit.

Access key in a single step

Register, copy the credential, update the endpoint URL. That is the entire process.

Get API keyView documentation