# AI Video Detection Response

> Webhook response structure and field definitions for the Copyleaks AI Video Detection API.

The Copyleaks AI Video Detection API delivers results asynchronously via webhook. The payload contains time-based detection data for the audio and visual tracks, overall AI ratios, video metadata, and scan details.

## Response properties

<ParamField path="model" type="string">
  The version of the AI detection model used for the analysis.
</ParamField>

<ParamField path="audioResult" type="object">
  Time-based AI detection results for the audio track. Positions and lengths are in milliseconds.

  <Expandable title="properties">
    <ParamField path="audioResult.starts" type="array<integer>">
      Start positions (in ms) of AI-detected audio segments.
    </ParamField>
    <ParamField path="audioResult.lengths" type="array<integer>">
      Durations (in ms) of AI-detected audio segments, corresponding to each value in `starts`.
    </ParamField>
    <ParamField path="audioResult.exclude" type="object">
      Segments of the audio track that were not scored and are excluded from the AI ratio calculations.

      <Expandable title="properties">
        <ParamField path="audioResult.exclude.starts" type="array<integer>">
          Start positions (in ms) of excluded audio ranges.
        </ParamField>
        <ParamField path="audioResult.exclude.lengths" type="array<integer>">
          Durations (in ms) of excluded audio ranges.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="visualResult" type="object">
  Time-based AI detection results for the visual track. Positions and lengths are in milliseconds.

  <Expandable title="properties">
    <ParamField path="visualResult.starts" type="array<integer>">
      Start positions (in ms) of AI-detected visual segments.
    </ParamField>
    <ParamField path="visualResult.lengths" type="array<integer>">
      Durations (in ms) of AI-detected visual segments, corresponding to each value in `starts`.
    </ParamField>
    <ParamField path="visualResult.exclude" type="object">
      Segments of the visual track that were not scored and are excluded from the AI ratio calculations.

      <Expandable title="properties">
        <ParamField path="visualResult.exclude.starts" type="array<integer>">
          Start positions (in ms) of excluded visual ranges.
        </ParamField>
        <ParamField path="visualResult.exclude.lengths" type="array<integer>">
          Durations (in ms) of excluded visual ranges.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="summary" type="object">
  Overall AI detection ratios calculated from the scored segments only. Segments listed in `exclude` are not included in any of these calculations.

  <Expandable title="properties">
    <ParamField path="summary.audioAIRatio" type="float">
      Ratio of AI-detected audio duration to total audible duration. Excluded audio ranges are not counted. Range: 0.0-1.0.
    </ParamField>
    <ParamField path="summary.visualAIRatio" type="float">
      Ratio of AI-detected visual duration to total visible duration. Excluded visual ranges are not counted. Range: 0.0-1.0.
    </ParamField>
    <ParamField path="summary.overallAIRatio" type="float">
      Combined AI ratio across both audio and visual tracks, relative to the total video duration. Range: 0.0-1.0.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="videoInfo" type="object">
  Information about the analyzed video.

  <Expandable title="properties">
    <ParamField path="videoInfo.duration" type="float">
      Total duration of the video in seconds.
    </ParamField>
    <ParamField path="videoInfo.metadata" type="object">
      Optional metadata extracted from the video file (e.g. C2PA provenance data).

      <Expandable title="properties">
        <ParamField path="videoInfo.metadata.issuedTime" type="string">
          Timestamp (if available) indicating when the video was created.
        </ParamField>
        <ParamField path="videoInfo.metadata.issuedBy" type="string">
          The AI service or tool that created the video, if present in the metadata.
        </ParamField>
        <ParamField path="videoInfo.metadata.appOrDeviceUsed" type="string">
          The application or device used to create the video, if available in the metadata.
        </ParamField>
        <ParamField path="videoInfo.metadata.contentSummary" type="string">
          A summary of how the video was generated, if available in the metadata.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="scannedVideo" type="object">
  Metadata about the scan operation itself.

  <Expandable title="properties">
    <ParamField path="scannedVideo.scanId" type="string">
      The unique identifier for this scan, provided by you in the request.
    </ParamField>
    <ParamField path="scannedVideo.actualCredits" type="integer">
      The actual number of credits consumed by the scan.
    </ParamField>
    <ParamField path="scannedVideo.expectedCredits" type="integer">
      The expected number of credits for the scan.
    </ParamField>
    <ParamField path="scannedVideo.creationTime" type="string">
      The ISO 8601 timestamp indicating when the scan was created.
    </ParamField>
  </Expandable>
</ParamField>

## Example response

```json
{
  "model": "ai-video-1-pro",
  "audioResult": {
    "starts": [13000, 45000, 47000],
    "lengths": [14000, 1000, 8700],
    "exclude": {
      "starts": [0, 3250, 5400, 7600, 10500],
      "lengths": [2950, 1500, 1200, 650, 1050]
    }
  },
  "visualResult": {
    "starts": [11566, 29433],
    "lengths": [6134, 26267],
    "exclude": {
      "starts": [],
      "lengths": []
    }
  },
  "summary": {
    "audioAIRatio": 0.4902,
    "visualAIRatio": 0.5817,
    "overallAIRatio": 0.7487
  },
  "videoInfo": {
    "metadata": {
      "issuedTime": "2026-03-17T13:14:57+00:00",
      "issuedBy": "OpenAI",
      "appOrDeviceUsed": "Sora",
      "contentSummary": "Created using generative AI"
    },
    "duration": 55.7
  },
  "scannedVideo": {
    "scanId": "my-video-scan-1",
    "actualCredits": 1,
    "expectedCredits": 1,
    "creationTime": "2026-05-05T12:37:50Z"
  }
}
```

## Next steps

<CardGroup cols={2}>
  <Card title="AI Video Detection Guide" icon="video" href="/guides/ai-detector/ai-video-detection">
    Submit a video for AI detection and interpret the webhook results.
  </Card>
  <Card title="AI Video Detection API Reference" icon="code" href="/reference/actions/ai-video-detector/submit">
    The complete API reference for the AI Video Detection endpoint.
  </Card>
</CardGroup>
