Documentation
Everything you need.
Short and direct: API, CLI and billing in one place.
Quick start
- 1
Create an account
Sign up and confirm your email.
- 2
Add credit
From 2 €, no subscription. New accounts start at 0.
- 3
Create an API key
Under Developers. The key (orv_…) is shown only once.
- 4
Get going
Via the API, the CLI or tools like opencode.
API
The API is OpenAI compatible. Any library that speaks OpenAI works with a changed base URL.
Base URL
https://orrevan.com/api/v1
Authentication
Header Authorization: Bearer orv_… on every request. Never use the key in a browser or in public code.
Endpoints
- GET /models
- All models with prices and capabilities. No key needed.
- POST /chat/completions
- Chat answer, optionally streamed.
- GET /me
- Account and credit for the key.
- POST /web/search
- Web search, billed per search with results.
curl
curl https://orrevan.com/api/v1/chat/completions \
-H "Authorization: Bearer $ORREVAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "orrevan/abliterated-model",
"messages": [{"role": "user", "content": "Hi"}]}'Python (openai)
from openai import OpenAI
client = OpenAI(base_url="https://orrevan.com/api/v1", api_key="orv_...")
r = client.chat.completions.create(
model="orrevan/abliterated-model",
messages=[{"role": "user", "content": "Hi"}],
)
print(r.choices[0].message.content)Node.js (openai)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://orrevan.com/api/v1", apiKey: process.env.ORREVAN_API_KEY });
const r = await client.chat.completions.create({
model: "orrevan/abliterated-model",
messages: [{ role: "user", content: "Hi" }],
});
console.log(r.choices[0].message.content);Models
Model IDs start with orrevan/. Prices in USD per 1M tokens, live from the system.
| ID | Input | Output | Images |
|---|---|---|---|
| orrevan/abliterated-modelAbliterated Model | $1.50 | $4.50 | yes |
| orrevan/abliterated-model-large-v2Abliterated Large V2 | $4.50 | $7.50 | no |
| orrevan/abliterated-model-largeAbliterated Large | $4.50 | $7.50 | no |
| orrevan/abliterated-model-large-flashAbliterated Large Flash | $1.50 | $3.00 | yes |
| orrevan/deepseek-v4.1-flash-uncDeepSeek V4.1 Flash Uncensored | $0.60 | $2.10 | yes |
| orrevan/glm53-flash-uncGLM 5.3 Flash Uncensored | $0.30 | $1.20 | yes |
| orrevan/mimo-v26-flash-uncMiMo V2.6 Flash Uncensored | $0.69 | $2.25 | yes |
| orrevan/qwen38-oblQwen3.8 27B Obliterated | $0.32 | $2.21 | yes |
| orrevan/qwen38-uncQwen3.8 27B Uncensored | $0.73 | $3.26 | yes |
| orrevan/mimo-v26-flash-ablMiMo V2.6 Flash Abliterated | $0.75 | $2.25 | yes |
Every model is uncensored. Images as base64 data URL (PNG, JPEG, WebP) in the image_url field.
Streaming
With "stream": true the answer arrives as server-sent events, piece by piece. With stream_options.include_usage you get the token counts at the end.
stream = client.chat.completions.create(
model="orrevan/abliterated-model",
messages=[{"role": "user", "content": "Hi"}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")Tools and extras
- tools, tool_choice
- Function calling in OpenAI format, up to 128 tools per request.
- reasoning_effort
- Thinking depth: none, low, medium, high or max, depending on the model (see /models, capabilities.reasoning).
- response_format
- JSON output where the model supports it.
- web_search: true
- Orrevan extra: searches the web before answering. Small fee per search.
- temperature, top_p, max_tokens, stop, seed
- Same as OpenAI.
{"model": "orrevan/abliterated-model",
"messages": [{"role": "user", "content": "Weather in Tallinn?"}],
"tools": [{"type": "function", "function": {
"name": "get_weather",
"parameters": {"type": "object",
"properties": {"city": {"type": "string"}}, "required": ["city"]}}}],
"reasoning_effort": "low"}Error codes
- 400
- Invalid request, e.g. broken JSON or unknown model.
- 401
- Key missing, wrong, revoked or expired.
- 402
- Credit used up. Top up under Credit.
- 413
- Request too large.
- 429
- Too many requests, too many in parallel or the key's daily limit is reached.
- 502, 503, 504
- Model not reachable right now. Retry later, nothing is charged.
CLI
Uncensored coding agent for your terminal. Needs Node.js 20 or newer.
npm i -g orrevan orrevan login orrevan
Commands
- orrevan
- Session in the current folder
- orrevan "task"
- Start with a first task
- orrevan -p "question"
- Answer once and exit
- orrevan login / logout
- Save or remove the key
- orrevan models
- Models and prices
- orrevan balance
- Credit
- orrevan whoami
- Account, model, version
- orrevan update
- Install the latest version
- orrevan config set model <id>
- Set the default model
- orrevan mcp add <name> -- <cmd>
- Add an MCP server
Options
- -m, --model <id>
- Model for this session
- -c, --continue
- Continue the last conversation
- -r, --resume
- Pick an earlier conversation
- --scout
- Read and plan only
- --auto
- Run without asking (careful)
- --web
- Allow web search
- --reasoning <level>
- auto, off, low, medium, high, max
- --tools <mode>
- auto, native or text
Environment variables
- ORREVAN_API_KEY
- Key instead of orrevan login
- ORREVAN_MODEL
- Default model
- ORREVAN_BASE_URL
- Other API address
- ORREVAN_NO_UPDATE_CHECK=1
- No update notice
opencode
opencode works with Orrevan as a provider. Create ~/.config/opencode/opencode.json, set the key as an environment variable, start opencode.
Set the key (e.g. in ~/.bashrc or ~/.zshrc)
export ORREVAN_API_KEY="orv_..."
Configuration
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"orrevan": {
"npm": "@ai-sdk/openai-compatible",
"name": "Orrevan",
"options": {
"baseURL": "https://orrevan.com/api/v1",
"apiKey": "{env:ORREVAN_API_KEY}"
},
"models": {
"orrevan/abliterated-model": { "name": "Abliterated Model" }
}
}
},
"model": "orrevan/orrevan/abliterated-model"
}Add more models to the models block. GET /models lists every ID.
Limits and key expiry
- 60 requests per minute
- Per key, can be set lower.
- 3 parallel requests
- Per account, across all keys.
- Daily limit
- Default $50 per key and day ($0.50 to $1,000). Resets at midnight UTC.
- Expiry
- Every key expires, after 1, 3, 6 or 12 months. No "never". Email reminder 7 days before.
- Renewal
- Rotating a key creates a new one with the same limits, the old one stops working.
- Alerts
- Email on unusual spending, new IPs and a reached daily limit.
Pricing and credit
- Pay as you go
- You pay per token. No subscription, no base fee.
- Top up
- 2, 5, 10 or 25, or any amount from 2 to 500, in EUR or USD.
- One credit
- Web chat, API and CLI share the same credit.
- Errors are free
- If a request fails, nothing is charged.
Privacy
- No training on your data. Orrevan does not use your prompts or answers to train AI models.
- API requests are not stored. Only billing data is kept (model, tokens, cost).
- Web chats are stored encrypted with AES-256-GCM and can be deleted at any time.
- The CLI keeps conversations on your machine only.