Sign in
/

Documentation

Everything you need.

Short and direct: API, CLI and billing in one place.

Quick start

  1. 1

    Create an account

    Sign up and confirm your email.

  2. 2

    Add credit

    From 2 €, no subscription. New accounts start at 0.

  3. 3

    Create an API key

    Under Developers. The key (orv_…) is shown only once.

  4. 4

    Get going

    Via the API, the CLI or tools like opencode.

Create account

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.

IDInputOutputImages
orrevan/abliterated-modelAbliterated Model$1.50$4.50yes
orrevan/abliterated-model-large-v2Abliterated Large V2$4.50$7.50no
orrevan/abliterated-model-largeAbliterated Large$4.50$7.50no
orrevan/abliterated-model-large-flashAbliterated Large Flash$1.50$3.00yes
orrevan/deepseek-v4.1-flash-uncDeepSeek V4.1 Flash Uncensored$0.60$2.10yes
orrevan/glm53-flash-uncGLM 5.3 Flash Uncensored$0.30$1.20yes
orrevan/mimo-v26-flash-uncMiMo V2.6 Flash Uncensored$0.69$2.25yes
orrevan/qwen38-oblQwen3.8 27B Obliterated$0.32$2.21yes
orrevan/qwen38-uncQwen3.8 27B Uncensored$0.73$3.26yes
orrevan/mimo-v26-flash-ablMiMo V2.6 Flash Abliterated$0.75$2.25yes

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
Everything the CLI can do

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.
Add credit

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.
Privacy policy