el ▾
Get your key

API Documentation

Get started with our uncensored LLM API in minutes using standard OpenAI-compatible tools. Integrate raw, unrestricted generation into your applications with minimal configuration.

Authentication and Base URL

API calls require a valid key passed in the Authorization header. Use Bearer YOUR_API_KEY as the header value. The base URL is https://api.geminiunfiltered.com/v1. This URL works with the official OpenAI SDKs and any compatible client by setting the base URL and API key. You get one active key per account. A new key replaces the old one. Sign up via Google or email to receive your key immediately. No phone number is required. The key is shown only once after signup. Keep it secure.

Chat Completions Endpoint

Send text to POST /v1/chat/completions. The model ID is uncensored. It is an open-weight model tuned for unrestricted output. It is not GPT, Claude, or Gemini. Send a messages array with a role and content. The API returns a text response. Use max_tokens to control output length. The default is 2,048 tokens. Set it higher if you need more context. The total context window is 100,000 tokens. This includes both input and output. Requests over this limit fail. Errors and refusals do not consume credit.

Streaming Responses with SSE

Use Server-Sent Events for real-time token delivery. Set stream: true in your request body. The API returns a stream of chunks. Each chunk contains partial text. The final chunk includes usage data. This allows you to display tokens as they generate. It reduces perceived latency for users. Handle stream errors gracefully. Retry logic should account for network instability. The streaming protocol is standard for OpenAI-compatible clients. Parse the JSON chunks on the client or server side.

Function Calling and Tools

Define tools in your request to enable function calling. Use the tools parameter with a JSON schema. The model can return tool calls instead of plain text. Use tool_choice to force or auto-select tools. This works with standard OpenAI SDKs. Parse the tool call arguments from the response. Execute the function on your end. Pass the result back in a follow-up message. The model supports multiple tools. It selects the most relevant one based on context. This enables complex agent workflows.

JSON Mode Configuration

Force structured output by setting response_format to {"type": "json_object"}. The model returns valid JSON. This is useful for parsing data into your application. Use it with function calling or standalone requests. Ensure your prompt specifies the desired schema. The model does not validate your schema strictly. It tries to conform to the format. Invalid JSON may cause parsing errors. Handle these cases in your code. This feature works with streaming and non-streaming modes.

Rate Limits and Quotas

The limit is 300 requests per minute per key. You can run 8 requests simultaneously. The request body must be under 8 MB. If you exceed the limit, you receive a 429 error. A 401 error means your key is invalid. A 402 error means you have no credit. Top up with crypto to continue. Credit never expires. Errors do not consume your balance. This ensures you only pay for successful completions. Monitor your usage via the dashboard. Plan your throughput accordingly.

cURL

curl https://api.geminiunfiltered.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "list python dependencies for selenium"}]
  }'

Python

from openai import OpenAI

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

Frequently asked questions

What is the base URL for the API?

Use <code>https://api.geminiunfiltered.com/v1</code> as your base URL. This URL is compatible with standard OpenAI SDKs. You must include your API key in the Authorization header for every request.

How many tokens does the context window support?

The context window supports 100,000 tokens for input and output combined. 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.

What happens if I hit the rate limit?

You will receive a 429 status code. The limit is 300 requests per minute. You can run 8 concurrent requests. Wait a few seconds and retry. Errors do not consume your credit.

Generate your API key

Sign up, copy the credential, update the endpoint URL. That is the entire configuration.

Get your key