ApiAdultStart now

Adult api documentation for developers

Use the uncensored LLM API to generate adult content with a straightforward OpenAI-compatible interface. This quickstart guide covers authentication, request formats, and streaming for immediate integration.

Start now

Authentication and base URL

The API requires a bearer token passed in the Authorization header. You generate this key instantly via Google or email on the Get API key page. No phone number is required for signup.

Set the base URL to https://api.apiadult.com/v1. This endpoint works with standard OpenAI SDKs. You only need one active key per account; issuing a new one replaces the previous key immediately.

Keep your key secure. If you lose it, generate a new key from the dashboard. The key grants access to the uncensored model for text generation.

First request

Send a POST request to /v1/chat/completions with the model ID uncensored. The model is an open-weight architecture tuned for lawfully adult content without standard refusals.

Include your system prompt to define behavior. The API returns text responses based on your input. Errors do not consume credit. Refusals due to content policy are free.

Start with a simple message to verify connectivity. Use the examples below to structure your initial call.

curl https://api.apiadult.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Check remaining prepaid token balance"}]
  }'

Python SDK integration

Install the official OpenAI Python library. Configure the client with your API key and the custom base URL. This allows you to use familiar methods like chat.completions.create.

Set the model to uncensored in your client configuration. You can pass parameters like temperature and top_p to control creativity. The SDK handles token counting and retries automatically.

This approach simplifies integration into existing Python applications. You do not need to parse raw JSON responses manually.

from openai import OpenAI

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

Use the openai Node.js package for JavaScript projects. Initialize the client with the apiKey and basePath pointing to our endpoint.

Call the chat completions endpoint with the uncensored model. You can stream responses or wait for the full output. The SDK supports standard options like max_tokens and stop sequences.

This method is ideal for backend services or serverless functions. It ensures consistent behavior across your application.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apiadult.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 and SSE tokens

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

The final chunk of the stream contains the total token usage for the request. This allows you to track costs accurately without extra calls. Streaming reduces perceived latency for users.

Parse the SSE data to display tokens as they generate. This is crucial for long-form adult content generation where response times vary.

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 quotas

Each API key is limited to 300 requests per minute. You can have up to 8 concurrent requests simultaneously. The request body must not exceed 8 MB.

If you send an invalid key, the API returns a 401 error. A 402 error indicates insufficient prepaid credit. A 429 error means you hit the rate limit.

The context window supports 100,000 tokens total. Output is capped at 16,000 tokens per request. Errors and refusals do not consume your prepaid credit.

Frequently asked questions

How do I top up my prepaid credit?

Top up using USDT (TRC20) or USDC (Base) via crypto. Minimum top-ups are $20 and maximum is $500. Bonus credit is added for larger amounts: +5% from $50, +10% from $100, and +15% from $200.

What is the uncensored API model capacity?

The model supports a 100,000-token context window for prompt and completion combined. Maximum output per request is 16,000 tokens. If you do not set max_tokens, the default is 2,048 tokens.

Which payment methods do you accept?

Crypto only: USDT on TRC20 or USDC on Base, any whole amount from $20 to $500. Bonus credit applies from $50.

Get your API key now

Register, copy the key, update your base URL. Simple setup.

Start now