Mukenetsu AI API Quick Start
Mukenetsu AI API is an uncensored LLM service with an OpenAI-compatible standard endpoint. It can be instantly integrated into existing SDKs and clients by simply changing the Base URL and setting the API key, allowing text generation without content restrictions.
- Base URL
https://api.mukenetsuapi.com/v1- Model
uncensored
Basic setup and base URL
Mukenetsu AI is designed as an OpenAI-compatible REST API. This allows you to use existing OpenAI clients and SDKs with minimal changes. Use the following base URL to communicate with the API.
https://api.mukenetsuapi.com/v1
Unlike other LLM services, there is no need to select complex endpoints or add extra configuration. Only a single chat completion endpoint and a model list endpoint are provided. This simple structure allows development to proceed quickly.
You can get an API key immediately upon signing up on the Get API key page using your email and password. No dashboard action is required. Also, we value privacy and do not use prompt data for model training.
Authentication and API key
Access to the API requires authentication via the Authorization: Bearer <API_KEY> header. Use the API key generated when you created your account. One API key is assigned per account, but you can regenerate it at any time. Note that regenerating the key invalidates the previous one.
If an authentication error occurs, a 401 (Unauthorized) or 402 (Payment Required) response is typically returned. 401 indicates the key is incorrect or invalidated, and 402 means the account's prepaid credit balance is insufficient. Credits are prepaid and can be topped up from $10 or more with cryptocurrency (USDT, USDC).
Chat completion endpoint
The primary endpoint for text generation is POST /v1/chat/completions. By sending a request to this endpoint, you can generate text including conversation history and system prompts. Specify the model ID as uncensored. This is our own open-weight model, different from OpenAI's GPT or other vendors' models.
The following example shows how to perform basic text generation using curl. The required parameters are the model ID, messages, and optionally enabling streaming.
curl https://api.mukenetsuapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'This endpoint does not provide features such as embeddings, image generation, or voice conversion. It is specialized purely for text completion and generation.
Streaming (SSE)
If you want to receive generated text in real time, you can use streaming mode. Including "stream": true in the request causes the server to return data sequentially in Server-Sent Events (SSE) format. This allows users to display part of the text before generation is complete.
If you are using the Python OpenAI SDK or Node.js client library, streaming is handled automatically by specifying the stream=True option. The event handler receives chunks per token.
from openai import OpenAI
client = OpenAI(base_url="https://api.mukenetsuapi.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)Streaming is an important feature for improving user experience in long responses or interactive applications. However, if the connection is lost during streaming, you will no longer receive subsequent events.
Tools/function calling
The Mukenetsu AI API supports function calling. This facilitates integration with external APIs and databases. By including the tools field and tool_choice parameter in the request body, you can have the model execute specific functions.
The model decides whether to call a function or return normal text as needed. Once the call is complete, you can get a more detailed answer by adding the function result to messages and passing it back to the model.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.mukenetsuapi.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);This feature is particularly useful for agent-type applications and automating complex tasks. Since it adopts an OpenAI-compatible format, you can reuse existing function calling logic as is.
Rate limits and constraints
The API has the following limits: a maximum of 300 requests per minute and a maximum request body size of 8 MB. Exceeding these will return a 429 (Too Many Requests) error. The context window is 100,000 tokens (total of prompt plus generated text). Longer conversations or documents exceeding this must be split appropriately before sending.
When receiving a streaming response, follow the event flow below.
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)Additionally, sexual content involving minors is strictly restricted. This is for compliant operation. Other legal adult content, fiction, security research, and controversial topics are generated without censorship.
Specs at a glance
A quick checklist for developers: format, limits, features, billing.
| Spec | Value |
|---|---|
| Protocol | OpenAI Chat Completions schema; official openai SDKs work unchanged |
| Model ID | uncensored |
| Methods | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.mukenetsuapi.com/v1 |
| API key | Bearer token in the Authorization header |
| SSE streaming | Yes — server-sent events; the last chunk carries token usage |
| Other parameters | temperature, top_p, stop, seed and the two penalties are passed through |
| JSON mode | response_format: {"type": "json_object"} |
| Max context | 100,000 tokens (prompt + completion together) |
| Max output | up to the rest of the 100,000-token window; max_tokens optional (no separate cap) |
| Tools / tool calls | Supported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages |
| Max body | up to 8 MB per request |
| Concurrency | 8 requests at the same time per key |
| Response headers | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Rate limit | 300 requests per minute per key |
| Free trial | $0.50 of credit valid 7 days, no card needed · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up |
| How you pay | prepaid credit, charged by real token usage; errors and refusals are free |
| Subscription | no monthly fee; paid credit does not expire |
| Payment | USDT (TRC20) or USDC (Base), any whole amount from $10 to $500 |
| Volume bonus | +5% on $50+, +10% on $100+ |
| Token prices | input $0.25 / 1M tokens, output $1.00 / 1M tokens |
| Content | uncensored for adults; the only hard rule: no sexual content involving minors |
| Account | Google or e-mail and password |
| Key management | one active key per account; a new key replaces the old one |
Error reference
Errors come back as JSON with a stable type; failed and refused requests are not billed.
| HTTP | Type | What to do |
|---|---|---|
400 | bad_request | invalid JSON, empty messages, bad parameter, or prompt + max_tokens over the window — fix and resend |
401 | missing_key · invalid_key · key_revoked | check the Authorization header or use your current key |
402 | no_credit | balance is empty — top up, requests resume at once |
403 | content_blocked | sexual content involving minors — refused, not billed |
404 | not_found | only /v1/chat/completions and /v1/models exist |
413 | request_too_large | body over 8 MB |
429 | rate_limited · concurrency | slow down: rate or parallel limit reached |
503 | upstream_busy | model busy — retry in a few seconds |
Frequently Asked Questions
Where do I get an API key?
You get an API key immediately when you sign up with your email and password on the "Get API key" page. No dashboard action is needed; the key is displayed on screen right after sign up.
Which model is used?
We use our own open-weight model with the model ID "uncensored". Unlike other models such as GPT, Claude, and Gemini, it runs on our GPU servers. The model's detailed architecture and benchmark scores are not currently published.
What happens if an error occurs during streaming?
If the connection is lost during streaming, you will no longer receive subsequent events. If needed, resend the request from the point of disconnection or send a normal (non-streaming) request to get the full response.
Get an API key with a single form
Create an account, copy the key, and change the base URL. That's all you need to complete the setup.