EN ▾
Start now
Start now

Quickstart: Uncensored API Guide

Connect your existing OpenAI-compatible clients to our uncensored LLM API in minutes using standard base URLs and API keys. This guide covers the essential endpoints, streaming, and tool integration for direct model access.

Authentication setup

Start by generating your key on the Get API key page. You can sign in with Google or use an email and password; no phone number is required. Your key appears immediately. Use it in the Authorization header for all requests. One active key is allowed per account. A new key replaces the old one instantly.

POST /v1/chat/completions

Send text requests to the chat completions endpoint. The base URL is HTTPS://api.proxyclaudecode.com/v1. Use the model id "uncensored" for direct access. This endpoint handles text in and text out. It does not support embeddings, images, or fine-tuning. You can adjust parameters like temperature and top_p. Errors and refusals do not consume credit.

cURL

curl https://api.proxyclaudecode.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Parse this CSV and return JSON"}]
  }'

Python

from openai import OpenAI

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

Secure your API key

Register, retrieve your key, and update your base URL. Simple configuration.