> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zebratruth.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Compliance for AI-generated video

> Async compliance checks for video ads. Per-frame OCR + transcript analysis, timestamped violations, platform-specific rules. Built for ad agencies and creators.

# Compliance Checks for Video

ZebraTruth runs **structured compliance audits on AI-generated video ads**. Upload a video, get back timestamped findings against FTC, EU UCPD, UK ASA, platform-specific rules (TikTok, YouTube, Meta), and rights clearance — without writing any client-side video processing code.

<Card title="The video compliance endpoint" icon="video" href="/guides/video-compliance-check">
  **POST `https://api.zebratruth.ai/v1/compliance/check-video`**

  3-step async flow: get an upload URL → upload your video → poll for results. No client-side preprocessing. No file size hassle (up to 200 MB). Returns timestamped findings citing the exact `audio_NNN`, `frame_NNN`, `ocr_NNN`, or `signal_NNN` evidence ID.

  [**Open the full guide →**](/guides/video-compliance-check)
</Card>

<Note>
  Built for **ad agencies + creators** running automated pre-publish compliance gates on TikTok / YouTube / Meta ads. Per-second pricing — pay only for what you analyze.
</Note>

## Why Video Compliance is Different

|           | Server-side     | Async      | Per-frame analysis               |
| --------- | --------------- | ---------- | -------------------------------- |
| **Video** | ✅ Full pipeline | ✅ Required | ✅ OCR + brand + signal per frame |
| Image     | ✅ Multipart     | ❌ Sync     | Single image                     |
| Text      | ✅ JSON          | ❌ Sync     | N/A                              |

Pay-per-second pricing — you only pay for what you analyze, with no client-side preprocessing required.

## What ZebraTruth Detects in Video

<CardGroup cols={2}>
  <Card title="Per-frame OCR + brand detection" icon="image">
    Burned-in disclaimers, on-screen claims, brand logos, watermarks. Every frame analyzed and cited by stable `ocr_NNN` / `frame_NNN` evidence ID.
  </Card>

  <Card title="Audio transcript analysis" icon="microphone">
    Spoken claims transcribed with second-precision timestamps. Citations link findings to specific `audio_NNN` segments.
  </Card>

  <Card title="Platform-specific rules" icon="mobile-screen">
    TikTok, YouTube, Instagram, Facebook, LinkedIn AI-disclosure + monetization rules. Returns timestamped violations.
  </Card>

  <Card title="Jurisdiction detection" icon="scale-balanced">
    FTC, EU UCPD, UK ASA, India ASCI, China Advertising Law — applied based on the markets you specify per video.
  </Card>

  <Card title="Restricted categories" icon="ban">
    Alcohol, tobacco, firearms, gambling, pharma — flagged with evidence linkage to the frames/segments that triggered them.
  </Card>

  <Card title="Deterministic scoring" icon="chart-simple">
    Every video gets a 0-100 score + PUBLISH / HOLD / BLOCK decision based on severity + applicability + jurisdiction weighting.
  </Card>
</CardGroup>

## Three-Step Async Flow

```bash theme={null}
# Step 1 — get an upload URL
curl -X POST https://api.zebratruth.ai/v1/compliance/media/upload-url \
  -H "Authorization: Bearer $ZEBRATRUTH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contentType": "video/mp4"}'

# Step 2 — upload your video to the returned uploadUrl

# Step 3 — submit for analysis (returns 202 with requestId)
curl -X POST https://api.zebratruth.ai/v1/compliance/check-video \
  -H "Authorization: Bearer $ZEBRATRUTH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "<your-uuid>",
    "blobPath": "<from step 1>",
    "jurisdictions": ["us", "eu"],
    "platforms": ["tiktok", "youtube"],
    "mode": "fast"
  }'

# Step 4 — poll for results
curl https://api.zebratruth.ai/v1/compliance/check-video/<requestId> \
  -H "Authorization: Bearer $ZEBRATRUTH_API_KEY"
```

<Card title="Full step-by-step guide" icon="video" href="/guides/video-compliance-check">
  Detailed examples in curl, Node, Python. Error handling, webhook setup, billing semantics.

  [**Read the full guide →**](/guides/video-compliance-check)
</Card>

## Get Started

<CardGroup cols={2}>
  <Card title="Quickstart (Video)" icon="play" href="/quickstart">
    Run your first video compliance check in 2 minutes.

    [**Open Quickstart →**](/quickstart)
  </Card>

  <Card title="Video Compliance Concept" icon="lightbulb" href="/video">
    The async flow, the schema, evidence IDs.

    [**Read the concept page →**](/video)
  </Card>

  <Card title="LLM Skill" icon="robot" href="/llm-skill/overview">
    Install the ZebraTruth skill into Claude Code, OpenClaw, or any LLM agent so your agent can run video compliance checks autonomously.

    [**See the LLM Skill overview →**](/llm-skill/overview)
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    Full OpenAPI schema — every endpoint, request, response.

    [**Browse API Reference →**](/api-reference/overview)
  </Card>
</CardGroup>

***

<Note>
  **Other content types:** ZebraTruth also runs compliance on [single images](/concepts/other-content-types) (sync) and [text/ad copy](/concepts/other-content-types) (sync). Most customers use the video endpoint — see [Other Content Types](/concepts/other-content-types) for image + text references.
</Note>
