PUT
/
v3
/
scans
/
submit
/
ocr
/
{scanId}
curl --request PUT \
  --url https://api.copyleaks.com/v3/scans/submit/ocr/my-scan-123 \
  --header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "base64": "YOUR_BASE64_HERE",
    "filename": "image.jpg",
    "langCode": "en",
    "properties": {
      "webhooks": {
        "status": "https://my-server.com/webhook/{STATUS}"
      },
      "sandbox": true
    }
  }'
{
  "scannedDocument": {
    "scanId": "scan-id32",
    "totalWords": 2,
    "totalExcluded": 0,
    "credits": 0,
    "expectedCredits": 1,
    "creationTime": "2025-08-05T07:19:08.181236Z",
    "metadata": { "filename": "file.jpg" },
    "detectedLanguage": "en"
  },
  "results": {
    "score": { "aggregatedScore": 50.0, "identicalWords": 1 },
    "internet": [
      { "url": "http://example.com/", "id": "2a1b402420", "title": "Example Domain" }
    ]
  },
  "status": 0,
  "developerPayload": ""
}
curl --request PUT \
  --url https://api.copyleaks.com/v3/scans/submit/ocr/my-scan-123 \
  --header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "base64": "YOUR_BASE64_HERE",
    "filename": "image.jpg",
    "langCode": "en",
    "properties": {
      "webhooks": {
        "status": "https://my-server.com/webhook/{STATUS}"
      },
      "sandbox": true
    }
  }'
{
  "scannedDocument": {
    "scanId": "scan-id32",
    "totalWords": 2,
    "totalExcluded": 0,
    "credits": 0,
    "expectedCredits": 1,
    "creationTime": "2025-08-05T07:19:08.181236Z",
    "metadata": { "filename": "file.jpg" },
    "detectedLanguage": "en"
  },
  "results": {
    "score": { "aggregatedScore": 50.0, "identicalWords": 1 },
    "internet": [
      { "url": "http://example.com/", "id": "2a1b402420", "title": "Example Domain" }
    ]
  },
  "status": 0,
  "developerPayload": ""
}
Scan images with textual content to find where the content has been used before and check its originality. Using submit-ocr you can scan various image file types for plagiarism and identify infringed content. Only the textual content in the picture will be scanned and not the graphics. See supported formats.
Authentication Required. You need to login with a user and API key in order to access this method. Add this HTTP header to your request:Authorization: Bearer <Your-Login-Token>

Request

Path Parameters

scanId
string
required
A unique scan id provided by you. We recommend you use the same id in your database to represent the scan in the Copyleaks database. This will help you to debug incidents. Using the same ID for the same file will help you to avoid network problems that may lead to multiple scans for the same file. Learn more about the criteria for creating a Scan ID.>= 3 characters <= 36 characters

Headers

Content-Type: application/json
Authorization: Bearer YOUR_LOGIN_TOKEN

Request Body

The request body is a JSON object containing the image file to scan and a properties object to configure the scan.
base64
string
required
A base64 data string of a file. If you would like to scan plain text, encode it as base64 and submit it.Example: aGVsbG8gd29ybGQ=
filename
string
required
The name of the file as it will appear in the Copyleaks scan report. Make sure to include the right extension for your filetype.<= 255 charactersExample: image.jpg
langCode
string
required
The language of the text in the image. See supported languages.Example: en
properties
object
required
Configuration options for the scan.
For testing purposes, use sandbox mode, which does not consume credits.

Responses

201 Created - The scan was successfully created and is now processing.
{
  "scannedDocument": {
    "scanId": "scan-id32",
    "totalWords": 2,
    "totalExcluded": 0,
    "credits": 0,
    "expectedCredits": 1,
    "creationTime": "2025-08-05T07:19:08.181236Z",
    "metadata": {
      "filename": "file.jpg"
    },
    "detectedLanguage": "en"
  },
  "status": 0,
  "developerPayload": ""
}