Three scan types
A scan is either text or image, never both. The two text scans can run together on the same text; an image scan runs alone.
Cheat Detection (hidden characters, white ink, text manipulation) and the AI Source Match tag, which marks a matched source as itself AI-generated.
OCR - PDFs, scans and photos
Both text scans accept files that are not plain text - a PDF, a scanned page, a photograph of a document. Copyleaks extracts the text and scans that. That is still a text scan.The 350-word AI minimum
AI Detection needs at least 350 words. Below that it does not run at all and no AI score comes back - the scan still runs for plagiarism, which has no minimum.
Long text goes as a file
Pasted text is capped at 25,000 characters. A file has no character ceiling, so if a paste is refused for length, send the same content as a file instead.Getting a document to Copyleaks
An agent cannot pass a file from one connector to another. A Drive or Dropbox connection gives your agent the file; it does not give Copyleaks the file.
There is no fixed byte threshold between the two. An inline file is encoded and crosses the agent’s context twice, costing roughly 3.3 tokens per byte, so the boundary is whatever the agent’s remaining context can hold - which differs by client by more than two orders of magnitude. Your agent budgets against its own context and picks. Anything past a small file should go through the upload slot, where the bytes never enter the conversation.
The upload step needs a client that can run a command on your machine:
On the two chat surfaces, larger files are uploaded in the Copyleaks web app instead. Claude Code’s desktop app is Claude Code and has the full capability - it is not Claude Desktop.
Images
An image always travels through the upload step, never inline. That means image scanning is unavailable on the two Claude chat surfaces, claude.ai and Claude Desktop - but works in Claude Code, including its desktop app.
Size and format are checked before the image is sent, so an image over the limit or in an unsupported format is refused without spending anything. Dimensions and megapixels are checked afterwards - the upload slot knows a file’s byte count and extension, not its pixels. An image outside those bounds is sent, fails there, and still spends no credit; the failure comes back as a failed scan carrying its reason.
An image scan returns a score and confirmation the picture was checked - nothing pixel-level. Open the report for anything visual.

