Create the key in five steps
To get a mimo api key for this service, follow these steps. Nothing here needs a card or a phone call. Card payments are not available; crypto only.
- Sign up. Use Google, or register with an email address and a password.
- Open the key page. After sign-up, go to the API key page. Your key is shown there.
- Claim the trial. New users can claim $0.50 of trial credit with one click on that page. The credit is valid for 7 days, needs no card and is limited to one per person.
- Copy the key and store it somewhere safe, such as a password manager or an environment variable.
- Send a test request with the curl command in the next section.
The service is a hosted, OpenAI-compatible text API. It runs one open-weight model from an independent provider, tuned to answer without content refusals for lawful adult use. It is not the official API of any model vendor. Your key works with that one model, whose ID is uncensored, at the base URL https://api.mimoapi.top/v1.
Test the key with one request
Do the test in a terminal before you wire the key into an app. If it fails here, the problem is the key or the account, and you do not have to search through your own code.
export LLM_API_KEY="paste-your-key-here"
curl -i 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": "Write one sentence about keys."}],
"max_tokens": 60
}'
A good result is a 200 status and a JSON body with a choices array. The headers carry X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests and X-RateLimit-Limit-Concurrency. The balance header is a quick way to see what the request cost: run it twice and compare. If you only want to confirm the key without spending anything, call GET /v1/models with the same header.
The same request in Python, using the official OpenAI package:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.mimoapi.top/v1",
api_key=os.environ["LLM_API_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write one sentence about keys."}],
max_tokens=60,
)
print(resp.choices[0].message.content)What the trial key can and cannot do
The trial is meant for testing, not for production. A trial key allows 2 concurrent requests and 60 requests per minute, with a 7 day life. A full key, which you get once you have added credit, allows 8 concurrent requests and 300 per minute. Both share the same model, the same 100,000 token context window and the same features: streaming over SSE, tool calling, JSON mode and the usual sampling parameters.
How far does $0.50 go? At $0.15 per 1M input tokens and $0.50 per 1M output tokens, a request with 1,000 input tokens and 300 output tokens costs 1,000 x $0.15 / 1,000,000 = $0.00015 for input plus 300 x $0.50 / 1,000,000 = $0.00015 for output, which is $0.0003. The trial covers about 1,666 requests of that size ($0.50 / $0.0003). That is enough to test prompts, build a prototype and try streaming or tools.
Use the trial for measurements. Pick the five prompts your app will send most often, run each a few times, and record the balance change. You will end the week with a real cost per request and a view of how the model behaves on your data. Failed or refused requests are not charged.
Keep the key private
An API key is a password that also spends money. Anyone who has it can run requests against your balance. A few rules prevent most leaks:
- Environment variables, not source files. Read the key with
os.environorprocess.env. For local work, a.envfile listed in.gitignoreis fine. - Server side only. Do not call the API from browser JavaScript or a mobile app, because anyone can read the key from the page or the app package. Put a small server between your front end and the API.
- One place per key. Keep the key in one secrets store and copy it into each deployment from there, so you always know where it lives.
- No keys in chat, tickets or screenshots. When you ask for help, share the
X-Request-Idfrom the response, not the key. - Replace on suspicion. If you think a key was exposed, stop using it and contact support to have it replaced.
Watch the X-Balance-USD header too. A balance that drops when your app is idle is the first sign that someone else is using your key.
Go beyond the trial: top up and pay
When the trial runs out, add credit. Any whole amount from $20 to $500 works. Bonuses are added automatically: 5% from $50, 10% from $100 and 15% from $200. So a $100 top-up gives $110 of credit, and $200 gives $230. You can pay with with crypto (USDT on TRC20, USDC on Base).
There is no subscription. You pay per token from your balance, and credit never expires, which suits projects with uneven traffic. The full price list is on the pricing page. Prompts sent through the API are not used for training.
A sensible first top-up is $20. At the chat-sized request used earlier on this page ($0.0003 each), that covers about 66,000 requests. Check your own average after a few days and adjust.
Troubleshooting a key that does not work
Most key problems have simple causes.
- Authentication error right away. A character was lost or added when copying. Look for a leading or trailing space, or a line break. Check that the header is
Authorization: Bearerfollowed by the key. - Works in curl, not in your app. The app is probably not reading the environment variable. Print the first four characters of the value it sees, not the whole key.
- Not found. The base URL is wrong. It must be
https://api.mimoapi.top/v1, on theapisubdomain. The quickstart has a client-by-client list. - HTTP 429. The code
concurrencymeans too many requests at once;rate_limitedmeans too many per minute. Trial keys hit this sooner (2 at once, 60 per minute). A 429 withRetry-After: 5means brief overload; wait five seconds. - Trial credit missing. The trial is claimed with a click on the key page and is one per person. It expires after 7 days.
If none of that fixes it, collect the X-Request-Id value from a failing response and contact support with it. That ID lets the problem be traced without you sending the key.
What to build first
With a working key, pick a small project that uses the features you will need later. A command-line chat loop teaches message history. A script that returns a JSON object with response_format teaches structured output. A function the model can call teaches tool use. Each takes under an hour, and each runs on the trial balance. If you are weighing this service against other hosted models, the comparison in Mistral API alternatives lists the questions worth asking before you commit.
Keep the use lawful and adult. The model is tuned to answer without content refusals, and that is a feature for fiction, roleplay and research, not permission to break the rules: sexual content involving minors is never allowed.
