POST
Submit a video URL for AI-generated content detection. The endpoint is asynchronous - it returns 201 Created immediately, and the detection results are delivered to your webhook URL once processing is complete. Authentication is required. See Login for how to obtain a bearer token.
Try it without writing code - open the Video Detection Playground to submit a sample video and inspect the webhook response in your browser.
AI Video Detection is a new endpoint and the official Copyleaks SDKs (Python, JavaScript, Java, C#, PHP, Ruby) don’t yet expose a wrapper method. The code samples below call the HTTP API directly. SDK support is planned - until then, use the raw HTTP pattern.

Path parameters

scanId
string
required
A unique scan id provided by you. We recommend using the same id in your database to represent the scan in the Copyleaks database - this helps debug incidents and avoid duplicate scans for the same file. See criteria for creating a Scan ID.>= 3 characters   <= 36 charactersMatch pattern: [a-z0-9] !@$^&-+%=_(){}<>';:/.",~`|

Headers

Body parameters

url
string
required
Publicly accessible URL of the video file to analyze.Example: "https://example.com/my-video.mp4"
headers
array
Optional custom headers to include when Copyleaks fetches the video from the provided url. Each entry is a two-element array: ["Header-Name", "Header-Value"].Example: [["X-Custom-Auth", "my-token"]]
verb
string
Describes the HTTP method that is going to be executed on the specified url. Supported values: GET, POST, PUT.
filename
string
required
The name of the video file including its extension.Requirements:
  • Must include a supported video extension
  • <= 255 characters
Supported extensions: .mp4, .avi, .mov, .mkv, .webm, .flv, .wmv, .mpg, .m4v, .3gp, .mxfExample: "my-video.mp4"
model
string
required
The AI detection model to use for analysis.
  • AI Video 1 Pro: "ai-video-1-pro"
Example: "ai-video-1-pro"
webhooks
object
required
Webhook configuration for receiving the async results.
sandbox
boolean
default:"false"
Use sandbox mode to test your integration with the Copyleaks API without consuming any credits. Submit videos for AI detection and receive mock results simulating the API. Intended for development purposes only.
developerPayload
string
An optional string payload that Copyleaks will include in the webhook response, allowing you to correlate the callback with your internal data.Example: "order-id-12345"
For testing, set "sandbox": true. Sandbox mode is free and returns mock results.

Video requirements

Returned as 400 Bad Request at submit (synchronous):
  • Missing or invalid scanId, filename, url, model, or webhooks
  • Unsupported file extension
  • Filename longer than 255 characters
  • Invalid verb value
Delivered to your webhook as an error result (asynchronous, after download):
  • Duration outside 2 seconds-1 hour → video_too_short (67) / video_too_long (68)
  • File larger than 512 MiB → file_too_large (6)
  • Resolution below 360×360 → video_resolution_too_low (65)
  • Frame rate below 16 FPS → fps_too_low (66)
  • Undecodable codec → unsupported_video_codec (71)
  • Corrupt or truncated file → video_truncated (70)
  • Generic decode failure → video_load_failed (72)

Webhook payload

When processing completes, Copyleaks sends a POST request to your webhook URL with the detection results. See AI Video Detection Response for the complete field reference.

Example webhook delivery