Skip to main content
POST
Submit a video for compliance analysis

Authorizations

Authorization
string
header
required

API key starting with zt_live_ (production) or zt_test_ (sandbox). Get your key at https://developers.zebratruth.ai

Headers

Idempotency-Key
string<uuid>
required

Unique request identifier to prevent duplicate execution and double-charging. Generate a new UUID for each distinct request. Reuse the same key to safely retry.

Body

application/json
requestId
string
required

The requestId returned from POST /compliance/media/upload-url.

Example:

"82b68316-ed85-489c-991e-2ff0f2b95f29"

blobPath
string
required

The blobPath returned from POST /compliance/media/upload-url.

Example:

"videos/kp_abc123.../82b68316-.../source.mp4"

jurisdictions
string[]
required

Canonical jurisdiction codes scoped to your account's subscription. Inputs are canonicalized (trim + lowercase + sort) before hashing — case-only differences are treated as the same request.

Minimum array length: 1
Example:
platforms
enum<string>[]
required

Canonical platform codes scoped to your account's subscription.

Minimum array length: 1
Available options:
youtube,
instagram,
facebook,
tiktok,
linkedin
Example:
mode
enum<string>
default:fast

Execution mode. V1 supports fast only.

Available options:
fast
webhookUrl
string<uri>

Optional callback URL. When set, a signed POST is delivered when the job reaches a terminal status. Requires you to have configured a webhook signing secret via GET /compliance/webhooks/video/secret.

Example:

"https://your-app.example.com/webhooks/zebratruth"

callbackId
string

Opaque tag echoed back in the 202 response and the webhook payload. Use it to correlate jobs with your internal records.

Maximum string length: 256
reviewScopes
enum<string>[]

Financial-services review scopes to run on the transcript and on-screen text. Same admission rules as the text check. JSON body only.

Maximum array length: 6

A financial-services review scope. Each maps to one specialist agent: financial promotions, disclosures and conduct; investment advice and suitability; credit origination, servicing and collections; order execution, transaction reporting and market abuse; KYC, AML/CFT, fraud and sanctions; AI governance, model risk and automated decisions. Coverage is US, EU and UK for every scope, plus China and India for financial_promotion.

Available options:
financial_promotion,
advisory_suitability,
credit_servicing,
markets_trading,
financial_crime,
ai_governance
contentKind
enum<string>

What kind of artifact the video is. JSON body only.

Available options:
marketing,
suitability_report,
advice_letter,
precontract_disclosure,
adverse_action_notice,
collections_communication,
arrears_notice,
fund_factsheet,
research_note,
trader_communication,
best_execution_disclosure,
kyc_onboarding,
scam_warning,
aml_policy,
ai_policy,
model_documentation,
other

Response

Job accepted + queued

jobId
string
required

Same value as the request's requestId. Use it to poll status.

Example:

"82b68316-ed85-489c-991e-2ff0f2b95f29"

status
enum<string>
required
Available options:
queued
estimatedCredits
integer
required

Credits reserved for this job. Committed on success or released on insufficient_evidence / analysis_failed.

callbackId
string

Echoed verbatim from the request when provided.

idempotent
boolean

Present + true when this request matched an existing job with the same (requestId, blobPath, feature, inputHash). No additional credits reserved.