Mistral NSFW API: A Hosted Uncensored Option
A mistral nsfw api search usually means one thing: you want a text model that writes adult fiction without refusing, behind an endpoint your app can call. This guide compares the options and shows a working call to a hosted, OpenAI-compatible uncensored API for lawful adult use.

Summary
- Three routes exist: a local GPU, a rented GPU server, or a hosted API with a model tuned not to refuse.
- This service is not Mistral's official API. It serves one independent open-weight model under the ID uncensored.
- Calls use the OpenAI SDK: change the base URL, key and model name, nothing else.
- You still own the age gate and your product rules. Sexual content involving minors is never allowed.
The short answer
If your app writes fiction, roleplay or companion chat for adults and mainstream APIs keep declining, you can run an open-weight model on your own GPU, rent a GPU server and run it there, or call a hosted API that already serves a model tuned to answer without content refusals. The third route is the fastest to start. This site offers it: one model, the ID uncensored, behind an OpenAI-compatible endpoint at https://api.mistralnsfw.com/v1.
One clarification before anything else. This is not Mistral AI's official API, and it does not route your requests to Mistral or to any other vendor. It is a single open-weight model run by an independent provider. If you need Mistral's own hosted models, use Mistral's platform and read its current terms.
Why mainstream APIs refuse adult fiction
Large vendors train their models to decline some requests, and many add moderation layers on top. The details differ by vendor and change over time, so check each vendor's current usage policy instead of trusting forum summaries. For an app that is legal and aimed at adults, the outcome is an unreliable product: a scene works on Monday, gets declined on Tuesday, and your user sees an apology instead of a story.
A system prompt cannot fix this reliably, because much of the refusal behaviour is stored in the model weights. Teams building adult fiction tools therefore tend to change the model instead of arguing with the one they have. Our guide to NSFW chatbots and uncensored generation covers the generation side in more depth.
There is also a business angle. Every unexpected refusal turns into a support ticket, a bad review or a lost subscriber. Teams that depend on a vendor's filter also depend on the vendor never changing it, and that is a risky thing to build a paid product on. A model whose behaviour you can test once and rely on is easier to run than one you have to retest after every change.
Three ways to get an uncensored text model
| Route | What you do | Control | Best when |
|---|---|---|---|
| Local GPU | Download open weights and run a server such as llama.cpp, Ollama or vLLM | Full: any weights, any sampler | You own the hardware and like to experiment |
| Rented GPU server | Run the same software on a rented machine and keep it online yourself | High, plus the ops work | You have steady traffic and someone to run servers |
| Hosted API | Create a key, change the base URL | One model, with the common sampling parameters passed through | You want to ship this week without hardware |
Be honest about the trade. If you need specific weights, a custom LoRA or exotic samplers, host it yourself. If you need an endpoint that works today and bills by the token, the hosted route wins on time to first request.
Use cases that fit, and ones that do not
Match the tool to the job before you write code. A hosted text model without content refusals fits these adult-facing products well:
- Interactive fiction and text adventures where the story can turn dark, violent or romantic.
- Roleplay and companion apps for verified adults, where a character should stay in voice instead of breaking the scene with a refusal.
- Writing assistants for novelists in romance, horror and crime, who need a drafting partner that does not flinch at the genre.
- Dialogue generation for games, where non-player characters need to sound hostile, flirtatious or cruel when the script calls for it.
It is the wrong tool in a few cases. The service is text only, so it cannot make images, voices or video. It offers no embeddings, so a search feature needs another provider. And it is never a route to sexual content involving minors, which is blocked without exception. If your idea needs any of those, rethink the design first.
Call the API in two minutes
Sign up on the API key page with Google or with email and password. New users can claim $0.50 of trial credit with one click, valid for 7 days and without any payment details. Then send a first request:
curl https://api.mistralnsfw.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Write the opening paragraph of a noir romance set in a rainy port city."}
]
}'
The same call with the official OpenAI Python SDK:
from openai import OpenAI
client = OpenAI(
base_url="https://api.mistralnsfw.com/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are the narrator of an adult fiction app."},
{"role": "user", "content": "Continue the scene: the two leads meet again after five years."},
],
temperature=0.9,
)
print(resp.choices[0].message.content)
Add stream=True for token-by-token output in a chat UI. The trial key allows 2 concurrent requests and 60 requests per minute, which is plenty for testing. Full parameter details are in the API docs.
Other OpenAI features work the same way. JSON mode takes response_format={"type": "json_object"}, handy when your app tracks story state such as location, mood and inventory as a JSON object. Tool calling works through tools and tool_choice, so a character can trigger a dice roll or a lookup in your own code. You can check your balance at any time with GET /v1/balance or from the X-Balance-USD header on any response.
Write the rules into the system prompt
An uncensored model does not mean a model without direction. The system prompt is where your product decides what it is. A few habits make adult fiction output noticeably better:
- State the context. Say the app is an adult fiction platform and describe the genre, point of view and tense.
- Set your own limits. If your product excludes certain themes, name them. The model will not guess your brand rules.
- Fix the format. Ask for narration in the third person, dialogue in quotes, and a target length in paragraphs.
- Keep characters adult. Give every character an explicit adult age in the character sheet. This also helps your own moderation checks.
- Cut the preamble. Tell the model not to add disclaimers or out-of-character notes unless the user asks.
Keep the prompt stable across turns and resend the conversation history with each request, since the API is stateless. The context window is 100,000 tokens for prompt plus completion, so long sessions fit, but trim old turns when you can to keep the bill small.
Age gate and policy notes
The hard limit is simple: no sexual content involving minors, in any framing. Build that into your product as well, not only into the model's behaviour. A sound baseline looks like this:
- Gate the app behind an age check before any chat starts. Requirements differ by country, from a simple confirmation to document verification, so check the rules where your users live.
- Reject character sheets or prompts that describe a minor in a sexual or romantic context before they ever reach the API.
- Show a report button and act on reports quickly.
- Log request IDs, not full chats, unless you need transcripts. Every response carries an
X-Request-Idheader you can store. - Read the service terms and write your own terms for your users.
On the provider side, prompts are not used for training. That is a statement about this service only, so tell your own users what you store yourself.
What it costs
Billing is pay as you go from prepaid credit, with no subscription. The price is $0.15 per 1M input tokens and $0.50 per 1M output tokens. A chat turn with a 2,000-token prompt and a 500-token reply costs $0.0003 for input plus $0.00025 for output, so $0.00055 in total. A thousand such turns cost $0.55.
Top up with any whole amount from $20 to $500, paid in crypto (USDT on TRC20 or USDC on Base). Larger top-ups add a bonus: +5% from $50, +10% from $100, +15% from $200. Credit never expires. The full list is on the pricing page.
Here is a monthly example. An app with 500 chat turns a day, each at 2,000 input and 500 output tokens, spends 500 x $0.00055 = $0.275 per day, or $8.25 over 30 days. Even a busy hobby project stays small, and a quiet month costs nothing because there is no subscription.
More guides
Common questions
Is this the official Mistral API?
No. It is an independent hosted service with one open-weight model under the ID uncensored. It is not run by Mistral AI and does not route to Mistral or other vendors.
Can it generate images or audio?
No. The service is text only. There is no image, audio or video generation, no embeddings and no fine-tuning.
Does it have any content limit?
The model answers without content refusals for lawful adult use. The hard limit is that sexual content involving minors is never allowed.
How do I pay?
With crypto only: USDT on TRC20 or USDC on Base. Top-ups start at $20 and go up to $500.
Are my prompts used for training?
No. Prompts are not used for training.
Get your API key now
Register, copy the key, update the base URL. That is all.