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

# Submit video moderation

> Submit a video URL for moderation. The video is sent directly to a video-capable vision model — the same checks as image moderation, applied to the whole clip (no frame extraction). Pass a publicly reachable HTTP or HTTPS `video`. URLs that use another scheme, or that resolve to a private or internal network address, are rejected with `400 INVALID_REQUEST`. The linked video must be no larger than 300 MB. Returns a job ID for polling or webhook delivery.

<Note>
  Requires the `moderate:video` scope. Requests without this scope receive a `403 FORBIDDEN`
  response. See [authentication](/authentication#scopes).
</Note>


## OpenAPI

````yaml api-reference/openapi.json POST /api/v1/moderate/video
openapi: 3.1.0
info:
  title: Omnifence API
  description: >-
    Content moderation API. Clients submit images or videos which pass through a
    classification pipeline and receive a pass/reject decision.
  version: 1.0.0
  contact:
    email: support@omnifence.ai
servers:
  - url: http://localhost:3051
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: System
    description: Health and diagnostics
  - name: Moderation
    description: Submit moderation jobs
  - name: Jobs
    description: Query job status and progress
  - name: Usage
    description: Billing and usage data
  - name: Webhooks
    description: Webhook registration
  - name: Account
    description: Authenticated client account settings
  - name: Billing
    description: Customer-facing billing balance and ledger
  - name: Admin
    description: Platform administration (requires admin:config scope)
paths:
  /api/v1/moderate/video:
    post:
      tags:
        - Moderation
      summary: Submit video moderation
      description: >-
        Submit a video URL for moderation. The video is sent directly to a
        video-capable vision model — the same checks as image moderation,
        applied to the whole clip (no frame extraction). Pass a publicly
        reachable HTTP or HTTPS `video`. URLs that use another scheme, or that
        resolve to a private or internal network address, are rejected with `400
        INVALID_REQUEST`. The linked video must be no larger than 300 MB.
        Returns a job ID for polling or webhook delivery.
      operationId: submitVideoModeration
      responses:
        '202':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - queued
                required:
                  - job_id
                  - status
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl -X POST https://api.omnifence.ai/api/v1/moderate/video \
              -H "Authorization: Bearer $OMNIFENCE_API_KEY" \
              -F "video=https://example.com/clip.mp4" \
              -F "webhook_url=https://your-app.com/webhooks/omnifence"  # optional
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key from the Omnifence dashboard

````