EN ▾
mimoapi.topUncensored OpenAI-compatible API for developers
uncensoredhttps://api.mimoapi.top/v1

Mimo API Base URL and How to Configure Clients

The base URL is https://api.mimoapi.top/v1, the model ID is uncensored, and the key goes in a Bearer header. Below is where each value goes in common tools, and what to check when a request fails.

Updated

Glowing path of tiles connecting a laptop to a server tower, illustrating the base URL that links a client to an LLM API

The values to copy

Anyone looking for the mimo api base url needs three values, and everything else is a detail of the tool you are configuring.

SettingValue
Base URLhttps://api.mimoapi.top/v1
Model IDuncensored
Auth headerAuthorization: Bearer YOUR_KEY
Chat endpointPOST /v1/chat/completions
Model listGET /v1/models

The service is OpenAI-compatible, so any client that lets you change the OpenAI base URL and key will work. It is a hosted text API running one open-weight model from an independent provider; it is not the official API of any model vendor. Text only: there is no image, audio or video generation, no embeddings and no fine-tuning, so clients that expect those endpoints will not find them. If you do not have a key yet, the key page takes a minute.

Base URL versus full endpoint

The most common confusion is between the base URL and the endpoint URL. The base URL stops at /v1. The endpoint is the base plus a path. Official OpenAI SDKs, and most tools built on them, join the two for you.

  • Base URL: https://api.mimoapi.top/v1
  • Chat endpoint: https://api.mimoapi.top/v1/chat/completions
  • Models endpoint: https://api.mimoapi.top/v1/models

When a settings screen asks for a "base URL", "API base", "endpoint" or "host", read its placeholder. If the placeholder ends in /v1, paste the base URL. If it ends in /chat/completions, paste the full chat endpoint. Pasting the full endpoint into a field that expects a base produces /chat/completions/chat/completions, which does not exist. Pasting only the bare domain into a field that expects a base produces /chat/completions without /v1, which fails the same way.

Note the host as well. The API lives on the api subdomain. The plain site domain serves the web pages, so a request to it with an API path will not reach the model.

Python and Node

With the official SDKs you set the base URL once when you create the client. Install with pip install openai or npm install openai.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.mimoapi.top/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Name three uses for a base URL."}],
    max_tokens=150,
)
print(resp.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.mimoapi.top/v1",
  apiKey: process.env.LLM_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Name three uses for a base URL." }],
  max_tokens: 150,
});
console.log(resp.choices[0].message.content);

The Python and Node OpenAI SDKs also read the environment variables OPENAI_BASE_URL and OPENAI_API_KEY when you do not pass values in code. That makes it possible to repoint an existing script without editing it: export the two variables, and the script talks to this API. Check that the script does not hard-code a model such as a GPT name; replace it with uncensored.

curl for a quick test

A plain HTTP call removes every other variable, so it is the best first check. The first command lists models and confirms the key. The second sends a chat request.

export LLM_API_KEY="YOUR_KEY"

curl -s https://api.mimoapi.top/v1/models \
  -H "Authorization: Bearer $LLM_API_KEY"

curl -s https://api.mimoapi.top/v1/chat/completions \
  -H "Authorization: Bearer $LLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":20}' -i

The -i flag prints response headers. Look for X-Request-Id (quote it if you contact support), X-Balance-USD (your remaining credit) and the two rate limit headers, X-RateLimit-Limit-Requests and X-RateLimit-Limit-Concurrency. For streaming, add "stream": true to the body and -N to curl so output is not buffered. The five minute quickstart walks through streaming and tool calling after this.

LangChain, chat frontends and other tools

Third-party tools use their own labels, but all of them need the same three values. Some patterns you will see:

  • LangChain (Python): ChatOpenAI(model="uncensored", base_url="https://api.mimoapi.top/v1", api_key="YOUR_KEY"). The same class works for any OpenAI-compatible server.
  • SillyTavern and similar roleplay frontends: choose a custom or generic OpenAI-compatible chat source, paste the base URL, add the key, and type uncensored as the model name if the list does not fill itself.
  • Open WebUI and other self-hosted chat UIs: add an OpenAI-compatible connection in the settings, using the same base URL and key.
  • Editor plugins and scripts: look for "custom OpenAI endpoint" or "override base URL" in the plugin settings.

Each tool's menu names change between versions, so rely on the field's purpose rather than the exact label. If a tool insists on checking the key against a fixed provider, it is not compatible with custom endpoints, and a different tool is the fix.

When a tool offers a model dropdown, it usually fills it by calling GET /v1/models. If the dropdown stays empty, type the model ID by hand. If the tool refuses unknown model names, look for an option labelled "custom model".

Fixing the usual configuration errors

When a request fails, the status code and the exact URL narrow the cause quickly. Work down this list.

  1. Authentication error. The key is missing, truncated or has a space or a newline at the end. Paste it again, and make sure the header reads Bearer, a space, then the key.
  2. Not found. The path is wrong. Print the final URL your client builds. It should be exactly https://api.mimoapi.top/v1/chat/completions. Look for a missing /v1, a doubled path or the wrong host.
  3. Unknown model. A leftover model name from another provider. Set the model to uncensored.
  4. HTTP 429 with rate_limited or concurrency. You are over 300 requests per minute or 8 at once (60 and 2 on a trial key). Slow down or queue requests. A 429 with a Retry-After: 5 header means temporary overload; wait five seconds and retry.
  5. Request too large. The body limit is 8 MB, and the context window is 100,000 tokens for prompt plus completion. Trim the history.
  6. Works in curl, fails in the browser. Calling the API directly from front-end JavaScript exposes your key to every visitor. Route calls through your own server.

Never put the key in a public repository or a client-side bundle. Store it in an environment variable, and and keep it out of screenshots and support tickets.

Next steps after the first successful call

Once the base URL works, a few settings are worth knowing. Streaming over SSE is switched on with stream: true. Tool calling uses tools and tool_choice, with results sent back as role: "tool" messages. JSON mode is response_format: {"type": "json_object"}. Sampling controls such as temperature, top_p, stop, seed and the penalties are passed through.

On the money side, you pay $0.15 per 1M input tokens and $0.50 per 1M output tokens from prepaid credit; the pricing page lists top-up sizes and bonuses. The model is tuned to answer without content refusals for lawful adult use, and sexual content involving minors is never allowed. Prompts are not used for training.

Questions and answers

What is the Mimo API base URL?

For this service it is https://api.mimoapi.top/v1. Use it as the base URL in any OpenAI-compatible client, with the model ID uncensored and your key as a Bearer token.

Should I include /chat/completions in the base URL?

No. Clients add that path themselves. Include it only when a field asks for the full chat endpoint, in which case the value is https://api.mimoapi.top/v1/chat/completions.

Why do I get a not found error?

The final URL is usually wrong: a missing /v1, a doubled path, or the plain site domain instead of the api subdomain. Print the URL your client sends and compare it with the endpoints above.

Can I use environment variables instead of editing code?

Yes. The Python and Node OpenAI SDKs read OPENAI_BASE_URL and OPENAI_API_KEY, so you can repoint a script by exporting them and changing the model name to uncensored.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key