Create key

Open router integration mistakes to avoid

Switching to an uncensored endpoint often breaks existing code because developers overlook the specific base URL and model ID required for drop-in compatibility. This guide details the precise configuration steps to avoid common integration failures with the Open router uncensored API.

Last updated

Key takeaways

  • Set the base_url to the specific endpoint provided on this site, not the default OpenAI URL.
  • Explicitly define the model parameter as "uncensored" in every API request payload.
  • Verify that prepaid credit is active via crypto top-up before processing high-volume batches.
  • Configure tool_choice and response_format parameters correctly to enable structured data extraction.

using the wrong base_url

Using the standard OpenAI base URL causes your requests to fail or route to a different model entirely. Our API requires you to change the base_url to https://api.whatisopenrouterai.com/v1. This single line of configuration ensures your SDK connects to our servers instead of the global OpenAI infrastructure.

Many developers copy-paste their existing code without updating this variable. If you leave the default URL, you will either get a 404 error or hit a model that is not uncensored. Always verify the connection by checking the /v1/models endpoint. You should see our specific model ID listed there. This confirms the routing is correct before you send your first completion request.

forgetting to set the model id

Even with the correct base URL, omitting the model ID defaults to a generic or older model. You must explicitly set the model parameter to "uncensored" in every request. This tells our routing layer to serve the specific open-weight model tuned for unrestricted content.

Without this explicit instruction, you might receive a different model with different alignment rules. Some models refuse lawful adult topics by default. By forcing the uncensored ID, you guarantee the behavior you expect. Check your code for any hardcoded model names that might override your SDK defaults.

ignoring token limits and errors

Exceeding the 100,000 token context window or the 16,000 token output limit causes immediate request failures. Our API enforces a maximum output of 16,000 tokens per request. If you do not set max_tokens, the default is only 2,048 tokens. This is often too short for complex reasoning tasks.

Errors and refusals do not consume your prepaid credit. However, malformed requests that hit rate limits or exceed body size (8 MB) still count against your quota. Monitor your response headers for token usage. Adjust your prompt engineering to fit within the context window. This prevents costly retries and ensures smooth data flow.

misunderstanding prepaid billing

Your account balance is tied to prepaid credit, not a monthly subscription. We charge $0.15 per 1M input tokens and $0.50 per 1M output tokens. Errors are free, but successful completions consume credit. You must top up via crypto to maintain service availability.

We accept USDT (TRC20) or USDC (Base) for top-ups. Minimum deposits start at $20. Bonuses apply at higher tiers: +5% from $50, +10% from $100, and +15% from $200. Credit never expires. Ensure your balance is positive before running large batches. Check the dashboard to verify your current balance and recent transactions.

confusing streaming with standard responses

Streaming via SSE changes how you parse the response stream. Standard responses return a single JSON object. Streaming returns multiple chunks. You must handle the final chunk to get accurate token usage statistics.

Our streaming implementation includes token usage in the last chunk. If you stop reading the stream early, you might miss this data. Ensure your client library supports SSE properly. This is crucial for real-time applications where you display tokens as they generate. Misconfigured streaming can lead to incomplete text or broken UI states.

tool_choice configuration errors

Incorrect tool_choice settings can prevent function calling from working as intended. You can force a specific tool or let the model decide. Misconfiguration often results in the model ignoring available functions.

Use tool_choice to control whether the model calls tools automatically. Set it to "auto" for flexibility or specify a tool ID for strict behavior. Ensure your function definitions match the expected schema. This avoids runtime errors when the model tries to call a non-existent function. Test your tool definitions thoroughly before deploying to production.

missing json_object mode

Without response_format: {"type": "json_object"}, the model may output markdown or plain text. This breaks parsers expecting strict JSON. Enable JSON mode to ensure consistent, parseable output.

This feature is essential for integrating with downstream systems that require structured data. It reduces post-processing overhead significantly. Always validate the output schema in your client code. This ensures robustness against occasional model hallucinations. Use this mode when extracting entities or generating configuration files.

rate limit surprises

Our API allows 300 requests per minute per key. Exceeding this limit results in a 429 Too Many Errors response. Concurrent requests are limited to 8 per key. Plan your concurrency settings accordingly.

If you run multiple processes, ensure they share the same key or generate separate keys. Each account supports one active key. A new key replaces the old one. Monitor your rate limit headers in the response. Implement exponential backoff in your retry logic. This prevents cascading failures during high traffic periods.

crypto top-up delays

Crypto transactions can take time to confirm on the blockchain. Your credit may not appear instantly after sending funds. Use the correct network: TRC20 for USDT or Base for USDC. Sending to the wrong network causes loss of funds.

Top-ups range from $20 to $500. Ensure you send the exact amount or account for network fees. Check the transaction hash on the blockchain explorer. If credit is delayed, contact support with the transaction ID. Do not assume the payment failed immediately. Patience during network congestion is key to smooth operations.

Frequently asked questions

What is the base URL for the uncensored API?

The base URL is HTTPS://api.whatisopenrouterai.com/v1. You must set this in your OpenAI SDK configuration to route requests to our servers. This ensures you hit the correct endpoint for the uncensored model.

How do I top up my account?

You can top up using USDT (TRC20) or USDC (Base). Minimum deposits are $20. Bonuses apply at $50, $100, and $200 tiers. Credit never expires and errors are free.

Does this API support streaming?

Yes, we support streaming via Server-Sent Events (SSE). Token usage is included in the final chunk. Ensure your client handles SSE correctly to avoid missing data.

What is the context window size?

The context window is 100,000 tokens for both prompt and completion. The maximum output per request is 16,000 tokens. Default output is 2,048 tokens if not specified.

Generate your key in seconds

Register, retrieve your key, and point your client to the new base URL. It is that simple.

Create key