DEVELOPER DOCS

REST API

Sources & Drift

On this page

List sources

HTTP
GET /v1/observ/orgs/{org}/workspaces/{ws}/sources

Every source domain the workspace's agents have consulted, with the learned per-domain authority prior. The prior is self-learning: it updates as sources prove reliable or unreliable across traces.

Auth: API key or JWT · Role: viewer

Response 200 — not schema-modelled

JSON
{
  "sources": [
    {
      "domain": "docs.internal",
      "kind": "internal_kb",
      "authority_prior": 0.93,
      "citation_count": 4120,
      "last_seen": "2026-09-01T14:23:05Z"
    }
  ]
}

Examples

src = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/sources")
for s in sorted(src["sources"], key=lambda s: -s["citation_count"])[:10]:
    print(f"{s['domain']:35} authority={s['authority_prior']:.2f} n={s['citation_count']}")

Current drift

HTTP
GET /v1/observ/orgs/{org}/workspaces/{ws}/drift/current

The workspace's current drift posture — how far today's behaviour has moved from the established baseline. Drift is what catches silent degradation: the agent still returns 200s, but its answers have quietly changed.

Auth: API key or JWT · Role: viewer

Response 200 — not schema-modelled

JSON
{
  "as_of": "2026-09-01T00:00:00Z",
  "drift_score": 0.18,
  "status": "warn",
  "baseline_window_days": 14,
  "dimensions": [
    { "name": "grade_distribution", "delta": 0.21, "direction": "worse" },
    { "name": "cost_per_trace",     "delta": 0.04, "direction": "worse" }
  ]
}

status is one of ok | warn | alert.

Examples

d = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/drift/current")
if d["status"] != "ok":
    worst = max(d["dimensions"], key=lambda x: x["delta"])
    print(f"⚠ drift {d['status']}: {worst['name']} moved {worst['delta']:.0%} {worst['direction']}")

Drift history

HTTP
GET /v1/observ/orgs/{org}/workspaces/{ws}/drift/history

Drift score over time, for charting.

Auth: API key or JWT · Role: viewer

Query parameters

NameTypeRequiredDefaultDescription
daysinteger➖30How many days of history to return

Examples

h = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/drift/history",
                 params={"days": 60})
print(h)