cs ▾
Claim trial key

gemininsfwban.comQuickstart

API Documentation

Migrate your NSFW workloads to our uncensored LLM API with a simple base URL swap. This quickstart guides you through authentication, requests, and streaming using standard OpenAI-compatible SDKs.

Claim trial key

Authentication & Base URL

Our API uses standard OpenAI authentication headers. You can obtain an API key immediately by signing up with Google or an email address on the Get API key page. No phone number is required, and your key is displayed instantly. Use the base URL HTTPS://api.gemininsfwban.com/v1 for all requests. Your key grants access to the uncensored model identified by the id "uncensored". This model runs on our own servers and does not filter lawful adult content.

Pass your key in the Authorization header as a bearer token. The system rejects requests with invalid credentials and charges nothing for errors or refusals. Keep your key secure, as each account supports only one active key at a time.

Chat Completions Endpoint

Send text conversations to the endpoint POST /v1/chat/completions. The model returns text responses based on your prompt history. You must specify the model id as "uncensored" in your request payload. This ensures you are interacting with our specific uncensored large language model.

The API accepts standard message structures with roles like user and assistant. You can stream responses or wait for the full completion. Pricing is transparent: $0.15 per million input tokens and $0.50 per million output tokens. Credit is prepaid and never expires.

Here is a basic cURL example to get started:

curl https://api.gemininsfwban.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Check the status of the current endpoint connection"}]
  }'

For Python developers, the official SDK works with minimal changes. Set the base URL and model id in your client configuration.

from openai import OpenAI

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

Streaming with SSE

Enable streaming by setting stream to true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery. Each chunk contains partial data and the final chunk includes the total token usage for the request.

Streaming reduces perceived latency for NSFW chatbot applications. Your client code should handle the stream events efficiently. The model supports standard parameters like temperature and top_p to control creativity.

Example streaming logic:

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)

Function Calling & Tools

The API supports function calling via the tools parameter. You can define tools in the request and the model will respond with structured arguments when appropriate. This feature works with the standard OpenAI tool format.

Use tool_choice to force or auto-select tools. The model parses your tool definitions and returns JSON-compatible arguments. This is useful for integrating NSFW LLM APIs into larger workflows requiring structured data.

JSON Mode Response Format

Force the model to output valid JSON by setting response_format to {"type": "json_object"}. This ensures consistent parsing for your applications. The uncensored model handles this format reliably without content refusal.

JSON mode is ideal for programmatic interactions. It prevents formatting errors in your NSFW chatbot logic. Combine this with streaming for real-time structured data delivery.

Parameters: Temperature, Top P, and Seed

Control response variability with temperature, top_p, and seed. Lower temperature values produce more deterministic outputs. Higher values increase creativity and randomness. The seed parameter allows for reproducible results across requests.

Use stop sequences to halt generation at specific markers. presence_penalty and frequency_penalty help manage repetition. These parameters give you fine-grained control over the uncensored AI behavior.

Node.js

import OpenAI from "openai";

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

Common questions

How do I handle authentication errors?

If you receive a 401 error, your API key is invalid or expired. Check your key on the dashboard. If you see a 402 error, your prepaid credit is exhausted. Top up with crypto to continue.

What are the rate limits?

You are limited to 300 requests per minute per key. You can have up to 8 concurrent requests. The maximum request body size is 8 MB. Exceeding these limits triggers a 429 error.

What is the context window?

The context window is 100,000 tokens for the combined prompt and completion. The maximum output per request is 16,000 tokens. If you do not set <code>max_tokens</code>, the default output is 2,048 tokens.

Get your API key now

Sign up, copy your key, update the endpoint URL. That is all the configuration required.

Claim trial keyView documentation