Skip to main content

API Reference

Base URL: https://api.zebratruth.ai/v1 All endpoints require authentication via Authorization: Bearer {api_key} unless marked public. Endpoints that reserve credits or change state accept an Idempotency-Key header; reuse it to retry safely.

Endpoint Groups

Compliance Checks

  • POST /compliance/check — Text, or a PDF / Word document part. Financial-services scopes via reviewScopes
  • POST /compliance/check-image — Image check
  • POST /compliance/documents/extract — Extract document text, not billed

Video

  • POST /compliance/media/upload-url — Create upload URL
  • POST /compliance/check-video — Submit video check (accepts reviewScopes)
  • GET /compliance/check-video/{requestId} — Poll status and report
  • GET / POST /compliance/webhooks/video/secret… — Video webhook signing secret

Agents

  • GET /agents — Discover agents for your industries, including the six fs-compliance-* specialists and pharma-healthcare-compliance
  • POST /agents/{agentId} — Invoke one agent

Jobs & Reports

  • GET /compliance/jobs/{jobId} — Poll an async check
  • GET /compliance/jobs/{jobId}/trace — Agent trace
  • GET /compliance/jobs/{jobId}/stream — Resume SSE
  • GET /reports/{reportId} — Get report
  • POST /reports/{reportId}/replay — Replay check

Check History

  • GET /compliance/checks — List past checks within retention
  • GET /compliance/checks/{requestId} — Full persisted report, including the rules applied
  • GET /logs — Request history

Provenance

  • POST /media/provenance/inspect — Read Content Credentials on an image or video
  • POST /media/provenance/sign — Sign with your registered signer (video is async)
  • GET /media/provenance/jobs/{jobId} — Poll a video signing job
  • GET /media/provenance/signers — List signers
  • GET /media/provenance/signing-keys — Public: keys used to sign requests to your signer

Account & Usage

  • GET /whoami — Validate key, tenant info
  • GET /usage — Credit balance for the period
  • GET /usage/summary — Totals by feature
  • GET /usage/project/{projectId} — Usage for one externalId
  • GET /subscription — Plan and subscription state
  • GET /version — Engine version

Billing

  • POST /billing/checkout — Start a subscription
  • POST /billing/upgrade — Individual → Pro

Dashboard-session endpoints

A few routes are part of the same API but can only be called from a signed-in dashboard session, never with an API key. They are documented so you know what they return and what your team can automate through the dashboard:
  • Saved webhook endpoints — GET, POST /webhooks and DELETE /webhooks/{webhookId}, plus GET /webhooks/deliveries. Owner role, recent-authentication proof, Pro plan. Per-request webhookUrl on a check needs none of this and works on every plan.
  • Signer registration — POST /media/provenance/signers. Owner role with a recent-authentication proof.
  • Corpus review — GET /memory/review-queue, the review packet, and the approve / reject / request-changes actions. Registered reviewers, or company owners and managers.
  • Company policies — publishing your own policies and brand assets happens in the dashboard; every check applies them automatically.

Plan-restricted endpoints

Some endpoints are not available on every plan. On the Individual plan, GET /logs and the four /webhooks management endpoints — list, register, remove, and delivery log — return:
403 rather than 402: the request and credential are both valid, the plan simply does not include the feature. 402 means you are out of credits, which has a different remedy. See Plans & Billing.
data carries a stable code and nothing else. Every error response is reduced to { code } before it is sent, so no other field — the plan, the entitlement, the limit — is available to your client. Branch on code, and use statusMessage when you want to show the reason to a person.
Sending a webhookUrl on a compliance check is not plan-restricted, so responseMode: "async" works on every plan. Only the saved-endpoint surface above is gated. The video signing-secret routes under /v1/compliance/webhooks/video/… are likewise unrestricted.
The API reference pages below are auto-generated from the API specification. Each endpoint includes request/response schemas and a playground for testing.