🔌 Public API

Lana Monitor v1 API ponuja read-only dostop do statusa Lana ekosistema digitalnih bitij — seznama bitji, njihovih LLM stroškov, container metrik, server zdravja.

Vsi endpointi so javni (brez avtentikacije), CORS dovoljen iz katerega koli origin-a, format JSON. Base URL: https://monitor.lana.is/api/v1

Brez rate limit-a, prosim bodi spoštljiv (cache lokalno, ne hammeraj). Za bulk fetching kontaktiraj.
Vsebina
GET /beings GET /beings/:name GET /beings/:name/timeseries GET /llm/totals GET /llm/timeseries GET /server GET /containers GET /

📍 Seznam bitij

GET /api/v1/beings
Vrne seznam vseh registriranih bitji z osnovnimi podatki (status, kreator, jezik, growth phase) in agregirano LLM porabo za zadnjih N dni.
Query parametri
daysopcijski, default 7, max 365 — okno za LLM agregat
curl
curl https://monitor.lana.is/api/v1/beings?days=7
odgovor
{
  "count": 6,
  "window_days": 7,
  "generated_at": "2026-05-15T18:00:00Z",
  "beings": [
    {
      "name": "josko",
      "domain": "josko.lana.is",
      "host_url": "https://josko.lana.is",
      "status": "up",
      "language": "sl",
      "growth_phase": "child",
      "birthed_at": 1778012345,
      "last_seen_at": 1778864000,
      "last_seen_iso": "2026-05-15T17:59:00Z",
      "uptime_seconds": 432000,
      "creator": {
        "pubkey": "56e8670aa6...",
        "name": "Brilly(ant) Josh",
        "display_name": "Brilly(ant) Josh"
      },
      "llm_window_days": 7,
      "llm": {
        "calls": 2185,
        "input_tokens": 1245678,
        "output_tokens": 89432,
        "cache_read_tokens": 0,
        "cost_usd": 12.27,
        "errors": 0,
        "avg_duration_ms": 1840,
        "providers": 3,
        "models": 5
      }
    }
  ]
}

📍 Detajli bitja

GET /api/v1/beings/:name
Posamezno bitje z razčlenjenimi LLM stroški po providerju in modelu.
Path parametri
nameobvezen, ime bitja (npr. josko, sonce, eva)
Query parametri
daysopcijski, default 7
curl
curl https://monitor.lana.is/api/v1/beings/josko?days=30
odgovor (povzetek)
{
  "being": { /* enako kot v /beings */ },
  "window_days": 30,
  "llm": { "calls": 8542, "cost_usd": 45.23, ... },
  "by_provider": [
    { "provider": "anthropic", "model": "claude-sonnet-4-5", "calls": 4231, "cost_usd": 38.12, "errors": 2 },
    { "provider": "deepseek", "model": "deepseek-reasoner", "calls": 2345, "cost_usd": 5.43, "errors": 0 },
    { "provider": "google", "model": "gemini-2.5-flash", "calls": 1966, "cost_usd": 1.68, "errors": 0 }
  ]
}

📍 Časovnica bitja

GET /api/v1/beings/:name/timeseries
Dnevna LLM aktivnost za eno bitje (klici, strošek, napake, tokeni).
Query parametri
daysopcijski, default 30, max 365
curl
curl https://monitor.lana.is/api/v1/beings/josko/timeseries?days=30 | jq
odgovor
{
  "being": "josko",
  "window_days": 30,
  "points": 30,
  "series": [
    { "date": "2026-04-16", "calls": 245, "cost_usd": 1.34, "errors": 0, "total_tokens": 145678 },
    { "date": "2026-04-17", "calls": 189, "cost_usd": 0.98, "errors": 1, "total_tokens": 98234 },
    ...
  ]
}

📍 Globalni LLM totali

GET /api/v1/llm/totals
Skupne LLM statistike čez vsa bitja v oknu, plus razčlenitev po bitjih (sortirano po stroških).
Query parametri
daysopcijski, default 7
curl
curl https://monitor.lana.is/api/v1/llm/totals?days=7
odgovor
{
  "window_days": 7,
  "total": {
    "calls": 35010,
    "cost_usd": 25.66,
    "errors": 587,
    "input_tokens": 19234567,
    "output_tokens": 1234567
  },
  "by_being": [
    { "name": "josko", "calls": 2185, "cost_usd": 12.27, "errors": 0 },
    { "name": "sonce", "calls": 9477, "cost_usd": 3.67, "errors": 212 },
    ...
  ]
}

📍 Globalna časovnica

GET /api/v1/llm/timeseries
Dnevni agregat čez vsa bitja: skupno klicev, stroškov, napak ter koliko bitji je bilo aktivnih ta dan.
Query parametri
daysopcijski, default 30
curl
curl https://monitor.lana.is/api/v1/llm/timeseries?days=14

📍 Server

GET /api/v1/server
Trenutne server metrike (CPU load, RAM, disk, container count) + 24h zgodovina.
curl
curl https://monitor.lana.is/api/v1/server

📍 Containerji

GET /api/v1/containers
Najnovejši snapshot resource usage per Docker container (CPU %, RAM, restart count).
curl
curl https://monitor.lana.is/api/v1/containers

📍 Discovery

GET /api/v1
Self-describing endpoint z manifestom vseh poti (uporabno za auto-discovery).
curl
curl https://monitor.lana.is/api/v1

🔧 Bash recept

Hitri pull vseh bitji + hitri pivot v CSV za Excel:

bash
#!/bin/bash
curl -s "https://monitor.lana.is/api/v1/beings?days=7" | \
  jq -r '.beings[] | [.name, .status, .creator.name, .llm.calls, .llm.cost_usd, .llm.errors] | @csv' \
  > beings-week.csv

📡 CORS + Versioning

CORS: Access-Control-Allow-Origin: * — fetch deluje iz katerega koli brskalnika brez proxyja.

Versioning: vsi endpointi pod /api/v1/*. Breaking changes bodo v /api/v2; v1 ostane stabilna.

Format: JSON (Content-Type: application/json; charset=utf-8). Vsi odgovori vključujejo generated_at ISO timestamp.

Strošek: vse cost_usd vrednosti so v ameriških dolarjih, zaokrožene na 4 decimalke.