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.com/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.com/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.com/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.com/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.com",  # 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.

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

Også valgbare via API'et: coder (kode), reason (lang ræsonnering), boss (ufiltreret, avanceret). På /v1/messages mappes Anthropic-modelnavne automatisk — navne med "haiku" → lite, alle andre → max.

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 eller max — påkrævet.
  • 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.com/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 }
  ]
}

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": "[email protected]", "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.com/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.com/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.com/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.com/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.com/v1/files \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -F "[email protected]"

→ { "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.com/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.com/v1/transcribe \
  -H "Authorization: Bearer $DEPAZA_API_KEY" \
  -F "[email protected]"

→ { "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.com/v1/sessions
{ "session_id": "abc-123", "status": "ended", "model": "core",
  "messages": [ {"role":"user","content":"…"}, {"role":"assistant","content":"…"} ] }

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

GET https://depaza.com/v1/sessions            → { "sessions": [ … ] }
GET https://depaza.com/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.com/v1/keys          → { "keys": [ … ] }
POST   https://depaza.com/v1/keys          → { "id": 17, "token": "dpz_live_…", "name": "prod" }
DELETE https://depaza.com/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.56 €0.56
Depaza Core €1.64 €2.19
Depaza Max €5.56 €16.67
BOSS (Unrestricted) €1.64 €2.19
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.