Documentation

Ingest from your journaling rule and chat webhooks; search and export over a key-authenticated API. Base URL defaults to http://localhost:8071.

AuthenticationEvery /v1/* endpoint requires the X-API-Key header, compared in constant time against VERBAVAULT_API_KEY. GET /healthz and GET /health are public liveness probes.

Quickstart

  1. Ingest a journaled email

    Your mail server's journaling rule POSTs a copy of each message.

    curl -X POST localhost:8071/v1/ingest/email \
      -H "X-API-Key: $VERBAVAULT_API_KEY" -H "Content-Type: application/json" \
      -d '{"tenant_id": "acme-ria", "source_id": "mbx-journal",
           "payload": {"from": "don+compliancearchive@lifeofmorr.com", "subject": "Q3 statements"}}'
    # 201 {"record_id": "...", "source_id": "mbx-journal"}
  2. Wire up Slack

    Point the Slack Events API at /v1/hooks/slack. The url_verification challenge is answered automatically.

    curl -X POST localhost:8071/v1/hooks/slack \
      -H "X-API-Key: $VERBAVAULT_API_KEY" -H "Content-Type: application/json" \
      -d '{"type": "url_verification", "challenge": "abc"}'
  3. Search the archive

    Full-text search across all archived records.

    curl "localhost:8071/v1/search?q=quarterly&tenant_id=acme-ria" \
      -H "X-API-Key: $VERBAVAULT_API_KEY"
  4. Check capture verification

    Source health plus any new silence alerts.

    curl "localhost:8071/v1/verify/status?tenant_id=acme-ria" \
      -H "X-API-Key: $VERBAVAULT_API_KEY"
  5. Export for the regulator

    CSV + chain-of-custody manifest.

    curl "localhost:8071/v1/export?tenant_id=acme-ria" \
      -H "X-API-Key: $VERBAVAULT_API_KEY"

API reference

MethodEndpointWhat it does
POST/v1/ingest/emailEmail journaling receiver. 201 with record_id.
POST/v1/hooks/slackSlack Events receiver; answers url_verification.
POST/v1/hooks/teamsTeams webhook receiver.
POST/v1/ingest/smsSMS capture via partner API (stub provenance marked).
POST/v1/sources/<id>/heartbeatManual heartbeat for a source.
GET/v1/search?q=..&tenant_id=..Full-text search.
GET/v1/export?tenant_id=..Regulator package: CSV + manifest.
GET/v1/verify/statusSource health + new silence alerts.
GET/v1/verify/logAppend-only verification history.
GET/v1/supervision/queueLexicon-flagged reviewer queue.
GET/healthz · /healthLiveness. Public.
POST/v1/sourcesRegister a capture source (registry + monitor).
GET/v1/sourcesSource registry with live health state.
GET/v1/connectorsConnector modes (mock until workspace app registrations complete).
POST/v1/connectors/<kind>/pollRun one capture poll (mock fixtures in mock mode).
GET/v1/retention/statusRetention policy + past-retention disposition report.
GET/v1/integrity/verifyRe-verify audit chain + record hashes.
GET/v1/tenants/meYour tenant, plan, caps and usage (tenant key).

Full reference with request/response examples ships in the repo as OPENAPI.md.

Need a hand?

Email us with what you're building.

Contact us