LIVE RELAY|UTC —
SYNC

Erra integrate

Signal rail API — threshold-gate, snapshots, stranger signal verify. Custody separate from Velaru proof chain.

Twin: Velaru integrate → (proof rail · classify · bind-gate · verify)

Step 0 — Erra API key (China wall from Velaru)

Dedicated rail keys — X-Erra-API-Key header (Velaru keys do not authenticate Erra).

curl https://velaru-erra.onrender.com/erra/api/v1/me \
  -H "X-Erra-API-Key: erra_public_demo"

# Optional on POST endpoints — public rate limit still applies without key
curl -X POST https://velaru-erra.onrender.com/erra/threshold-gate \
  -H "X-Erra-API-Key: erra_public_demo" \
  -H "Content-Type: application/json" \
  -d '{"insured_slug":"nisaba-llc","domain":"hiring","min_grade":"B"}'

Step 1 — Evaluate threshold-gate

POST https://velaru-erra.onrender.com/erra/threshold-gate — returns ACT or HOLD from live asymmetry grade.

curl -X POST https://velaru-erra.onrender.com/erra/threshold-gate \
  -H "Content-Type: application/json" \
  -d '{"insured_slug":"nisaba-llc","domain":"hiring","min_grade":"B"}'

Step 2 — Issue signal snapshot

POST https://velaru-erra.onrender.com/erra/signal/snapshot — persists to erra_signal_snapshots.json (not Velaru audit log).

curl -X POST https://velaru-erra.onrender.com/erra/signal/snapshot \
  -H "Content-Type: application/json" \
  -d '{"session_id":"pilot-001","domain":"hiring","min_grade":"B"}'

Step 3 — Stranger signal verify

Fetch snapshot · audit client-side at signal verify or POST server audit:

curl https://velaru-erra.onrender.com/erra/signal/snapshot/{snapshot_id}

curl -X POST https://velaru-erra.onrender.com/erra/signal/verify \
  -H "Content-Type: application/json" \
  -d @snapshot.json

Live metrics & catalogs

metrics/public · signal/recent · signal SKU catalog.json · Signal registry (browse) · primitives catalog