API-reference

Depaza API-dokumentation

En komplet REST-reference til Depaza API — OpenAI- og Anthropic-kompatibel. Autentificering, alle endpoints, streaming, batches, vision, filer, søgning, priser og fejl, med copy-paste-eksempler.

https://depaza.eu/v1 Fuld reference (Markdown) ↗

Kom godt i gang

Depaza API er OpenAI- og Anthropic-kompatibelt. Opret en API-nøgle under Indstillinger → API på din konto, og send så forespørgsler med den som Bearer-token. Base-URL'en vises ovenfor. I standardtilstand kører værktøjer (websøgning og sidelæsning) automatisk hos os — du definerer eller udfører dem ikke.

curl https://depaza.eu/v1/chat/completions \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "core",
    "messages": [{"role": "user", "content": "What changed in EU AI rules this week?"}]
  }'

Autentificering

Send din nøgle i Authorization-headeren som Bearer-token. De Anthropic-kompatible ruter (/v1/messages) accepterer også x-api-key-headeren. Nøgler ser ud som dpz_live_… og vises kun én gang ved oprettelse — opbevar dem sikkert. Tilbagekald en nøgle når som helst i dashboardet; det træder i kraft øjeblikkeligt.

Authorization: Bearer dpz_live_…
x-api-key: dpz_live_…   (Anthropic SDK / Claude CLI)

SDK-kompatibilitet

Peg enhver OpenAI- eller Anthropic-SDK mod Depaza ved at ændre én linje — base-URL og din nøgle. To værktøjstilstande vælges automatisk: som standard bruger Depaza sin egen system-prompt og kører værktøjer server-side og returnerer et færdigt svar; sender du dit eget tools-array, respekterer Depaza din system-besked og returnerer tool_calls, som du selv udfører (standard function calling). Se Værktøjer nedenfor.

Python — OpenAI SDK

from openai import OpenAI

client = OpenAI(
    api_key="dpz_live_…",
    base_url="https://depaza.eu/v1",
)

resp = client.chat.completions.create(
    model="core",
    messages=[{"role": "user", "content": "Summarise today's EU tech news"}],
)
print(resp.choices[0].message.content)

Node.js — OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "dpz_live_…",
  baseURL: "https://depaza.eu/v1",
});

const resp = await client.chat.completions.create({
  model: "core",
  messages: [{ role: "user", content: "Summarise today's EU tech news" }],
});
console.log(resp.choices[0].message.content);

Python — Anthropic SDK

from anthropic import Anthropic

client = Anthropic(
    api_key="dpz_live_…",
    base_url="https://depaza.eu",  # SDK appends /v1
)

msg = client.messages.create(
    model="core",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello from Europe"}],
)
print(msg.content[0].text)

Modeller

Send id'et i "model"-feltet. List dem programmatisk med GET /v1/models. Alle modeller er EU-hostede; output er begrænset til 8192 tokens (16384 for advanced). Se BOSS nedenfor for den ufiltrerede tilstand.

Model-id Navn Bedst til
lite Depaza Lite Hurtige, dagligdags spørgsmål og opgaver i stor mængde
core Depaza Core Den bedste balance mellem kvalitet, hastighed og værktøjsbrug (standard)
max Depaza Max Dyb analyse og de mest krævende opgaver
advanced Depaza Advanced Vores kraftigste model til de sværeste opgaver — koster 3× tokens
boss BOSS (Unrestricted) Ufiltreret / rå persona — maksimal direkthed (betalte planer; prepaid API-nøgler OK)
coder coder Kode-specialist (API/CLI)
reason reason Lang ræsonnering (API/CLI)

På /v1/messages mappes Anthropic-modelnavne automatisk — navne med "haiku" → lite, alle andre → max. Native ids (lite/core/max/advanced/boss/coder/reason) respekteres som de er.

BOSS mode →

BOSS-mode (ufiltreret)

BOSS er et first-class model-id til ufiltrerede, maksimalt direkte svar. Brug det når du vil have færrest afvisninger og mindst moraliseren — analyse af mørke emner, rå skrivning eller blunt ræsonnement. Det faktureres som enhver anden model på prepaid API-kredit (se Priser). Medlemskabsnøgler kræver en betalt plan (ikke Free).

Sådan kalder du det

Sæt "model": "boss" på POST /v1/chat/completions eller POST /v1/messages. Du kan også sende header X-Depaza-Mode: boss. Der er ikke et separat endpoint — samme chat-API, anden model.

Adgang & grænser

  • Prepaid API-nøgler (kind=api): tilgængelig med kredit-saldo.
  • Abonnements-/CLI-nøgler (kind=cli): kun betalte planer (Personal og op) — Free-medlemskab får 403 plan_required.
  • Samme rate limits som andre chat-modeller. Output begrænset til 8192 tokens.

Eksempel — BOSS via chat completions

curl https://depaza.eu/v1/chat/completions \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "boss",
    "messages": [{"role": "user", "content": "Give me the unfiltered take on …"}]
  }'

Pricing → · Chat completions →

Kerne-API

Chat completions

POST/v1/chat/completions

OpenAI-kompatibel. Send et messages-array, sæt "stream": true for Server-Sent Events, eller udelad det for ét samlet JSON-svar. Svaret indeholder en standard "usage"-blok plus et "depaza_billing"-objekt med hvad turen kostede og din resterende saldo. Billed-blokke routes automatisk til en vision-model (betalte planer).

Vigtige parametre

  • model — lite, core, max, advanced (3× tokens), boss (ufiltreret), coder eller reason — påkrævet på /v1/chat/completions.
  • messages — Array af {role, content}. I standardtilstand skal det slutte med en user-besked, og system-beskeder ignoreres. Når du sender dine egne tools, respekteres hele rolle-historikken — inkl. din system-besked og assistant/tool-beskeder.
  • tools — Valgfri. Dine egne funktionsdefinitioner (OpenAI-format). Sendes dette, skiftes til function-calling-tilstand — se Værktøjer.
  • tool_choice — Valgfri. auto (standard), none, required eller en bestemt funktion — kun med dine egne tools.
  • stream / stream_options.include_usage — Stream SSE-chunks; send valgfrit en afsluttende usage-chunk.
  • temperature, top_p, top_k, max_tokens, stop, seed, presence/frequency_penalty — Standard sampling-parametre (videresendes til modellen).
  • response_format — JSON-tilstand / json_schema (understøttes af lite/max).
  • mode — standard (default), document (research → udkast → Office-fil) eller expert (udkast → kritik).
  • attachments — Op til 5 filer {file|base64, filename?, mime?}, OCR'es og foranstilles (betalte planer).
  • depaza_events — Ved streaming: send også custom depaza.*-frames så du kan følge server-side værktøjer og dokument-faser.

Streaming-forespørgsel

{
  "model": "core",
  "messages": [{"role": "user", "content": "…"}],
  "stream": true,
  "stream_options": {"include_usage": true}
}

Svar

{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "core",
  "choices": [{ "index": 0, "message": { "role": "assistant", "content": "…" }, "finish_reason": "stop" }],
  "usage": { "prompt_tokens": 812, "completion_tokens": 415, "total_tokens": 1227 },
  "depaza_billing": { "web_searches": 1, "balance_cents_after": 2461 }
}

Værktøjer & function calling

Depaza vælger værktøjstilstand automatisk ud fra om din forespørgsel indeholder et tools-array.

Indbyggede værktøjer — uden tools-felt

Sender du ingen tools, kører websøgning og live sidelæsning automatisk i turen, når modellen vurderer at de er nyttige. Du modtager aldrig værktøjskald at udføre — du får et færdigt, web-forankret svar. Det er samme motor som driver Depaza-chatten.

Dine egne værktøjer — function calling

Send et tools-array, så opfører Depaza sig som et standard OpenAI-endpoint: kun dine værktøjer tilbydes, din system-besked respekteres, og intet kører server-side. Modellen returnerer tool_calls med finish_reason "tool_calls"; udfør dem hos dig selv, tilføj hvert resultat som en {role:"tool", tool_call_id, content}-besked og kald igen, så modellen kan afslutte. Brug tool_choice til at fremtvinge eller slå kald fra.

Forespørgsel — tilbyd et værktøj

curl https://depaza.eu/v1/chat/completions \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "core",
    "messages": [{"role": "user", "content": "What is the weather in Paris?"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_current_weather",
        "description": "Get the current weather for a city",
        "parameters": {
          "type": "object",
          "properties": {"city": {"type": "string"}},
          "required": ["city"]
        }
      }
    }]
  }'

Svar — modellen kalder det

{
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant", "content": null,
      "tool_calls": [{
        "id": "call_abc", "type": "function",
        "function": { "name": "get_current_weather", "arguments": "{\"city\": \"Paris\"}" }
      }]
    },
    "finish_reason": "tool_calls"
  }]
}

List modeller

GET/v1/models

Returnerer kataloget i OpenAI-format med kontekstvindue og maks. output for hver model. Bearer-auth.

{
  "object": "list",
  "data": [
    { "id": "lite", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 },
    { "id": "core", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 },
    { "id": "max",  "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 },
    { "id": "advanced", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 16384 },
    { "id": "boss", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 },
    { "id": "coder", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 },
    { "id": "reason", "object": "model", "owned_by": "depaza", "context_window": 128000, "max_output_tokens": 8192 }
  ]
}

Forbrug & saldo

GET/v1/usage

Bearer-autentificeret saldo/forbrug for den kaldende nøgle. Kredit-nøgler viser en EUR-saldo; medlemskabs-nøgler (CLI) viser i stedet et rullende ugentligt token-vindue.

{ "email": "you@example.com", "plan": "pro",
  "mode": "credit", "balance_cents": 2461, "currency": "EUR" }

Messages (Anthropic-kompatibel)

POST/v1/messages

Drop-in for Anthropic-SDK'en og Claude-CLI'en (ANTHROPIC_BASE_URL). Forespørgslen oversættes til Depazas motor og tilbage til Anthropic-format. Auth via x-api-key eller Bearer.

Vigtige parametre

  • model — Depaza-id eller et Anthropic-navn (mappes). Standard er core.
  • max_tokens — Påkrævet. Begrænses til 8192.
  • messages — Anthropic-beskedobjekter. content kan være en streng eller blok-array: text, image, document (PDF/Office tekst-udtrækkes og inlines), tool_use, tool_result.
  • system — Valgfri system-prompt (streng eller array af text-blokke).
  • tools / tool_choice — Anthropic-værktøjsdefinitioner {name, description, input_schema}; tool_choice auto/any/none/tool.
  • stream, temperature, top_p, top_k, stop_sequences — Streaming + sampling.

Forespørgsel

curl https://depaza.eu/v1/messages \
  -H "x-api-key: $DEPAZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "core",
    "max_tokens": 1024,
    "system": "You are concise.",
    "messages": [{"role": "user", "content": "Name three EU capitals."}]
  }'

Svar

{
  "id": "msg_…", "type": "message", "role": "assistant", "model": "core",
  "content": [{ "type": "text", "text": "Paris, Berlin, Madrid." }],
  "stop_reason": "end_turn", "stop_sequence": null,
  "usage": { "input_tokens": 24, "output_tokens": 8 }
}

Streaming (SSE-events)

event: message_start
data: {"type":"message_start","message":{"id":"msg_…","role":"assistant","content":[],…}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris"}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":8}}

event: message_stop
data: {"type":"message_stop"}

Tæl tokens

POST/v1/messages/count_tokens

Estimér input-tokens for en forespørgsel (Anthropic-format). Tilnærmet — en ~3,5 tegn/token-heuristik, ikke en eksakt tokenizer.

curl https://depaza.eu/v1/messages/count_tokens \
  -H "x-api-key: $DEPAZA_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"core","messages":[{"role":"user","content":"Hello"}]}'

→ { "input_tokens": 2 }

Message Batches

POST/v1/messages/batches

Anthropic-kompatible asynkrone batches: indsend op til 10.000 besked-forespørgsler, behandlet i baggrunden og hentet med id når batchen er færdig. Auth via x-api-key eller Bearer; oprettelse er begrænset til 60/min.

Endpoints

  • POST /v1/messages/batches — Opret. Hver forespørgsel skal have et unikt custom_id og params (en /v1/messages-body).
  • GET /v1/messages/batches — List dine batches.
  • GET /v1/messages/batches/{id} — Hent / poll processing_status.
  • GET /v1/messages/batches/{id}/results — JSONL-resultater — kun når status er ended.
  • POST /v1/messages/batches/{id}/cancel — Igangsæt annullering.

Opret

curl https://depaza.eu/v1/messages/batches \
  -H "x-api-key: $DEPAZA_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "requests": [
      { "custom_id": "q1", "params": { "model": "core", "max_tokens": 256,
        "messages": [{"role":"user","content":"Capital of France?"}] } }
    ]
  }'

Batch-objekt

{
  "id": "msgbatch_…", "type": "message_batch",
  "processing_status": "in_progress",
  "request_counts": { "processing": 1, "succeeded": 0, "errored": 0, "canceled": 0, "expired": 0 },
  "created_at": "2026-06-04T10:00:00+00:00", "ended_at": null,
  "expires_at": "2026-06-05T10:00:00+00:00", "results_url": null
}

Resultater (JSONL, én linje per forespørgsel)

{"custom_id":"q1","result":{"type":"succeeded","message":{"id":"msg_…",
  "content":[{"type":"text","text":"Paris."}],"stop_reason":"end_turn",
  "usage":{"input_tokens":12,"output_tokens":3}}}}

Funktioner

Vision

POST/v1/vision

En dedikeret EU-vision-model omsætter billede(r) til tekst, så tekst-modellerne kan "se" screenshots. Bearer-auth, kun betalte planer, 60/min.

Parametre

  • images — Påkrævet. 1–4 base64-strenge (eller data:-URL'er), ≤ 8 MB hver.
  • prompt — Standard er "Describe this image in detail."
  • temperature, max_tokens — 0–2 (standard 0,2); 64–4000 (standard 1800).
curl https://depaza.eu/v1/vision \
  -H "Authorization: Bearer $DEPAZA_API_KEY" -H "Content-Type: application/json" \
  -d '{"prompt":"What does this screenshot show?","images":["<base64>"]}'

→ { "text": "A login form with email and password fields…",
    "model": "mistral-small-…" }

Filer — tekstudtræk

POST/v1/files

Udtræk tekst fra en fil: billed-OCR, scannet-PDF-OCR og mekanisk tekst/PDF/Office-udtræk — samme pipeline som chat-vedhæftninger. Bearer-auth, kun betalte planer, maks. 10 MB. Understøtter PDF, billeder, Office (DOCX/XLSX/PPTX), CSV, JSON og tekst. Send multipart "file" eller JSON {file: <base64>, mime?}.

curl https://depaza.eu/v1/files \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -F "file=@report.pdf"

→ { "text": "Q1 revenue grew 18%…", "mime": "application/pdf", "ocr": false }

Download en genereret fil

GET/v1/files/{id}

Download en Office-fil produceret af Document Mode eller generate_*-værktøjerne, autoriseret med din bearer-nøgle. Streamer binæren som en vedhæftning.

curl -L https://depaza.eu/v1/files/123 \
  -H "Authorization: Bearer $DEPAZA_API_KEY" -o report.docx

Transskription

POST/v1/transcribe

Lyd → tekst (EU-hostet Whisper large-v3). Public API til korte klip (betalt, 60/min, max 25 MB, multipart eller base64). I web-chatten: realtids-mikrofon-dictation op til 10 minutter med client-side segmentering + screen wake lock, plus lange lydfiler med automatisk baggrundschunking (betalt).

curl https://depaza.eu/v1/transcribe \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -F "audio=@note.webm"

→ { "text": "..." }

# Also supports JSON base64:
# { "audio": "<base64 or data:...>", "filename": "note.webm" }

# Web chat: up to 10 min continuous dictation (client segmentation + wake lock)
# + long audio attachments with automatic ffmpeg chunking (paid).

Konto

CLI-sessionssync

POST/v1/sessions

Tilvalgs-sync af CLI-kodningstransskriptioner, så de vises i web-dashboardet. Bearer-auth, kun betalte planer. Upsert erstatter transskriptionen (send hele beskedlisten hver tur), nøglet på session_id.

POST https://depaza.eu/v1/sessions
{ "session_id": "abc-123", "status": "ended", "model": "core",
  "messages": [ {"role":"user","content":"…"}, {"role":"assistant","content":"…"} ] }

→ { "ok": true, "id": 8842 }

GET https://depaza.eu/v1/sessions            → { "sessions": [ … ] }
GET https://depaza.eu/v1/sessions/abc-123    → { "session_id": "…", "messages": [ … ] }

API-nøgler

Administrér nøgler fra den indloggede web-session (disse ruter bruger session-auth, ikke bearer — de driver Indstillinger-UI'en). Plaintext-tokenet returneres én gang ved oprettelse og gemmes aldrig i genskabelig form.

GET    https://depaza.eu/v1/keys          → { "keys": [ … ] }
POST   https://depaza.eu/v1/keys          → { "id": 17, "token": "dpz_live_…", "name": "prod" }
DELETE https://depaza.eu/v1/keys/17       → { "ok": true }

Kredit & fakturering

Konti med API-nøgler er forudbetalte; CLI-nøgler er inkluderet i din plan. Tilføj kredit (minimum €25) under Indstillinger → API. Aktivér auto-optankning for automatisk at tanke op fra et gemt kort, når saldoen falder under en grænse du vælger. Er saldoen tom (eller en auto-optankning fejlet), returnerer API'et 402 indtil du tanker op.

Priser

Forbrug faktureres i EUR mod din forudbetalte saldo til de live-satser nedenfor. Websøgning faktureres kun når en forespørgsel rent faktisk når den eksterne søgemaskine; svar fra vores eget indeks eller cache er gratis.

Model Input / 1M tokens Output / 1M tokens
Depaza Lite €0.45 €1.05
Depaza Core €1.80 €10.80
Depaza Max €4.50 €22.50
Depaza Advanced €5.40 €16.50
BOSS (Unrestricted) €2.70 €2.70
Websøgning (ekstern) €0.022 per søgning

Reference

Rate limits

Grænser er glidende vinduer; overskrider du en, returneres 429 med en Retry-After-header (sekunder). Hvert /v1/-svar bærer en x-request-id-header til sporing.

POST /v1/chat/completions 120/min, 10.000/dag per nøgle (API-nøgler)
POST /v1/messages 120/min per bruger
POST /v1/messages/batches 60/min per bruger
POST /v1/sessions 120/min per bruger
/v1/vision · /v1/files · /v1/search · /v1/transcribe 60/min per bruger

Fejl

De fleste ruter bruger OpenAI-formatet {"error": {message, type, code}}; de Anthropic-kompatible ruter bruger {"type":"error","error":{type, message}}.

400 Ugyldig forespørgsel — forkert model-id, misdannet/tomt messages, manglende max_tokens, ikke-understøttet fil.
401 Ugyldig eller manglende API-nøgle.
402 Utilstrækkelig kredit / fejlet auto-optankning, eller en betalt-plan / ugentlig-grænse-gate.
403 Konto suspenderet, eller Code CLI early-access påkrævet.
404 Batch, session eller fil ikke fundet.
429 Rate limited. Følg Retry-After-headeren.
5xx Upstream model-fejl eller midlertidig fejl.

Byg det med Depaza Code CLI

Skriv ikke klienten i hånden — Depaza Code CLI kender allerede dette API (den læser præcis denne reference) og kan stilladsere, køre og fejlrette din integration i terminalen. Det er dit europæiske udviklerteam, på europæisk jord.

curl -fsSL https://depaza.com/install.sh | sh   # install
depaza auth                                       # connect this terminal
depaza docs                                       # print the full API reference
depaza "build a Python client for /v1/messages with streaming"

Denne side serveres også som Markdown på /llms.txt — peg enhver agent eller LLM mod den. Læs mere om CLI'en.

Klar til at bygge?

Generér en nøgle i dit dashboard og lav dit første kald på få minutter.