Early access
In production — proving itself through its first tenant

Behavioral infrastructure
with receipts.

Empress is an immutable ledger for behavior. Anything your agents, users, or systems do becomes a queryable xAPI statement — stored forever, isolated per tenant, exportable in full. Not session logs. A permanent record.

The sixty-second demo

One request in, queryable forever.

1 — Emit a statement

curl -X POST https://empress-api.jdnyzio.workers.dev/statements \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "actor": { "account": { "name": "agent-7",
      "homePage": "https://empress.eco" } },
    "verb": { "id": "https://empress.eco/verbs/resolved" },
    "object": { "id": "https://example.com/tickets/892" },
    "result": { "success": true }
  }'

2 — It's in the ledger. Query it, or take it all home.

# your statements, isolated to your tenant
curl https://empress-api.jdnyzio.workers.dev/statements \
  -H "Authorization: Bearer YOUR_API_KEY"

# your ENTIRE ledger, as NDJSON
curl https://empress-api.jdnyzio.workers.dev/export \
  -H "Authorization: Bearer YOUR_API_KEY"

These commands run against production. The full surface is documented in the live OpenAPI spec.

The guarantees

Four things we can prove.

The ledger is immutable

Every statement is stored forever, exactly as emitted. Hygiene happens at query time — never by rewriting history. Your audit trail is a fact, not a promise.

Tenant isolation is machine-verified

Isolation is proven in both directions by a repeatable production test: your reads and exports return your data and only yours. This test caught and killed a real leak before any customer did.

Any verb is accepted

Empress validates structure, not vocabulary. Unknown verbs are stored and become queryable — meaning lives in interpretation, not ingestion rejection. Your domain's language is welcome.

Your data leaves whole

GET /export streams your entire ledger as cursor-paged NDJSON, tenant-scoped at the SQL level. No lock-in, no partial exports, no export tax.

The truth table

What ships today.

This table is the whole story — nothing on this site claims more than it. "Planned" is an honest word.

SurfaceWhat it doesStatus
POST /statementsxAPI ingestion — the critical pathLive
GET /exportFull-ledger NDJSON export, cursor-pagedLive
GET /analytics/*Trending, rerank, difficulty, actor stats, summaryLive
GET /belief/:actorIdFSRS belief state + recommendationsLive
GET /openapi.jsonThe sold surface, machine-readableLive
Node SDK (@empress-eco/client)Typed zero-dependency clientBuilt — npm release pending
Python / Go SDKsOn the roadmapPlanned

Private beta.

Empress runs in production today, proving itself through its first tenant. If you want the second key, tell us what you'd observe.

Email hello@empress.eco