Get your key
Get your key

Uncensored OpenAI-compatible API

Uncensored chat completions quickstart

Start sending uncensored text completions immediately with this openai compatible API that mirrors the official OpenAI client interface. You can integrate your existing codebase in minutes by pointing to our base URL and using a single API key.

Base URL and authentication setup

Point your client to our base URL and provide your key in the authorization header. The base URL is HTTPS://api.deepseektoken.cc/v1. You obtain your key by clicking "Continue with Google" or entering an email and password on the Get API key page. The key displays immediately and you should store it securely.

  • Authentication uses the standard Bearer token scheme.
  • Only one active key exists per account; generating a new one replaces the previous key.
  • No phone number verification is required for signup.

This setup works with any library that accepts a base URL override. You do not need to modify the library logic, only the configuration object.

Sending your first chat completion request

Send a POST request to /v1/chat/completions to receive a text response. The model identifier is "uncensored". This model answers without refusals for lawful adult content, fictional narratives, or controversial topics. It is not GPT, Claude, or DeepSeek; it is an open-weight model tuned by us.

curl https://api.deepseektoken.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Count tokens for this payload"}]
  }'

Ensure you set the content type to application/json. The request body contains your messages array. The system returns a completion object with the generated text. If you omit max_tokens, the default output limit is 2,048 tokens. You can increase this up to 16,000 tokens per request.

Python SDK integration

Install the official openai package and configure the base URL to point to our service. Pass your API key as the api_key parameter. This allows you to use the exact same Python code you would use for other providers. The library handles the HTTP requests and response parsing automatically.

from openai import OpenAI

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

You can call chat.completions.create with your messages. The response object contains the generated content. This approach minimizes boilerplate code. You can switch between different clients easily by just changing the base URL. The model ID remains "uncensored" regardless of the client library version you use.

Node SDK integration

Install the openai npm package and initialize the client with your base URL and key. This enables JavaScript developers to use the standard SDK methods. The configuration object accepts the custom base URL directly. This ensures compatibility with existing Node.js applications.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.deepseektoken.cc/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);

Call the chat.completions.create method with your message array. The response provides the generated text in the choices array. This method works for both synchronous and asynchronous contexts. You can handle errors by checking the response status code. The client library manages the HTTP connections efficiently.

Streaming responses and token usage tracking

Enable streaming by setting stream to true in your request. The server sends Server-Sent Events (SSE) for each token generated. This allows you to display text as it is produced. The final chunk contains the token usage statistics. You can track input and output token counts from this data.

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)

Streaming reduces perceived latency for long responses. You can parse the SSE data stream in your client. The token usage in the last chunk provides accurate billing data. Errors during streaming do not charge you for the tokens. This feature is essential for chat interfaces.

Limits, errors, and context window

The context window is 100,000 tokens for prompt and completion combined. You can send up to 16,000 tokens in the output. The request body size limit is 8 MB. You are allowed 300 requests per minute per key. Concurrent requests are limited to 8 at the same time.

  • 401 indicates an invalid or missing API key.
  • 402 means your prepaid credit is exhausted.
  • 429 signifies you have exceeded the rate limit.

Credit is prepaid and never expires. Errors and refusals are free. You can top up with USDT (TRC20) or USDC (Base). The minimum top-up is $20. Bonus credit applies for larger amounts. Start with the $0.50 trial credit to test these limits.

Common questions

Is this the official deepseek token API?

No, we are an independent service. We serve an uncensored open-weight model that is compatible with the OpenAI API format. Check the official DeepSeek documentation for their specific pricing and limits. Our model is not GPT, Claude, or DeepSeek.

How do I get uncensored deepseek API access?

You get access by signing up with your email or Google account. You receive an API key immediately. The model responds to lawful adult content without refusals. You can use the standard OpenAI SDK to interact with our endpoint.

What happens if I use my deepseek uncensored API key incorrectly?

A 401 error means your key is invalid or missing. A 402 error means you need to add credit. A 429 error means you hit the rate limit of 300 requests per minute. Errors do not consume your prepaid tokens. You can replace your key at any time.

Get your API key

Register, retrieve your key, update the base URL. Done.

Get your key