Quick Start Guide: Integrate Our API Sin Restricciones
Integrate our uncensored AI API in minutes using the standard OpenAI protocol. Generate text without content blocks with predictable latency and transparent pricing per token.
Prerequisites
Before you begin, make sure you have an account created on apisinrestricciones.com. Register with your email and password to get your API key instantly. You don't need a credit card for the initial $0.50 free trial credit. This uncensored API uses the standard chat-completions protocol, meaning you can use the official OpenAI libraries or any compatible client.
La api ia expone un único modelo idenficado como uncensored. No hay elección de modelos ni enrutamiento. El modelo es un LLM de peso abierto alojado en nuestros servidores, diseñado para responder sin censura a contenido adulto legal y temas controversiales. No ofrecemos embeddings, imágenes ni audio.
API Key Authentication
Authentication is performed via the Authorization: Bearer YOUR_API_KEY header. Your key is unique per account and can be regenerated at any time, immediately invalidating the previous one. If the key is invalid, the API returns a 401 error. If your balance is depleted, the request fails indicating the need to top up.
No phone number or additional data is required for the trial. Privacy is strict: your prompts are not used to train the model. Keep your key secure, as whoever possesses it has full access to your token quota.
Endpoint: Chat Completions
El punto de entrada principal es POST /v1/chat/completions. Aquí envías el historial de conversación y recibes texto generado. La URL base es https://api.apisinrestricciones.com/v1. Asegúrate de configurar tu cliente para apuntar a este base_url en lugar del de OpenAI.
The model accepts up to 100,000 combined input and output tokens. It supports function calling according to industry standards. Do not assume specific parameters from another provider; this endpoint follows the general convention for function integration. Data is processed asynchronously based on load, with no fixed latency guarantees.
Python Example
Use the Python openai library to interact with the API. Set the key and base_url correctly. The following code demonstrates a basic text completion request.
- Install the library with
pip install openai. - Replace
YOUR_API_KEYwith your actual key. - Send the message and process the response.
from openai import OpenAI
client = OpenAI(base_url="https://api.apisinrestricciones.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)This example generates a complete response without streaming. It is ideal for batch processing or deterministic responses where you do not need to update the interface in real time.
JavaScript Example
For Node.js environments or modern browsers, use the same official library. The structure is similar to Python, but adapted to JavaScript's asynchronous syntax.
- Make sure to handle promises correctly.
- Set the
base_urltohttps://api.apisinrestricciones.com/v1. - Access the generated content from
response.choices[0].message.content.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apisinrestricciones.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 method is efficient for web applications that need to generate text quickly without managing manual streaming events.
Streaming with SSE
For a smoother user experience, enable streaming by setting stream: true. The API returns a stream of server-sent events. You will receive text fragments progressively instead of waiting for the entire generation to complete.
This is useful for chat interfaces that display text in real time. Handle content events to accumulate the final response. Streaming does not affect token counting; all generated tokens are billed just like in a non-streaming request.
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)Remember that streaming consumes the same token quota and is subject to the same rate limits.
Limits, Errors and Context
Your key is limited to 300 requests per minute. If you exceed this threshold, you will receive a 429 (Too Many Requests) error. The request body must not exceed 8 MB. If the key is invalid, you will get a 401. If there is no balance, the system indicates the need to top up.
The model supports a context of 100,000 tokens. This includes both the prompt and the response. If you exceed this limit, the API will reject the request. There is no speed guarantee based on server load; performance varies based on GPU availability. Balance errors do not have a universally standardized HTTP code, but clearly indicate a lack of funds.
cURL
curl https://api.apisinrestricciones.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."}]
}'Capabilities and limits
If your tool speaks the OpenAI API, these are the details that matter.
| Item | Value |
|---|---|
| Compatibility | OpenAI Chat Completions schema; official openai SDKs work unchanged |
| Methods | POST /v1/chat/completions · GET /v1/models |
| Model ID | uncensored |
| Authentication | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.apisinrestricciones.com/v1 |
| Sampling parameters | temperature, top_p, stop, seed and the two penalties are passed through |
| Max output | prompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap |
| SSE streaming | Supported (stream: true), usage included at the end |
| Function calling | Yes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool |
| Max context | 100,000 tokens (prompt + completion together) |
| JSON mode | JSON object mode via response_format json_object |
| Concurrency | 8 requests at the same time per key |
| Requests per minute | 300 requests per minute per key |
| Response headers | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Max body | up to 8 MB per request |
| Price | input $0.25 / 1M tokens, output $1.00 / 1M tokens |
| Payment | crypto: USDT on TRON or USDC on Base, $10–$500, any whole sum |
| Volume bonus | +5% from $50, +10% from $100 |
| Credit expiry | no monthly fee; paid credit does not expire |
| How you pay | pay as you go from prepaid credit; nothing is charged for failed or refused requests |
| Free trial | $0.50 for 7 days, no card · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up |
| Keys | one key per account, regenerate any time (the old one stops working) |
| Content | adult content allowed; sexual content involving minors is refused |
| Sign-in | Google or e-mail and password |
Error codes
The type field is stable, the message is for humans. Errors cost nothing.
| Status | Type | Reason |
|---|---|---|
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 | no key, wrong key, or a key replaced by a newer one |
402 | no_credit | out of credit; add credit and retry |
403 | content_blocked | sexual content involving minors — refused, not billed |
404 | not_found | unknown endpoint |
413 | request_too_large | request body larger than 8 MB |
429 | rate_limited · concurrency | over 300/min or 8 parallel — back off and retry |
503 | upstream_busy | temporary overload, retry shortly |
Frequently asked questions
What exactly does 'uncensored' mean?
The model does not reject legal adult content, fiction, or controversial topics by default. It specifically blocks sexual content involving minors. It is not a GPT or Claude model, but an open-weight model optimized for this purpose.
How much does it cost and how is billing handled?
You pay only for what you use: $0.25 per 1M input tokens and $1.00 per 1M output tokens. No monthly subscriptions. Prepaid credit never expires and you can top up from $10 with cryptocurrencies (USDT or USDC).
Can I use the API for function calling?
Yes, the endpoint supports function calling according to the OpenAI standard. Use the <code>tools</code> parameter to define your functions and the model will invoke them when appropriate.
Your key is one step away
Create an account, copy the key, and change the base URL. That's it.