# Open Uncensored: guide for AI agents You are reading the machine guide to https://openuncensored.com. Open Uncensored is OpenRouter for uncensored models: one OpenAI compatible API for 48 abliterated and uncensored text models and 17 uncensored image models, with the text models ranked by the OpenUncensored Score. No markup, no commission: every request costs exactly the provider's price. No account, no sign up, no subscription: a prepaid API key is all you need. Everything a human can do on the website, you can do with the HTTP calls below or the MCP server. ## Fastest path 1. Pick a model: `GET https://openuncensored.com/api/rankings.json` (no key). Current top 5: `deepseek-v4.1-flash-1017-uncensored`, `glm-5.3-flash-uncensored`, `qwen3.8-27b-uncensored-fast`, `deepseek-v4.1-flash-0910-uncensored`, `deepseek-v4.1-flash-uncensored`. 2. Get a key: `POST https://openuncensored.com/api/agent/checkout`, hand the `payment_url` to your human, poll for the key (below). 3. Call it: OpenAI compatible `POST https://openuncensored.com/api/v1/chat/completions` (or `POST https://openuncensored.com/api/v1/responses` for Responses API clients such as Codex) with `Authorization: Bearer `. 4. Images: `POST https://openuncensored.com/api/v1/images/generations` with an uncensored image model from `GET https://openuncensored.com/api/v1/images/models` (e.g. `z-image-turbo`, about $0.01 per image). Same key and credits. Details in section 3. ## 1. Get an API key (agent flow, no browser for you) Credits are prepaid in US cents, 500 ($5) to 100000 ($1000). Payment is by card through Stripe, so a human pays once; you never need to visit the website. ```bash curl -X POST https://openuncensored.com/api/agent/checkout -H "Content-Type: application/json" -d '{"credits": 1000}' # -> {"payment_url": "https://checkout.stripe.com/...", "session_id": "cs_...", "claim_token": "...", ...} ``` Show `payment_url` to your human. Then poll every 5 seconds: ```bash curl https://openuncensored.com/api/agent/checkout/ -H "Authorization: Bearer " # -> {"status": "pending"} ... then {"status": "paid", "api_key": "ou-cus_...", "balance_cents": 1000} ``` `api_key` is returned exactly once. Store it (for example as `OU_API_KEY`). To add credit to an existing key, send `{"credits": 1000, "key": "ou-..."}`; the same poll then reports `"status": "paid"` with the new balance. `"status": "expired"` means the payment link timed out: start a new checkout. ## 2. Call the API Base URL `https://openuncensored.com/api/v1`. Works with any OpenAI SDK or tool (Cline, Kilo Code, Roo, Cursor, OpenCode, Claude Code via an OpenAI compatible provider, LangChain, LiteLLM): set the base URL and the key. ```bash curl https://openuncensored.com/api/v1/chat/completions \ -H "Authorization: Bearer $OU_API_KEY" -H "Content-Type: application/json" \ -d '{"model": "deepseek-v4.1-flash-1017-uncensored", "messages": [{"role": "user", "content": "Hello"}], "stream": false}' ``` ```python import os from openai import OpenAI client = OpenAI(base_url="https://openuncensored.com/api/v1", api_key=os.environ["OU_API_KEY"]) client.chat.completions.create(model="deepseek-v4.1-flash-1017-uncensored", messages=[{"role": "user", "content": "Hello"}]) ``` - Streaming: `"stream": true` (server-sent events, usage in the last chunk). - Tools: the OpenAI `tools` parameter is passed through to the provider. - Routing (optional): `"routing": {"strategy": "quality" | "speed" | "cost" | "random", "only": [...], "ignore": [...], "allow_fallbacks": true}`. - Fallbacks: providers are tried in order; one that fails or rejects the request hands over to the next. If none can serve the model, up to 2 other models built on the same original are tried, best ranked first. If everything fails, the error is the requested model's (for a rejected request, its first provider's message). Response header `X-OU-Model` (and `ou.model` in the body) names the model that answered; `X-OU-Provider` the provider. - Each response has `ou.cost_usd` (provider cost of the request). - Responses API: `POST https://openuncensored.com/api/v1/responses` also works (function, custom and namespaced MCP tools, streaming), so clients that only speak the Responses API, such as the Codex CLI, can use every model. Codex config: a provider with `base_url = "https://openuncensored.com/api/v1"`, `env_key = "OU_API_KEY"`, `wire_api = "responses"`. - Ready-made setup for the Vercel AI SDK, OpenCode, LiteLLM, Cline, Kilo, Roo and Codex: https://openuncensored.com/docs#integrations. ## 3. Images ```bash curl https://openuncensored.com/api/v1/images/generations -H "Authorization: Bearer $OU_API_KEY" -H "Content-Type: application/json" \ -d '{"model": "z-image-turbo", "prompt": "a red fox in fresh snow at sunrise", "size": "1024x1024", "n": 1}' # -> {"created": ..., "data": [{"b64_json": "..."}], "ou": {"model": "z-image-turbo", "providers": ["venice"], "cost_usd": ..., "images_failed": 0}} ``` - `n` 1 to 4; `size` one of auto, 256x256, 512x512, 1024x1024, 1536x1024, 1024x1536, 1792x1024, 1024x1792. - `response_format`: `b64_json` (default) or `url` (answered with a data URL; nothing is hosted). - `negative_prompt`: what to keep out of the image (used by the Civitai checkpoints). - Billed per image delivered, at the price in `GET https://openuncensored.com/api/v1/images/models` (all models and prices: https://openuncensored.com/models.md). - Adult content is allowed. Minors, real people without consent and non consensual imagery are not. ## 4. Balance, models, rankings | What | Call | Key needed | |---|---|---| | Remaining credit | `GET https://openuncensored.com/api/v1/credits` | yes | | All text models | `GET https://openuncensored.com/api/v1/models` | no | | One model | `GET https://openuncensored.com/api/v1/models/` | no | | Image models and prices | `GET https://openuncensored.com/api/v1/images/models` | no | | Live speed per model and provider | `GET https://openuncensored.com/api/v1/stats/latency` | no | | Rankings (JSON) | `GET https://openuncensored.com/api/rankings.json` | no | | OpenAPI spec | `GET https://openuncensored.com/openapi.json` | no | | Top up | `POST https://openuncensored.com/api/agent/checkout` with `key` | no (the key is in the body) | ## 5. Errors you can act on | HTTP | code | What to do | |---|---|---| | 401 | invalid_api_key | Missing or wrong key. Get one with `POST https://openuncensored.com/api/agent/checkout`. | | 402 | insufficient_quota | Credit used up. Top up: `POST https://openuncensored.com/api/agent/checkout` with `{"credits": 1000, "key": ""}`. | | 404 | model_not_found | Unknown model id. List ids with `GET https://openuncensored.com/api/v1/models`. | | 429 | rate_limit_exceeded | Every provider is rate limiting. Wait for `Retry-After`, or pick another model. | | 429 | concurrency_limit | Over 32 requests in flight on one key. Retry after `Retry-After` (1 s). | | 400 | upstream_rejected_request | Every provider rejected the request (for example images sent to a text model); the message is the first provider's. Fix the request. | | 400 | invalid_size | Image `size` not in the supported list (section 3). | | 502/503 | all_providers_failed / no_provider_available | Providers down; retry, or pick another model from the rankings. | | 503 | billing_unavailable | Credits could not be checked for a moment. Retry after `Retry-After` (5 s). | ## 6. MCP servers Two remote MCP servers (Streamable HTTP), both also listed in the official MCP Registry as `com.openuncensored/open-uncensored`. **For agents: `https://openuncensored.com/mcp`.** Pass your key as `Authorization: Bearer ` for the balance and chat tools; listing, rankings and buying work without it. ```bash claude mcp add --transport http open-uncensored https://openuncensored.com/mcp --header "Authorization: Bearer $OU_API_KEY" ``` Tools: `list_models`, `get_rankings`, `get_model`, `buy_credits`, `check_purchase`, `check_balance`, `chat`, `send_feedback`, `get_guide`. **For apps with OAuth (Claude, ChatGPT, Cursor and others): `https://openuncensored.com/mcp/connect`.** Add it as a custom connector; the app opens a sign-in page where the human pastes their API key once. Tools: `list_models`, `get_rankings`, `get_model`, `chat`, `check_balance`, `send_feedback` (text models only, no purchases). ## 7. Feedback Tell us what to improve, from you or your human: missing models, bugs, pricing, docs, anything that slowed you down. A human reads every submission. No key needed. ```bash curl -X POST https://openuncensored.com/api/feedback -H "Content-Type: application/json" \ -d '{"message": "What we should improve", "category": "model_request", "agent": "claude-code", "contact": "optional@email"}' ``` Categories: bug, model_request, pricing, docs, agent_experience, feature, other. Over MCP: the `send_feedback` tool. ## Pricing and policy - No markup, no commission: usage is billed at exactly the serving provider's per-token price, nothing on top; cached prompt tokens at the provider's cached price. No fee when buying credits. Unused credit is refundable (https://openuncensored.com/refunds). - Sexual content involving minors is prohibited on every model, route and provider. - Support: support@openuncensored.com or https://openuncensored.com/support. ## More - Model list with prices (text and image): https://openuncensored.com/models.md - Rankings with all components: https://openuncensored.com/rankings.md - Full docs in one file: https://openuncensored.com/llms-full.txt - Mac app for humans (chat and a coding agent with image generation on every model): `curl -fsSL https://openuncensored.com/install.sh | sh`, source https://github.com/DhruvAtreja/open-uncensored-desktop --- # API docs Base URL: `https://openuncensored.com/api/v1` (OpenAI compatible). Auth: `Authorization: Bearer ` (keys start with `ou-`). ## Endpoints - `POST /chat/completions`: OpenAI chat completions. Extra body field `routing` (optional). - `POST /responses`: OpenAI Responses API (function, custom and namespaced MCP tools, streaming), for Codex and other Responses clients. Stateless: send the whole conversation in `input` each turn (`previous_response_id` and `store` are not supported). - `POST /images/generations`: OpenAI image generation (uncensored models; adult content allowed; minors, real people without consent and non consensual imagery are not). `model`, `prompt`, `n` 1-4, `size` (auto, 256x256, 512x512, 1024x1024, 1536x1024, 1024x1536, 1792x1024, 1024x1792), `response_format` b64_json or url (a data URL), `negative_prompt` (Civitai models). Billed per image delivered. Civitai Red checkpoints (Pony, Illustrious, SDXL) are included. - `GET /images/models`: image models with price per image. No key needed. - `GET /models`, `GET /models/{id}`: catalogue with providers, prices and live provider metrics. No key needed. - `GET /stats/latency`: speed on real traffic per model and provider (p50/p90 latency, time to first token, tokens/s). No key needed. - `GET /credits`: remaining prepaid credit of the key (`remaining_usd`). - `POST https://openuncensored.com/api/feedback`: tell us what to improve (`{"message": "...", "category": "..."}`), no key needed. - MCP: `https://openuncensored.com/mcp` (agents, key in the header) and `https://openuncensored.com/mcp/connect` (apps, OAuth sign-in). See https://openuncensored.com/agents.md#6-mcp-servers. - OpenAPI: https://openuncensored.com/openapi.json ## Integrations Any OpenAI compatible client works with base URL `https://openuncensored.com/api/v1` and your key (below as `OPENUNCENSORED_API_KEY`). - Agent skill (Claude Code, Codex, Cursor, OpenCode and other agents): `npx skills add DhruvAtreja/open-uncensored-skills` installs a SKILL.md that teaches your agent to pick a model, get a key and call the API (https://skills.sh/dhruvatreja/open-uncensored-skills/open-uncensored). - Vercel AI SDK: `createOpenAICompatible({ name: "openuncensored", apiKey: process.env.OPENUNCENSORED_API_KEY, baseURL: "https://openuncensored.com/api/v1", includeUsage: true, supportsStructuredOutputs: true })` from `@ai-sdk/openai-compatible`, then `generateText({ model: openUncensored(""), ... })`. Tools with `stopWhen`, streaming, `Output.object` and `providerOptions.openuncensored.reasoningEffort` all work. - OpenCode 2 (`opencode.json`): `{"providers": {"openuncensored": {"name": "Open Uncensored", "env": ["OPENUNCENSORED_API_KEY"], "package": "@opencode/ai/providers/openai-compatible", "settings": {"baseURL": "https://openuncensored.com/api/v1"}, "models": {"": {}}}}}`, then `opencode run -m openuncensored/`. - LiteLLM: `litellm.completion(model="openai/", api_base="https://openuncensored.com/api/v1", api_key=...)`. - Cline, Kilo Code, Roo Code: API provider "OpenAI Compatible", base URL `https://openuncensored.com/api/v1`, your key, any model id. - Codex CLI: `[model_providers.openuncensored]` with `base_url = "https://openuncensored.com/api/v1"`, `env_key = "OPENUNCENSORED_API_KEY"`, `wire_api = "responses"`. Full snippets: https://openuncensored.com/docs#integrations ## Routing `"routing": {"strategy": "quality" | "speed" | "cost" | "random", "only": ["venice"], "ignore": ["nanogpt"], "allow_fallbacks": true}` or the header `X-OU-Strategy`. Fallbacks: providers are tried in order; one that fails or rejects the request hands over to the next. If none can serve the model, up to 2 other models built on the same original are tried, best ranked first. If everything fails, the error is the requested model's (for a rejected request, its first provider's message). `allow_fallbacks: false` turns off both the provider and the model fallbacks. Response headers: `X-OU-Model`, `X-OU-Provider`, `X-OU-Upstream-Model`, `X-OU-Strategy`, `X-OU-Attempts`, `X-OU-Latency-Ms`, `X-Request-ID`. ## Streaming `"stream": true` returns server-sent `chat.completion.chunk` events ending in `data: [DONE]`; usage is in the last chunk. ## Errors OpenAI style `{"error": {"message", "type", "code"}}`. 401 invalid_api_key, 402 insufficient_quota (top up), 404 model_not_found, 429 rate_limit_exceeded or concurrency_limit (32 requests in flight per key), 502 all_providers_failed, 503 no_provider_available or billing_unavailable, 400 upstream_rejected_request (every provider rejected it, for example images sent to a text model) and invalid_size (images). Details: https://openuncensored.com/agents.md#5-errors-you-can-act-on --- # Open Uncensored models 48 uncensored and abliterated text models and 17 uncensored image models behind one OpenAI compatible API at `https://openuncensored.com/api/v1`. Prices are USD per million tokens at the cheapest provider, and that is exactly what you pay: no markup, no commission (cached prompt tokens at the provider's cached price). Sorted by OpenUncensored Score rank. Machine-readable: `GET https://openuncensored.com/api/v1/models` (no key needed) or `https://openuncensored.com/api/rankings.json`. | id | name | input $/M | output $/M | context | providers | OU Score | speed (p50 first token · tok/s) | |---|---|---|---|---|---|---|---| | `deepseek-v4.1-flash-1017-uncensored` | DeepSeek V4.1 Flash 1017 Uncensored | $0.330 | $1.32 | 1049K | venice, nanogpt | #1 (69.8) | 758ms · 264 tok/s | | `deepseek-v4.1-flash-1017-uncensored-thinking` | DeepSeek V4.1 Flash 1017 Uncensored Thinking | $0.330 | $1.32 | 1049K | nanogpt | #1 (69.8) | 7.0s · 197 tok/s | | `glm-5.3-flash-uncensored` | GLM 5.3 Flash Uncensored | $0.200 | $0.800 | 1049K | nanogpt | #2 (69.7) | 2.6s · 111 tok/s | | `qwen3.8-27b-uncensored-fast` | Qwen 3.8 27B Uncensored Fast by Heabsy | $1.00 | $3.00 | 524K | nanogpt | #3 (66.8) | 594ms · 252 tok/s (test) | | `deepseek-v4.1-flash-0910-uncensored` | DeepSeek V4.1 Flash 0910 Uncensored | $0.330 | $1.32 | 524K | nanogpt | #4 (66.1) | 1.6s · 7 tok/s | | `deepseek-v4.1-flash-0910-uncensored-thinking` | DeepSeek V4.1 Flash 0910 Uncensored Thinking | $0.330 | $1.32 | 524K | nanogpt | #4 (66.1) | – | | `deepseek-v4.1-flash-uncensored` | DeepSeek V4.1 Flash Uncensored | $0.330 | $1.32 | 1049K | venice, nanogpt | #5 (64.3) | 912ms · 239 tok/s | | `deepseek-v4.1-flash-uncensored-thinking` | DeepSeek V4.1 Flash Uncensored Thinking | $0.330 | $1.32 | 1049K | nanogpt | #5 (64.3) | – | | `abliterated-large-flash` | Abliterated Large Flash | $1.00 | $2.00 | 1049K | abliteration-ai, venice, nanogpt | #6 (64.0) | 1.0s · 159 tok/s | | `mimo-v2.6-flash-uncensored` | MiMo V2.6 Flash Uncensored | $0.500 | $1.50 | 1049K | nanogpt | #7 (63.5) | 1.1s · 93 tok/s (test) | | `mimo-v2.6-flash-uncensored-thinking` | MiMo V2.6 Flash Uncensored Thinking | $0.500 | $1.50 | 1049K | nanogpt | #7 (63.5) | – | | `glm-5.3-flash-apex-abliterated` | Apex Flash 1 Abliterated | $0.150 | $0.500 | 1049K | nanogpt | #8 (63.2) | 6.4s · 11 tok/s | | `glm-5.3-uncensored` | GLM 5.3 Uncensored | $1.25 | $2.25 | 1049K | nanogpt | #9 (63.0) | 1.7s · 32 tok/s (test) | | `mimo-v2.6-flash-abliterated` | MiMo V2.6 Flash Abliterated | $0.500 | $1.50 | 1049K | nanogpt | #10 (62.6) | 1.2s · 83 tok/s (test) | | `abliterated-large-v2` | Abliterated Large v2 | $3.00 | $5.00 | 1049K | abliteration-ai, venice, nanogpt | #11 (62.0) | 4.2s · 110 tok/s | | `qwen3.8-27b-uncensored` | Phala: Qwen3.8 27B Uncensored (Aggressive) | $0.300 | $1.50 | 1049K | redpill, nanogpt | #12 (62.0) | 1.9s · 16 tok/s | | `qwen3.8-27b-uncensored-thinking` | Qwen 3.8 27B Uncensored Thinking | $1.00 | $3.00 | 1049K | nanogpt | #12 (62.0) | – | | `gemma-4-31b-gembrain-uncensored-heretic` | Gemma 4 31B Gembrain Uncensored Heretic | $0.306 | $0.306 | 262K | nanogpt | #13 (58.5) | 2.2s · 11 tok/s (test) | | `qwen3.5-27b-claude-4.6-opus-reasoning-distilled-derestricted` | Qwen3.5 27B Claude 4.6 Opus Reasoning Distilled Derestricted | $0.306 | $0.306 | 262K | nanogpt | #14 (57.8) | 2.8s · 28 tok/s (test) | | `qwen3.5-27b-queen-derestricted` | Qwen3.5 27B Queen Derestricted | $0.306 | $0.306 | 262K | nanogpt | #15 (57.3) | 3.0s · 32 tok/s (test) | | `qwen3.5-27b-bluestar-v3-derestricted` | Qwen3.5 27B BlueStar v3 Derestricted | $0.306 | $0.306 | 262K | nanogpt | #16 (56.4) | 7.7s · 24 tok/s (test) | | `qwen3.5-27b-blossom-v6.4-derestricted` | Qwen3.5 27B Blossom V6.4 Derestricted | $0.306 | $0.306 | 262K | nanogpt | #17 (56.3) | 3.4s · 24 tok/s (test) | | `gemma-4-uncensored` | Gemma 4 Uncensored | $0.163 | $0.500 | 256K | venice | #18 (54.6) | 450ms · 53 tok/s | | `gemma-4-26b-a4b-uncensored` | Gemma 4 26B A4B Uncensored TEE | $0.150 | $0.700 | 262K | nanogpt, redpill | #19 (52.8) | 1.6s · 44 tok/s (test) | | `olafangensan-glm-4.7-flash-heretic` | GLM 4.7 Flash Heretic | $0.070 | $0.400 | 200K | venice | #20 (52.7) | 501ms · 90 tok/s (test) | | `glm-4.6-derestricted-v5` | GLM 4.6 Derestricted v5 | $0.400 | $1.50 | 131K | nanogpt | #21 (50.2) | 2.3s · 29 tok/s (test) | | `qwen3.5-27b-claude-4.6-opus-reasoning-distilled-derestricted-lite` | Qwen3.5 27B Claude 4.6 Opus Reasoning Distilled Derestricted Lite | $0.306 | $0.306 | 262K | nanogpt | #22 (49.8) | 9.5s · 26 tok/s (test) | | `venice-uncensored` | Venice Uncensored 1.2 | $0.200 | $0.900 | 128K | venice, nanogpt | #23 (49.3) | 1.6s · 8 tok/s | | `venice-uncensored-role-play` | Venice Role Play Uncensored | $0.500 | $2.00 | 128K | venice | #24 (48.6) | 548ms · 80 tok/s (test) | | `qwen2.5-32b-instruct-abliterated` | Qwen 2.5 32B Abliterated | $0.700 | $0.700 | 33K | nanogpt | #25 (44.6) | 3.6s · 19 tok/s (test) | | `llama-3.3-70b-instruct-abliterated` | Llama 3.3 70B Instruct abliterated | $0.700 | $0.700 | 33K | nanogpt | #26 (41.7) | 2.5s · 19 tok/s (test) | | `deepseek-r1-distill-llama-70b-abliterated` | DeepSeek R1 Llama 70B Abliterated | $0.700 | $0.700 | 16K | nanogpt | #27 (40.4) | 6.7s · 18 tok/s (test) | | `deepseek-r1-distill-qwen-32b-abliterated` | DeepSeek R1 Qwen Abliterated | $1.40 | $1.40 | 16K | nanogpt | #28 (40.0) | 3.7s · 20 tok/s (test) | | `neuraldaredevil-8b-abliterated` | Neural Daredevil 8B abliterated | $0.440 | $0.440 | 8K | nanogpt | #29 (35.8) | 1.8s · 32 tok/s (test) | | `meta-llama-3-70b-instruct-abliterated-v3.5` | Llama 3 70B abliterated | $0.700 | $0.700 | 8K | nanogpt | #30 (34.4) | 2.9s · 17 tok/s (test) | | `aion-rp-llama-3.1-8b` | Llama 3.1 8b (uncensored) | $0.800 | $1.60 | 33K | nanogpt | #31 (33.6) | 1.8s · 36 tok/s (test) | | `abliterated-model` | Abliterated Model | $1.00 | $3.00 | 262K | abliteration-ai, nanogpt | unranked (68.4) | 1.0s · 222 tok/s (test) | | `aion-labs-aion-3-0` | Aion 3.0 | $3.75 | $7.50 | 128K | venice | unranked (44.3) | 859ms · 50 tok/s (test) | | `aion-labs-aion-3-0-mini` | Aion 3.0 Mini | $0.875 | $1.75 | 128K | venice | unranked (56.1) | 758ms · 64 tok/s (test) | | `aion-labs-aion-3-5` | Aion 3.5 | $3.75 | $7.50 | 262K | venice | unranked (63.6) | 1.6s · 56 tok/s (test) | | `aion-labs-aion-3-5-mini` | Aion 3.5 Mini | $0.875 | $1.75 | 262K | venice | unranked (78.6) | 1.9s · 65 tok/s (test) | | `cyberheabsy` | CyberHeabsy | $1.50 | $4.50 | 1049K | nanogpt | unranked (59.9) | 718ms · 132 tok/s (test) | | `deepseek-v4.1-flash-1017-heretic` | DeepSeek V4.1 Flash Heretic | $0.198 | $0.792 | 512K | nanogpt | unranked (72.7) | 1.3s · 85 tok/s (test) | | `deepseek-v4.1-flash-1017-heretic-thinking` | DeepSeek V4.1 Flash Heretic Thinking | $0.198 | $0.792 | 512K | nanogpt | unranked (72.7) | – | | `gemma-4-26b-a4b-it-chimeraxheretic` | Gemma 4 26B A4B Chimera X Heretic | $0.120 | $0.380 | 262K | nanogpt | unranked (61.9) | 4.4s · 75 tok/s | | `gemma-4-31b-cognitive-unshackled` | Gemma 4 31B Cognitive Unshackled | $0.306 | $0.306 | 262K | nanogpt | unranked (59.6) | 2.7s · 19 tok/s (test) | | `gemma-4-31b-sdft-heretic-rp` | Gemma 4 31B SDFT Heretic RP | $0.306 | $0.306 | 262K | nanogpt | unranked (61.3) | 2.1s · 29 tok/s (test) | | `grayline-qwen3-8b` | Grayline Qwen3 8B | $0.300 | $0.300 | 33K | nanogpt | not measured | – | Speed is measured on real API traffic over the last 7 days (`GET https://openuncensored.com/api/v1/stats/latency`) once a model has 5 successful requests; until then it is our speed test (5 streamed requests through the provider we measure on), marked (test). Use the `id` as `model` in chat completions. Model detail: `https://openuncensored.com/models/.md`. ## Image models 17 uncensored image models for `POST https://openuncensored.com/api/v1/images/generations`. The price per image is what is charged to your credits. Machine-readable: `GET https://openuncensored.com/api/v1/images/models` (no key needed). | id | name | per image | providers | notes | |---|---|---|---|---| | `z-image-turbo` | Z-Image Turbo | $0.0100 | venice, nanogpt | Fast photorealistic model from Alibaba Tongyi (Apache 2.0). Good default. | | `lustify-v8` | Lustify v8 | $0.0100 | venice | SDXL fine-tune for explicit adult photography. Venice tags it most uncensored. | | `lustify-v7` | Lustify v7 | $0.0100 | venice | Earlier Lustify release, explicit adult photography. | | `lustify-sdxl` | Lustify SDXL | $0.0100 | venice | The original Lustify SDXL checkpoint. | | `chroma` | Chroma | $0.0100 | venice, nanogpt | Uncensored FLUX.1-schnell derivative (Apache 2.0), strong at prompt following. | | `qwen-image` | Qwen Image | $0.0300 | venice | Alibaba's Qwen-Image (Apache 2.0). Best text rendering inside images. | | `qwen-image-3-uncensored` | Qwen Image 3 Uncensored | $0.0400 | nanogpt | Uncensored Qwen Image 3, high detail at 1K and 2K. | | `hidream-o1-dev` | HiDream O1 Dev | $0.0200 | nanogpt | HiDream's fast 2K model, allows adult content. | | `juggernaut-xl` | Juggernaut XL | $0.0130 | civitai | The most downloaded SDXL photoreal checkpoint on Civitai. Runs on Civitai. | | `cyberrealistic-xl` | CyberRealistic XL | $0.0150 | civitai | Photoreal SDXL checkpoint, strong on people. Runs on Civitai. | | `pornmaster` | PornMaster | $0.0130 | civitai | SDXL checkpoint for explicit adult photography. Runs on Civitai. | | `pony-diffusion-v6` | Pony Diffusion V6 XL | $0.0130 | civitai | The original Pony model for stylised and adult art. Start prompts with "score_9, score_8_up, score_7_up". Runs on Civitai. | | `cyberrealistic-pony` | CyberRealistic Pony | $0.0150 | civitai | Photoreal Pony fine-tune for adult content. Use Pony score tags. Runs on Civitai. | | `pony-realism` | Pony Realism | $0.0150 | civitai | Realistic Pony fine-tune for adult content. Use Pony score tags. Runs on Civitai. | | `wai-illustrious` | WAI Illustrious | $0.0130 | civitai | The most popular Illustrious anime checkpoint. Start prompts with "masterpiece, best quality". Runs on Civitai. | | `hassaku-xl` | Hassaku XL | $0.0130 | civitai | Illustrious based anime checkpoint for adult art. Runs on Civitai. | | `noobai-xl` | NoobAI XL | $0.0130 | civitai | Illustrious derived anime base model trained on Danbooru and e621 tags. Runs on Civitai. | --- # The OpenUncensored Score Ranking of every uncensored model on the API. Weights: Intelligence 40% (Original model's published GPQA Diamond and HLE); Agentic 30% (5 tool scenarios: completion, no loops, no crashes); Non-refusal 15% (36 edgy requests answered, including finding people); Speed 10% (Time for a 500 token answer: 2 s or less scores 100, 60 s or more 0); Low drift 5% (How close it stays to the original model). Intelligence is the published score (GPQA Diamond and Humanity's Last Exam, Artificial Analysis) of the original model each one was made from. Agentic, non-refusal and drift are measured by us. Hard-line refusals (share of 14 must-refuse prompts refused: sexual content involving minors, mass-casualty weapons, attack planning) are reported, not scored. Rank "–" means not ranked yet (original unpublished or a test incomplete). JSON: `https://openuncensored.com/api/rankings.json`. Method: `https://openuncensored.com/methodology`. | rank | model id | score | intelligence | agentic | non-refusal | speed | drift | loops | hard-line refusals | original | |---|---|---|---|---|---|---|---|---|---|---| | 1 | `deepseek-v4.1-flash-1017-uncensored` | 69.8 | 68 | 55 | 100 | 85 (174 tok/s) | 55 | 0% | 0% | DeepSeek V4.1 Flash 1017 | | 2 | `glm-5.3-flash-uncensored` | 69.7 | 66 | 66 | 94 | 66 (125 tok/s) | 57 | 40% | 14% | GLM 5.3 Flash | | 3 | `qwen3.8-27b-uncensored-fast` | 66.8 | 62 | 49 | 100 | 93 (252 tok/s) | 60 | 60% | 0% | Qwen 3.8 27B | | 4 | `deepseek-v4.1-flash-0910-uncensored` | 66.1 | 65 | 53 | 97 | 63 (90 tok/s) | 65 | 20% | 0% | DeepSeek V4.1 Flash | | 5 | `deepseek-v4.1-flash-uncensored` | 64.3 | 65 | 40 | 100 | 86 (180 tok/s) | 53 | 0% | 0% | DeepSeek V4.1 Flash | | 6 | `abliterated-large-flash` | 64.0 | 68 | 38 | 92 | 92 (296 tok/s) | 54 | 20% | 0% | DeepSeek V4.1 Flash 1017 | | 7 | `mimo-v2.6-flash-uncensored` | 63.5 | 62 | 55 | 83 | 65 (93 tok/s) | 61 | 0% | 93% | MiMo V2.6 Flash | | 8 | `glm-5.3-flash-apex-abliterated` | 63.2 | 66 | 70 | 86 | 0 (7 tok/s) | 61 | 0% | 100% | GLM 5.3 Flash | | 9 | `glm-5.3-uncensored` | 63.0 | 67 | 53 | 92 | 36 (32 tok/s) | 59 | 20% | 0% | GLM 5.3 | | 10 | `mimo-v2.6-flash-abliterated` | 62.6 | 62 | 53 | 83 | 63 (83 tok/s) | 60 | 20% | 93% | MiMo V2.6 Flash | | 11 | `abliterated-large-v2` | 62.0 | 67 | 36 | 94 | 74 (138 tok/s) | 58 | 40% | 0% | GLM 5.3 | | 12 | `qwen3.8-27b-uncensored` | 62.0 | 62 | 49 | 100 | 51 (49 tok/s) | 47 | 60% | 0% | Qwen 3.8 27B | | 13 | `gemma-4-31b-gembrain-uncensored-heretic` | 58.5 | 55 | 66 | 89 | 7 (11 tok/s) | 55 | 40% | 0% | Gemma 4 31B | | 14 | `qwen3.5-27b-claude-4.6-opus-reasoning-distilled-derestricted` | 57.8 | 55 | 51 | 100 | 32 (28 tok/s) | 49 | 40% | 0% | Qwen3.5 27B | | 15 | `qwen3.5-27b-queen-derestricted` | 57.3 | 55 | 49 | 100 | 35 (32 tok/s) | 45 | 60% | 0% | Qwen3.5 27B | | 16 | `qwen3.5-27b-bluestar-v3-derestricted` | 56.4 | 55 | 49 | 100 | 22 (24 tok/s) | 51 | 60% | 0% | Qwen3.5 27B | | 17 | `qwen3.5-27b-blossom-v6.4-derestricted` | 56.3 | 55 | 49 | 100 | 27 (24 tok/s) | 40 | 60% | 0% | Qwen3.5 27B | | 18 | `gemma-4-uncensored` | 54.6 | 42 | 53 | 100 | 44 (39 tok/s) | 55 | 20% | 0% | Gemma 4 26B A4B non-reasoning | | 19 | `gemma-4-26b-a4b-uncensored` | 52.8 | 49 | 36 | 100 | 45 (44 tok/s) | 55 | 40% | 0% | Gemma 4 26B A4B | | 20 | `olafangensan-glm-4.7-flash-heretic` | 52.7 | 33 | 51 | 100 | 67 (90 tok/s) | 51 | 40% | 0% | GLM 4.7 Flash | | 21 | `glm-4.6-derestricted-v5` | 50.2 | 46 | 38 | 100 | 33 (29 tok/s) | 41 | 20% | 0% | GLM 4.6 | | 22 | `qwen3.5-27b-claude-4.6-opus-reasoning-distilled-derestricted-lite` | 49.8 | 55 | 34 | 89 | 21 (26 tok/s) | 43 | 60% | 100% | Qwen3.5 27B | | 23 | `venice-uncensored` | 49.3 | 25 | 49 | 100 | 69 (97 tok/s) | 54 | 60% | 0% | Mistral Small 24B Instruct 2501 | | 24 | `venice-uncensored-role-play` | 48.6 | 27 | 49 | 92 | 64 (80 tok/s) | 55 | 60% | 0% | Mistral Small 3.2 24B | | 25 | `qwen2.5-32b-instruct-abliterated` | 44.6 | 25 | 49 | 100 | 20 (19 tok/s) | 55 | 60% | 0% | Qwen2.5 32B Instruct | | 26 | `llama-3.3-70b-instruct-abliterated` | 41.7 | 27 | 36 | 100 | 21 (19 tok/s) | 62 | 40% | 0% | Llama 3.3 70B Instruct | | 27 | `deepseek-r1-distill-llama-70b-abliterated` | 40.4 | 23 | 40 | 100 | 16 (18 tok/s) | 55 | 0% | 0% | DeepSeek R1 Distill Llama 70B | | 28 | `deepseek-r1-distill-qwen-32b-abliterated` | 40.0 | 33 | 23 | 100 | 22 (20 tok/s) | 55 | 20% | 0% | DeepSeek R1 Distill Qwen 32B | | 29 | `neuraldaredevil-8b-abliterated` | 35.8 | 17 | 25 | 100 | 37 (32 tok/s) | 55 | 0% | 14% | Llama 3 8B Instruct | | 30 | `meta-llama-3-70b-instruct-abliterated-v3.5` | 34.4 | 21 | 21 | 100 | 18 (17 tok/s) | 55 | 40% | 0% | Llama 3 70B Instruct | | 31 | `aion-rp-llama-3.1-8b` | 33.6 | 16 | 19 | 100 | 39 (36 tok/s) | 55 | 60% | 7% | Llama 3.1 8B Instruct | | – | `aion-labs-aion-3-5-mini` | 78.6 | – | 83 | 94 | 54 (65 tok/s) | 55 | 20% | 7% | unpublished | | – | `deepseek-v4.1-flash-1017-heretic` | 72.7 | 68 | – | 94 | 63 (85 tok/s) | 69 | –% | 0% | DeepSeek V4.1 Flash 1017 | | – | `abliterated-model` | 68.4 | – | 49 | 100 | 86 (222 tok/s) | 55 | 60% | 0% | unpublished | | – | `aion-labs-aion-3-5` | 63.6 | – | 55 | 92 | 51 (56 tok/s) | 55 | 0% | 29% | unpublished | | – | `gemma-4-26b-a4b-it-chimeraxheretic` | 61.9 | 49 | – | 100 | 59 (76 tok/s) | 55 | –% | 0% | Gemma 4 26B A4B | | – | `gemma-4-31b-sdft-heretic-rp` | 61.3 | 55 | – | 100 | 33 (29 tok/s) | 55 | –% | 17% | Gemma 4 31B | | – | `cyberheabsy` | 59.9 | – | 38 | 94 | 76 (132 tok/s) | 55 | 20% | 0% | unpublished | | – | `gemma-4-31b-cognitive-unshackled` | 59.6 | 55 | – | 100 | 21 (19 tok/s) | 55 | –% | 100% | Gemma 4 31B | | – | `aion-labs-aion-3-0-mini` | 56.1 | – | 38 | 92 | 57 (64 tok/s) | 55 | 20% | 14% | unpublished | | – | `aion-labs-aion-3-0` | 44.3 | – | 21 | 83 | 50 (50 tok/s) | 55 | 40% | 100% | unpublished | Picking a model: the top of this table balances smarts and agent reliability. If a model cannot be served, the API tries up to 2 other models built on the same original, best ranked first (turn off with `"routing": {"allow_fallbacks": false}`); the `X-OU-Model` response header says which model answered. --- # Credits Prepaid credits in US dollars, sold at face value with no fee at checkout. No markup, no commission: every request costs exactly the provider's price. No account, no subscription, no password: the API key is your account. - Humans: https://openuncensored.com/credits (card via Stripe; the key is shown once after payment). - Agents: `POST https://openuncensored.com/api/agent/checkout` with `{"credits": 1000}`; see https://openuncensored.com/agents.md. - Top up an existing key the same way with `"key": "ou-..."`. - Balance: `GET https://openuncensored.com/api/v1/credits` with the key. - Refunds of unused credit: https://openuncensored.com/refunds.