Base URL and authentication
The Proxy API lives at HTTPS://api.proxyclaude.com/v1. Pass your key in the standard Authorization header. Every new account gets a key instantly after signing up with Google or email. There is no phone number required. The header format matches the official SDKs exactly.
- Header:
Authorization: Bearer YOUR_API_KEY - Base URL:
https://api.proxyclaude.com/v1
First request
Send a simple text completion to verify connectivity. Use the model ID uncensored for the default large language model. The endpoint accepts standard chat parameters. You can adjust temperature or set a seed for reproducibility. Errors return standard HTTP codes.
curl https://api.proxyclaude.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list all python packages installed in the current virtual environment"}]
}'
Python SDK usage
Initialize the client with the custom base URL. Pass your API key as the default argument. The library handles JSON serialization automatically. Requests route directly to the proxy without extra configuration steps. This method works for both synchronous and asynchronous workflows.
from openai import OpenAI
client = OpenAI(base_url="https://api.proxyclaude.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
Create a client instance pointing to the proxy base URL. Supply the API key during initialization. The SDK manages the request lifecycle. You can stream or buffer the response. The model ID remains constant across all requests. No complex routing logic is required.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.proxyclaude.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. The server sends Server-Sent Events (SSE). Each chunk contains partial text. The final chunk includes the token usage statistics. This approach reduces perceived latency significantly. Buffer the chunks on the client side.
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
The context window supports 100,000 tokens total. Output is capped at 16,000 tokens per request. You can send 300 requests per minute. A 401 error means the key is invalid. A 402 error indicates insufficient prepaid credit. A 429 error signals rate limiting. Errors do not consume tokens. Payment accepts crypto only.