EN ▾
Create key

OpenRouter ai keys: Quickstart Guide

Drop our uncensored LLM into your existing stack with a single base URL change. This guide covers authentication, request formats, and streaming for developers who need raw output without vendor lock-in.

Create key

Uncensored API key alternative

Base URL & Authentication

Your API key authenticates every request to our endpoint. Use the base URL https://api.openrouteraikeys.com/v1 and pass your key in the Authorization header. This setup works with any OpenAI-compatible SDK because we mirror their standard authentication pattern. You do not need to modify your client library, only the base URL configuration.

  • Header: Authorization: Bearer YOUR_API_KEY
  • Base URL: https://api.openrouteraikeys.com/v1

First Request

Send a standard chat completion request to test connectivity and response format. The model ID is uncensored and it accepts standard messages arrays. This endpoint returns text only, so do not expect image or audio data in the response payload.

curl https://api.openrouteraikeys.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summarize this documentation page"}]
  }'

Python SDK Integration

Initialize the client with your key and the custom base URL. This allows you to use the familiar chat.completions.create method without wrapping additional logic. The library handles serialization and retry logic automatically for you.

from openai import OpenAI

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

Configure the OPENAI_API_KEY and OPENAI_BASE_URL environment variables or pass them directly to the client constructor. This ensures all subsequent calls route through our uncensored endpoint. You can continue using the same SDK version you already have installed.

import OpenAI from "openai";

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

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) chunks as the model generates text. Token usage statistics appear in the final chunk of the stream, allowing you to track costs in real-time without waiting for the full response.

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)

Limits, Errors & Context

The context window supports 100,000 tokens total for prompt and completion. You are limited to 300 requests per minute per key. A 401 error means your API key is invalid or missing. A 402 error indicates insufficient prepaid credit. A 429 error signals that you have exceeded the rate limit. Refusals due to content policy are free, but compute errors may consume tokens.

Common questions

How do I get my openrouter AI keys for this endpoint?

Create an account using Google or email on the key generation page. Your API key appears immediately on the dashboard. You can only have one active key per account, and a new key replaces the old one when generated.

What happens if I hit the rate limit?

You receive a 429 status code indicating you have exceeded 300 requests per minute. The limit is per API key, so using multiple keys does not increase your individual quota. Wait a minute before retrying your request.

Is the uncensored LLM model the same as GPT or Claude?

No, it is an open-weight model run on our own servers, tuned for unrestricted output. It is not GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama, or any other vendor's model. It functions as an OpenAI-compatible endpoint but uses a distinct underlying architecture.

Get your key now

Sign up, copy your key, update the base URL. That is all.

Create key