The trial in plain terms
New accounts get $0.50 of credit. It is valid for 7 days from sign-up and you do not enter any payment details to claim it. That is the whole offer. There is no countdown timer to chase and no tier to pick, because the service has one model and one price list.
Is the trial really free?
Yes. You create an account with an email and a password, and the credit is applied to it. Nothing is charged, and nothing is asked of you beyond those two fields.
What can I do with $0.50?
Anything the paid service does: chat completions, streaming, tool calls, long prompts. The credit is simply spent at the normal rates of $0.25 per million input tokens and $1.00 per million output tokens.
Is the trial limited to a smaller model or fewer features?
No. There is only one model, uncensored, and trial keys use the same endpoints, the same 64,000-token window and the same 300 requests per minute as any other key.
Getting and managing your key
Head to the sign-up page, enter an email and password, and your key appears straight away. Copy it into an environment variable called API_KEY and you are ready to send requests.
Do I need to confirm my email before I see the key?
The key is shown immediately after you register, so you can make your first call within a minute.
Can I have more than one key?
Each account holds one key. If you need a fresh one, regenerate it, and be aware that the previous key stops working at that very moment, so update your scripts first or right after.
I lost my key. What now?
Sign in and regenerate it. There is no way to recover the old value, but a new one costs nothing.
curl https://api.unrestrictedaiapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}],"max_tokens":20}'Run the command above after exporting your key. A JSON reply with a choices array means you are connected. Anything else is covered in the error section further down.
What $0.50 actually buys
Token counts depend on your prompts, so here is a worked example with stated assumptions rather than a promise. Suppose a typical exchange sends 800 input tokens and gets 500 back. Input: 800 x $0.25 / 1,000,000 = $0.0002. Output: 500 x $1.00 / 1,000,000 = $0.0005. Total: $0.0007 per exchange.
Divide $0.50 by $0.0007 and you get roughly 700 exchanges. If your prompts are much longer, expect fewer; a 20,000-token history sent every turn costs about $0.005 for input alone, so about a hundred such turns. Output is four times pricier per token than input, so capping max_tokens is the most effective way to stretch the credit.
How do I see how much a call used?
Every non-streaming response includes a usage block, and streaming responses end with an automatic usage chunk. Add those counts to the rates above.
Making the trial credit last
Seven days is enough to evaluate seriously if you spend deliberately. Four habits stretch the credit furthest. First, set max_tokens to what the task needs rather than leaving room for a monologue; output tokens cost four times what input tokens do. Second, trim chat history to the last few turns while experimenting, since every earlier message is billed again on each call. Third, test with short prompts first and only scale up once the shape of the answer is right. Fourth, keep a tiny script that prints the usage block, so you watch the meter as you work instead of discovering it at the end.
A sensible evaluation plan fits inside the credit easily: a few dozen calls to judge writing quality, a handful of long-context calls to check how it holds a story together, one streaming test, and one tool-call test if you plan to use function calling. None of that approaches $0.50 at the rates above.
When the trial ends
The credit disappears after seven days or when it is spent, whichever comes first. From then on, requests return 402 with the code no_credit. That response is not a bug, and your key is not revoked. It simply means the balance is zero.
Do I need a subscription to continue?
No. You top up a prepaid balance in whatever amount you like and spend it down. There is no monthly fee.
Does a topped-up balance expire?
No. Prepaid balance never expires, which is different from the trial credit that lapses after 7 days.
Will my integration break at the end of the trial?
It will receive 402 responses until you add balance. Handle that status explicitly so your app can show a clear message instead of a stack trace.
See the pricing page for the rate card.
Limits that apply from day one
The limits are the same whether you are on trial credit or a paid balance, so you can test production behaviour from the start.
- Context: 64,000 tokens, prompt and completion combined. Going over returns a 400.
- Output: 2048 tokens by default; raise
max_tokensup to 16,000 per request. - Request size: up to 8 MB of body.
- Rate: 300 requests a minute per key; beyond that you see 429.
- Scope: text only. No embeddings, images, audio, video or fine-tuning.
What happens if the service is temporarily busy?
You may get a 503 with the code upstream_busy. Wait a few seconds and send the call again.
Does it work with the OpenAI SDKs?
The API follows the OpenAI chat-completions format, so the official libraries work when you set the base URL to https://api.unrestrictedaiapi.com/v1. Plain HTTP works too, as shown in the quickstart.
Content rules and who it is for
The service is for adults, 18 and over. Lawful adult content, fiction and controversial subjects are not refused. One category is always blocked: sexual content involving minors, including fiction and roleplay, returns a 403 with the code content_blocked, and no prompt wording changes that.
Will the model lecture me or add disclaimers to fiction?
It does not refuse lawful adult or fictional material. How it sounds is up to your prompt; the prompting guide covers shaping tone.
Are my prompts used to train a model?
No. Prompts are not used for training.
Where do I start for adult-fiction projects?
The NSFW content article walks through a full example.
Quick error decoder
If the first call fails, match the status to the cause.
| You see | Likely cause | Fix |
|---|---|---|
| 401 | Key missing, mistyped, or regenerated | Check the header reads Authorization: Bearer ... |
| 402 no_credit | Trial over or balance spent | Top up the prepaid balance |
| 403 content_blocked | Request touched the always-blocked category | Change the request; do not retry |
| 404 | Wrong path | Use /v1/chat/completions or /v1/models |
| 429 | Too many requests per minute | Slow down and retry |
| 503 upstream_busy | Temporary load | Retry after a few seconds |
Error bodies always look like {"error":{"code":...,"message":...}}, so log the message field; it usually says exactly what to change.