$ cat ./docs/quickstart.md

Quickstart

Brievio is OpenAI-wire-compatible. If you already use the OpenAI SDK, all you change is the base URL. Five minutes from zero to your first model call.

Diese Dokumentation ist in Englisch verfügbar. Für eine deutsche Quickstart-Anleitung siehe:Deutscher Leitfaden — Claude API in Deutschland

The whole onboarding is four steps. The first three are one-time. The fourth — making a call — is just base_url swap.

#1. Create an account

Sign up at brievio.com/app/login with Google or email magic link. New accounts get $2 free credit immediately — enough to test text, image and video.

#2. Create an API key

Open /app/keys in the dashboard and click New key. Keys start with sk-brievio- and are shown only once at creation — copy and store securely.

Recommended hygiene:

  • One key per project / environment (dev, staging, prod).
  • Rotate keys on incident or every quarter.
  • Set a per-key monthly spend cap if you script-call from CI.
!
Treat API keys like passwords. Never commit them to git or ship them in client-side bundles. Use environment variables and a secret store.

#3. Fund your wallet

Go to /app/billing and top up via Stripe Checkout. Cards, Apple Pay, Google Pay, ACH, and Stripe's local methods all work. Minimum top-up is $10, and balance never expires.

  • Pay-as-you-go: usage is deducted from your wallet in real time, no subscription.
  • Volume bonuses apply: $100 → +$10, $1,000 → +$250, $5,000 → +$2,000.
  • Statement descriptor on your card: BRIEVIO.COM* TOPUP.

#4. Make your first call

Pick any enabled model from the catalog. Below: a cheap, fast gemini-2-5-flash chat call so you can verify the wiring.

Python (OpenAI SDK)

The openai Python package (v1+) works out of the box — just point base_url at Brievio.

first_call.py
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["BRIEVIO_API_KEY"],
    base_url="https://api.brievio.com/v1",
)

resp = client.chat.completions.create(
    model="gemini-2-5-flash",
    messages=[{"role": "user", "content": "Say hi in one sentence."}],
)
print(resp.choices[0].message.content)

Node.js

first_call.mjs
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.BRIEVIO_API_KEY,
  baseURL: "https://api.brievio.com/v1",
});

const resp = await client.chat.completions.create({
  model: "gemini-2-5-flash",
  messages: [{ role: "user", content: "Say hi in one sentence." }],
});
console.log(resp.choices[0].message.content);

curl

curl https://api.brievio.com/v1/chat/completions \
  -H "Authorization: Bearer $BRIEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2-5-flash",
    "messages": [{"role": "user", "content": "Say hi in one sentence."}]
  }'
If you got a response — congratulations, your account is live. The cost shows up in /app/usage within seconds.

#Other modalities

The same SDK handles images and video. Endpoints are OpenAI-named where possible.

Image generation

Use any of the image models — Nano Banana, Nano Banana 2, Nano Banana Pro and GPT-Image-2. See image docs.

img = client.images.generate(
    model="nano-banana",
    prompt="a tiny red origami crane on a white desk",
    size="1024x1024",
)
print(img.data[0].url)

Streaming chat

Set stream=True. Streaming works on every chat model — the full Claude and Gemini families. The response is server-sent events in OpenAI's standard format.

stream = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Tell me a 2-line haiku about CI/CD."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

#Where to go next

  1. Authentication — full API key + base URL reference.
  2. Chat completions — parameters, streaming, tool calls, vision.
  3. Billing — how the markup formula and credit ledger work.
  4. Errors — HTTP codes and retry strategy.