EN ▾

API Documentation for developers

Get started with our uncensored LLM API in minutes using standard OpenAI-compatible clients. Send text, receive tokens, and bypass content filters with zero configuration.

Base URL and authentication setup

Use HTTPS://api.mistralkey.com/v1 as your base URL. Pass your API key in the Authorization header. Create your key via Google or email on the dashboard. No phone number required. Credit never expires.

curl https://api.mistralkey.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the main configuration options for the server"}]
  }'

First request

Send a POST request to the chat completions endpoint. Specify the model as "uncensored". The system processes your input and returns generated text. Errors and refusals do not consume credit. This ensures transparent token arithmetic.

from openai import OpenAI

client = OpenAI(base_url="https://api.mistralkey.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)

Node SDK integration

Initialize the client with your base URL and key. Configure the model to use the uncensored variant. The SDK handles serialization automatically. This approach removes guesswork from your integration layer.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.mistralkey.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);

Streaming responses

Enable streaming by setting the stream parameter to true. Receive tokens via Server-Sent Events. Token usage details appear in the final chunk. This reduces perceived latency for long outputs.

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)

Rate limits and constraints

Limit is 300 requests per minute per key. Concurrent requests cap at 8. Request body size cannot exceed 8 MB. The context window spans 100,000 tokens. Max output per request is 16,000 tokens.

Error handling and tokens

Handle 401 for invalid keys. Return 402 when credit is exhausted. Manage 429 for rate limit exceeded. Errors are free. Credit usage reflects actual token consumption only.

Common questions

Is the mistral API key from this provider the same as Mistral Vibe?

No. Mistral Vibe uses a different key and model routing. Our API is an independent uncensored endpoint compatible with the OpenAI SDK format. Check your specific client documentation for base URL configuration.

Does the API key expire?

Your API key remains valid indefinitely. Your prepaid credit also never expires. You can top up with crypto whenever needed without losing previous balance.

How do I handle the 402 error?

A 402 status indicates insufficient prepaid credit. Top up using USDT (TRC20) or USDC (Base). Add funds via the dashboard to resume requests immediately.

Generate your key now

Register, retrieve your key, and update the base URL. Complete configuration in minutes.

Start nowView documentation