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

OpenRouter api integration guide

You can route OpenAI-compatible traffic to an uncensored endpoint without OpenRouter’s opaque multi-vendor routing or data retention ambiguity. This guide explains how to migrate your client code to a direct, GDPR-conscious API that processes prompts without training on your data.

Why Switch From OpenRouter?

OpenRouter’s routing opacity means your data travels through multiple vendors, complicating GDPR compliance and data sovereignty claims. When you define a data processor for regulatory purposes, you must specify its location, but OpenRouter dynamically selects from various backends like Vertex or Azure without your explicit consent per request. This ambiguity makes it difficult to prove where your prompts actually reside during processing.

Our service provides a direct, single-model endpoint that runs on our own servers. Prompts are not used for training, and you know exactly where your data goes. This transparency is critical for teams that need to audit their data flow or comply with strict internal privacy policies.

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."}]
  }'

By removing the middleman, you eliminate the risk of unexpected vendor lock-in or hidden data retention policies. You get a straightforward API that behaves exactly like the OpenAI standard, but with the uncensored flexibility you need for adult content or unrestricted reasoning.

Understanding the openrouter API Key

An API key authenticates your requests to the endpoint, granting you access to the uncensored model without revealing your identity. You can generate this key instantly by signing up with Google or an email address and password, with no phone number required. The key is displayed immediately upon creation, allowing you to start testing your integration right away.

  • Sign up via the Get API key page.
  • Choose Continue with Google or use email and password.
  • Copy the key shown on the screen.
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)

Each account is limited to one active key; generating a new one replaces the previous key. This simplicity ensures that your integration remains clean and easy to manage. You do not need to worry about complex permission scopes or hierarchical key structures. The key simply grants access to the chat-completions endpoint.

Cost Comparison: OpenRouter vs. Direct

Direct API pricing is transparent and based solely on token usage, with no hidden fees or subscription costs. You pay $0.15 per 1M input tokens and $0.50 per 1M output tokens. Errors and refusals do not consume your credit, so you only pay for successful completions. This model is often more cost-effective than OpenRouter’s pricing, which can vary depending on the underlying vendor and routing fees.

FeatureOpenRouterOur Direct API
Pricing ModelVariable by vendorFixed per token
Input CostVaries$0.15 / 1M tokens
Output CostVaries$0.50 / 1M tokens
SubscriptionOptionalNone
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);

Prepaid credit is charged by real usage and never expires. You can top up with crypto, receiving bonus credit for larger amounts. This predictability allows you to budget accurately without worrying about fluctuating token costs or unexpected routing fees.

Latency and Routing Transparency

Direct endpoints eliminate the latency introduced by OpenRouter’s dynamic routing layer. When you use OpenRouter, your request may be forwarded to multiple vendors, each with different performance characteristics. This variability can lead to inconsistent response times and unpredictable behavior. Our service runs a single model on dedicated servers, ensuring consistent latency and performance.

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)

Routing transparency is crucial for applications that require deterministic behavior. With a direct endpoint, you know exactly which model is processing your request. This consistency is particularly important for real-time applications or systems that rely on specific model behaviors. You avoid the surprise of a request being routed to a slower or less capable vendor.

Handling Rate Limits and Concurrency

Our API enforces strict rate limits to ensure fair usage and stable performance. You are limited to 300 requests per minute per key and 8 concurrent requests. The request body is capped at 8 MB, which is sufficient for most use cases. These limits are higher than many free tiers but lower than enterprise plans, ensuring a balanced experience for developers.

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."}]
  }'

If you exceed these limits, you will receive a 429 Too Many Requests error. To handle this, implement exponential backoff in your client code. This approach ensures that your application remains responsive without overwhelming the server. Adjust your concurrency settings based on your application’s needs to optimize performance.

Migration Steps for OpenAI Clients

Migrating to our API is straightforward because it is fully OpenAI-compatible. You only need to update the base URL and API key in your existing client code. The endpoint structure matches the OpenAI standard, so no changes are required for request payloads or response parsing.

  • Update the base_url to our endpoint.
  • Replace the api_key with your new key.
  • Test your integration with a simple request.
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)

This minimal change allows you to leverage the uncensored model without rewriting your entire application. You can continue using the same SDKs and libraries you are already familiar with. The transition is seamless, ensuring that your development process remains uninterrupted.

Common Integration Mistakes

Developers often forget to update the base URL when switching to a new API. This results in requests being sent to the old endpoint, causing authentication errors or unexpected responses. Ensure that your client configuration is correctly set before testing.

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);

Another common mistake is ignoring the context window limits. Our model supports a 100,000 token context window, but the maximum output is 16,000 tokens. If you do not set the max_tokens parameter, the default is 2,048 tokens. Be mindful of these limits to avoid truncation or errors in your responses.

Final Checklist for Launch

Before launching your integration, verify that your API key is correctly configured and that your base URL is pointing to the correct endpoint. Test your application with various inputs to ensure that the uncensored model behaves as expected. Check that your error handling is robust and that you are respecting the rate limits.

  • Confirm API key and base URL.
  • Test streaming and JSON mode.
  • Verify rate limit handling.
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."}]
  }'

Ensure that your application handles errors gracefully and that you are monitoring your token usage. This checklist ensures a smooth launch and helps you avoid common pitfalls. Your integration should be stable, efficient, and ready for production use.

Frequently asked questions

Is this service GDPR compliant?

Yes, prompts are not used for training, and you have explicit control over your data. Unlike OpenRouter, which routes through multiple vendors, our direct endpoint ensures transparency in data processing. This makes it easier to comply with GDPR and other privacy regulations.

How do I top up my credit?

You can top up your credit using crypto, specifically USDT on TRC20 or USDC on Base. Minimum top-ups start at $20, and you receive bonus credit for larger amounts.

What is the context window size?

The context window is 100,000 tokens, combining both prompt and completion. The maximum output per request is 16,000 tokens, or 2,048 tokens if you do not specify <code>max_tokens</code>. This allows for extensive conversations and document processing.

Can I use this API with the OpenAI SDK?

Yes, the API is fully OpenAI-compatible. You can use the official OpenAI SDKs or any OpenAI-compatible client by simply updating the base URL and API key. This ensures a smooth migration from other OpenAI-compatible services.

Get your API key now

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

Get API keyView documentation