Uncensored DeepSeek API
The uncensored DeepSeek model on FlyRouter uses model ID deepseek-v4.1-flash-uncensored. It works with OpenAI Chat Completions, is billed per token, and connects to chat clients such as SillyTavern through a custom OpenAI-compatible endpoint.
Updated:
What it is
The uncensored variant is a separate model ID with its own price. It is not the same model as the standard deepseek-v4.1-flash, and no parameter or system prompt turns the standard model into it. Set model to deepseek-v4.1-flash-uncensored.
| Model ID | Notes |
|---|---|
deepseek-v4.1-flash | Standard Flash |
deepseek-v4.1-flash-uncensored | Uncensored variant, the subject of this guide |
deepseek-v4.1-flash-1017 | October 17 snapshot of Flash |
deepseek-v4-pro | Pro |
Live prices, 24-hour success rates and latency for every model are public on the pricing page; the uncensored variant has its own model page. Prices follow upstream changes, so treat the page as the source of truth.
Call it through the API
Set the Base URL to https://api.flyrouter.ai/v1 and model to deepseek-v4.1-flash-uncensored. Everything else matches other OpenAI-compatible models:
curl https://api.flyrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $FLYROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-uncensored",
"messages": [{"role": "user", "content": "Describe a narrow alley on a rainy night"}]
}'import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["FLYROUTER_API_KEY"], base_url="https://api.flyrouter.ai/v1")
response = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=[{"role": "user", "content": "Describe a narrow alley on a rainy night"}],
)
print(response.choices[0].message.content)No key yet? Follow the quickstart to sign up, add credit and create one.
Streaming
Turn on streaming for chat and long-form output by adding "stream": true to the request body:
stream = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=[{"role": "user", "content": "Describe a narrow alley on a rainy night"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)See streaming for reconnects and cancellation.
Use it in SillyTavern
SillyTavern accepts custom OpenAI-compatible endpoints. Connect in five steps:
- Open the API Connections panel and set API to Chat Completion.
- Set Chat Completion Source to Custom (OpenAI-compatible).
- Enter
https://api.flyrouter.ai/v1as the Custom Endpoint (Base URL). - Paste your FlyRouter API key into Custom API Key.
- Type
deepseek-v4.1-flash-uncensoredinto Enter a Model ID and click Connect.
Send one message after connecting, then check the model ID and charge in your console request log. Other clients with a custom OpenAI endpoint take the same three values; for Cherry Studio see the integration guide.
Try it first
To test without writing code, open the playground with this model preselected.
Acceptable use
Uncensored means the model itself applies fewer response restrictions. It does not make every use acceptable: the terms of service and applicable law still apply. Actual responses depend on the model, and this guide makes no promise about what it will or will not answer.
FAQ
Can I turn the standard model into the uncensored one?
No. They are different model IDs. Parameters and system prompts do not change the standard model's response policy.
Which endpoints are supported?
The examples here use the OpenAI-compatible /v1/chat/completions endpoint with optional streaming. For other protocols, check the endpoint formats listed on the model page.
How is it billed?
Input and output tokens are billed separately, and cache reads have their own rate. See live prices on the model page and estimate spend with the API cost calculator.