EN ▾
Get API key
openroutergdpr.comUncensored API. No refusals. Zero tracking.

Uncensored API Quickstart

Get your API key and start sending requests to our uncensored, GDPR-friendly endpoint. This guide covers the essential OpenAI-compatible calls you need to integrate quickly.

Prerequisites: Your API Key

Retrieve your credentials immediately after signing up. Go to the Get API key page and authenticate via Continue with Google or by entering your email and password. The system displays your unique key instantly, and no phone number is required for this step. You can regenerate a key at any time, but doing so invalidates the previous one, so store it securely. This single key authenticates all your requests to the API.

Base URL and Headers

Point your client to the correct endpoint to ensure proper connectivity. Use the base URL https://api.openroutergdpr.com/v1 for all interactions. Set the Authorization header to Bearer YOUR_API_KEY and the Content-Type to application/json. This setup works with any standard OpenAI SDK or HTTP client without requiring custom adapters. We support standard parameters like temperature and top_p for controlling response variability.

Sending Your First Request

Execute a basic completion to verify your configuration is correct. Send a POST request to /v1/chat/completions with the model identifier uncensored. This confirms that your key works and the model responds to text inputs as expected. The model handles unrestricted topics for lawful adult use without standard refusals. See the example below for the minimal JSON structure required.

curl https://api.openroutergdpr.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the GDPR articles applicable to cross-border data transfers."}]
  }'

Handling Streaming Responses

Receive token-by-token updates for lower latency and better user experience. Enable streaming by setting stream: true in your request body. The server sends Server-Sent Events (SSE) containing partial responses. The final chunk includes the full token usage statistics for billing accuracy. This approach is ideal for chat interfaces where users expect immediate text generation. Monitor the delta fields to reconstruct the full message.

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)

JSON Mode and Tool Calling

Structure your outputs reliably using built-in formatting features. Set response_format to {"type": "json_object"} to force JSON compliance. You can also define tools for function calling, allowing the model to execute specific actions. Use tool_choice to control when the model decides to call a function. These features work with standard OpenAI-compatible clients, making integration straightforward for existing applications.

from openai import OpenAI

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

Understanding Token Limits

Manage your context window to avoid truncation or errors. The model supports a 100,000-token context window for both prompt and completion combined. Each request can output up to 16,000 tokens, or 2,048 if you do not specify max_tokens. You are limited to 300 requests per minute and 8 concurrent requests per key. The request body size must not exceed 8 MB. Exceeding these limits results in specific HTTP error codes.

import OpenAI from "openai";

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

Frequently asked questions

Is this openrouter gdpr compliant?

Yes, we do not use your prompts for training data. Unlike multi-vendor routers that send data to various backends, we serve a single model on our own servers, providing clearer data control for EU compliance needs.

What happens if I hit a rate limit?

You will receive a 429 status code if you exceed 300 requests per minute or 8 concurrent connections. Wait briefly before retrying, or reduce your concurrency. Ensure you are not sending oversized payloads that exceed the 8 MB body limit.

Why do I get a 402 error?

A 402 status indicates that your prepaid credit balance is insufficient for the request. Top up your account using USDT (TRC20) or USDC (Base) to resume service. Errors and refusals do not consume credit, so only successful completions are billed.

Get your API key now

Sign up, copy the key, update the base URL. That’s it.

Get API keyView documentation