Quickstart, curl
When you're evaluating Verdifax for procurement, sometimes the language-specific SDKs aren't enough, you want to know that the raw HTTP surface behaves predictably. This page is for that.
Prerequisites
A Verdifax orchestrator. The examples use a self-hosted one at
http://localhost:9090, which needs access to the private image (see the
Docker quickstart). Without that access, use
the hosted API at https://api.verdifax.com with an API key, issued after an access request at verdifax.com/request, replace http://localhost:9090 with it below, and add the
header -H "X-Verdifax-Key: $VERDIFAX_KEY" to each request.
Health probe
curl -s http://localhost:9090/health
{
"ok": true,
"service": "verdifax-orchestrator-api",
"version": "1.0.0",
"orchestrator_version": "...",
"orchestrator_git_sha": "...",
"time": "2026-04-30T03:35:04Z"
}
Attestation
curl -s -X POST http://localhost:9090/execute \
-H "Content-Type: application/json" \
-d '{
"payload_text": "hello verdifax",
"program_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"route_id": "route-test",
"registry_record_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}'
You'll get a JSON response with ok, run_id, duration_ms, and a manifest object containing every sealed manifest field plus the final ManifestHash, assuming the run resolved to OK.
Note on non-OK outcomes: If the run resolves to pepg_deny, ccv_halt, macc_halt, aivp_t4_halt, or attestation_gap, the response includes a sealed receipt instead (deny_receipt, ccv_halt_receipt, macc_halt_receipt, aivp_t4_halt_receipt, or attestation_gap_receipt). The response status is 422 and ok is false. See Errors and Sealed artifacts for the response shapes.
Authentication
Once any API key has been created on the deployment, revoked or not, open mode ends for good, and every authenticated endpoint requires the key:
curl -s http://localhost:9090/runs \
-H "X-Verdifax-Key: vfx_your_secret_here"
Public endpoints (/health) require no header.
Inspect a previous run
RUN_ID=42
curl -s http://localhost:9090/runs/$RUN_ID \
-H "X-Verdifax-Key: vfx_..." | python3 -m json.tool
Verify a run (server-side check)
The verify endpoint re-derives the manifest hash from the sealed
fields and confirms it matches what was originally recorded:
curl -s http://localhost:9090/runs/$RUN_ID/verify \
-H "X-Verdifax-Key: vfx_..."
{
"ok": true,
"verified": true,
"manifest_hash": "6c1428f81519c5bb...",
"recomputed_hash": "6c1428f81519c5bb...",
"verification_at": "2026-04-30T03:35:04Z",
"verification_kind": "manifest-self-seal",
"formula_version": "v1.9 (execution record)",
"dcae_engine_hint": {
"available_at": "POST /dcae/verify",
"engine_version": "verdifax-dcae/1.0.0"
}
}
Download the audit PDF
curl -s http://localhost:9090/runs/$RUN_ID/report.pdf \
-H "X-Verdifax-Key: vfx_..." \
-o /tmp/verdifax-audit.pdf
The PDF includes the manifest hash, run metadata, sealed manifest fields, regulatory mapping (EU AI Act / HIPAA / SOX), a verification statement, and a QR code linking to the public verify page for the run.
Aggregate stats
curl -s http://localhost:9090/stats \
-H "X-Verdifax-Key: vfx_..." | python3 -m json.tool
Returns total runs, runs today, last-24h, pass rate, average duration,
and a top-10 breakdown by program_id.
