Two API calls.
Nothing to configure in advance.
Fetch governed behaviour into your prompt, then grade the reply once it has been sent. A first integration can be running within fifteen minutes. Call sites, profiles, retention and connectors are optional, and each can be added when your organisation needs what it provides.
1 · Get a key
Issued from your console. Test keys (hr_test_) write only to a test system.
2 · Add the block
Cache it with your prompt and pin it by hash. New versions are adopted on your schedule.
3 · Grade after send
Off the response path. Coverage, findings and the sealed record follow.
Quickstart
# 1 · Governed behaviour for your system prompt
curl https://harmwise.digitalsafeguard.org/api/v1/policy/block?jurisdiction=AU \
-H "Authorization: Bearer $HARMWISE_KEY"
# → { "block": "…", "hash": "sha256:…", "session_block": "…", "referral": {…} }
# 2 · After the reply has been sent, grade it
curl https://harmwise.digitalsafeguard.org/api/v1/grade \
-H "Authorization: Bearer $HARMWISE_KEY" -H "Content-Type: application/json" \
-d '{"candidate":"<the reply>","turns":[{"role":"user","content":"<what they said>"}],
"jurisdiction":"AU","policy_hash":"sha256:…"}'Prompt caching: the block is byte identical for a given module version, so it can sit inside a cached prefix. Per session text is always delivered as a separate block and never interpolated into the cached one.
Playground, live
Grade a real reply against the real validators.
The playground runs the published framework's deterministic validators, the referral fitness checks and the record seal. It follows the same code path as production, on a public, rate limited key that writes only to the Playground organisation.
Uses a public test key. Test keys write only to the Playground's test system — never to a production record.
Grade a reply to see the findings, the referral assessment and the sealed record it writes.
Integration patterns
Pattern 1 · Instruction
Where you control the system prompt, compose the block into it and grade each reply after it is sent. This pattern delivers the greatest safety value and the shortest path to production.
Pattern 2 · Tool and transcript
Where your assistant runs on a platform whose prompt you cannot edit, give the platform's model Harmwise Guardrail as a tool (referrals/rank) through MCP or the platform's own action mechanism, and grade from the transcript export.
Platform connectors
Connectors package Harmwise Guardrail as a native extension of a given platform. The first is being built for the pilot customer's platform. Others will follow, in order of demand, for Microsoft Copilot Studio, Genesys Cloud, Salesforce, Amazon Connect and Lex, Dialogflow CX, ServiceNow and Zendesk.
Defaults: nothing declared
| Not declared | Default | Declaring adds |
|---|---|---|
| Call site | One anonymous surface | Findings attributed per surface |
| Profile | Safety validators only · coverage: safety_only | Task findings, and the ability to claim a gate |
| Escalation | A route to a human must exist | Checked against your own service level |
| Jurisdiction | Per request, from the argument | Per-region reporting |
| Environment | From the key prefix: hr_test_ never touches the record | Nothing; the key already did it |
| Retention | None: signals, metadata and a hash only | Quote spans, on a TTL you choose |
When something fails
Harmwise Guardrail unreachable
Serve the last good block you hold. The reply goes out as normal, and the grade is sent once the service returns.
Grader error or timeout
Recorded as instrument_error. The fault is ours; it is never counted against you and never reported as clean.
Router low confidence
The baseline block for every enabled module is served, flagged degraded.
Directory has no local coverage
The emergency number and national 24/7 services are offered, and the reply states that local services are not yet covered.
Never block, never edit, never strip. These are design constraints, not settings.
Baseline · in development
Establish what your channel is already hearing.
Baseline reads a sample of your own conversation history and reports how many disclosures occurred, of what kind and how they were handled. It quotes the most serious examples verbatim and shows what the core safety floor would have changed. It runs on your own machine, and nothing leaves it.
For enterprise environments, Baseline is delivered as a container that runs inside your own tenancy, with a redaction pass before any analysis.
# illustrative output
$ npx harmwise baseline ./transcripts.jsonl
10,000 conversations · deterministic · no network
─────────────────────────────────────────────
disclosures detected 214 (2.1%)
economic abuse 96
tech-facilitated abuse 58
stated immediate danger 7
handled with an S0 finding 11
referral dead-ends 38
→ report.htmlAPI reference
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/policy/block | Cached block (byte-stable, hash, ETag) + session block + ranked referral |
| POST | /api/v1/grade | Grade a reply after send; writes a sealed record |
| POST | /api/v1/referrals/rank | Fitness-ranked services and composed referral text |
| GET | /api/v1/records/verify | Recompute your system's hash chain against the published head |
| GET | /api/v1/health | Liveness plus a real grader round-trip |
Errors are returned as RFC 9457 problem details. Keys carry the prefixes hr_live_ and hr_test_ so that secret scanners can detect them.