EN ▾
Start now

API Documentation

Get an uncensored LLM API that speaks OpenAI’s language. Send text, get text, pay only for tokens used.

Base URL and Authentication

Use https://api.claudapikey.com/v1 as your base URL. Pass your key in the Authorization header. Every request needs this header. We do not support query parameters for authentication.

First Request

Send a chat completion to test your key. The model ID is uncensored. This model handles adult themes without refusal. It is not GPT or Claude.

curl https://api.claudapikey.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Return a list of ten random nouns"}]
  }'

Python SDK Integration

Install the official openai package. Set base_url and api_key. The code looks identical to standard OpenAI calls. You get full compatibility with existing tools.

from openai import OpenAI

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

Initialize the client with the same base URL. Pass your key as a string. The response structure matches the OpenAI standard. Use this for server-side generation.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.claudapikey.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 and Token Usage

Enable streaming by setting stream: true. You receive chunks of text as they generate. The final chunk contains the token usage statistics. This helps you track costs in real time.

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, and Context

Our context window is 100,000 tokens. You can send up to 16,000 tokens per request. Errors like 401 mean your key is wrong. 402 means you need credit. 429 means you hit the rate limit of 300 requests per minute.

Frequently asked questions

Is the claud API key compatible with existing tools?

Yes, it uses the standard OpenAI chat completions format. You just change the base URL. Most SDKs work out of the box. You do not need to rewrite your code logic.

What happens if I hit the rate limit?

You will receive a 429 status code. You can send 300 requests per minute per key. You can also send 8 requests simultaneously. Wait a moment and retry.

How do I pay for the uncensored AI API?

We accept crypto only. Top up with USDT on TRC20 or USDC on Base. Start with $20 or go up to $500. You get bonus credit on larger deposits.

Get your API key

Sign up, copy the key, update the base URL. That is all you need to do.

Start nowView documentation