POST
/
v1
/
image-plagiarism-detector
/
{scanId}
/
check
curl --request POST \
  --url https://api.copyleaks.com/v1/image-plagiarism-detector/my-scan-1/check \
  --header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
  --form 'image=@/path/to/my-photo.jpg' \
  --form 'filename=my-photo.jpg' \
  --form 'sandbox=false'
{
  "developerPayload": "my-custom-data",
  "scannedImage": {
    "scanId": "my-scan-1",
    "expectedCredits": 1,
    "actualCredits": 1,
    "creationTime": "2026-05-24T10:00:00Z",
    "width": 1920,
    "height": 1080,
    "filename": "my-photo.jpg"
  },
  "matches": {
    "internet": [
      {
        "url": "https://example.com/images/photo.jpg",
        "matchType": 0,
        "webPages": [
          { "url": "https://example.com/blog/my-post" },
          { "url": "https://example.org/news/article" }
        ]
      },
      {
        "url": "https://example.com/thumbs/photo-thumb.jpg",
        "matchType": 1,
        "webPages": [
          { "url": "https://example.org/gallery" }
        ]
      },
      {
        "url": "https://example.org/gallery/photo-sm.jpg",
        "matchType": 1
      }
    ],
    "score": {
      "totalMatches": 3,
      "fullMatches": 1,
      "partialMatches": 2
    }
  }
}
curl --request POST \
  --url https://api.copyleaks.com/v1/image-plagiarism-detector/my-scan-1/check \
  --header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
  --form 'image=@/path/to/my-photo.jpg' \
  --form 'filename=my-photo.jpg' \
  --form 'sandbox=false'
{
  "developerPayload": "my-custom-data",
  "scannedImage": {
    "scanId": "my-scan-1",
    "expectedCredits": 1,
    "actualCredits": 1,
    "creationTime": "2026-05-24T10:00:00Z",
    "width": 1920,
    "height": 1080,
    "filename": "my-photo.jpg"
  },
  "matches": {
    "internet": [
      {
        "url": "https://example.com/images/photo.jpg",
        "matchType": 0,
        "webPages": [
          { "url": "https://example.com/blog/my-post" },
          { "url": "https://example.org/news/article" }
        ]
      },
      {
        "url": "https://example.com/thumbs/photo-thumb.jpg",
        "matchType": 1,
        "webPages": [
          { "url": "https://example.org/gallery" }
        ]
      },
      {
        "url": "https://example.org/gallery/photo-sm.jpg",
        "matchType": 1
      }
    ],
    "score": {
      "totalMatches": 3,
      "fullMatches": 1,
      "partialMatches": 2
    }
  }
}
Search the web for copies of an image. Returns a list of full matches (exact or near-exact copies) and partial matches (cropped, resized, or modified versions), each with the web pages where the image was found - all in a single synchronous API call.
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>
Image Plagiarism Detection has a rate limit of 1,800 requests per 15 minutes per user. If exceeded, requests will be rejected with a 429 status code until the rate limit window resets.

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. Using the same ID for the same file helps avoid duplicate scans caused by network issues. Learn more about the criteria for creating a Scan ID.>= 3 characters <= 36 characters

Supported Content Type

Submit images using multipart/form-data. Headers:
Content-Type: multipart/form-data
Authorization: Bearer YOUR_LOGIN_TOKEN

Body Parameters

image
file
required
Binary image file to check for plagiarism.Requirements:
  • File size: Less than 20MB
  • Max resolution: 75 megapixels (width × height ≤ 75,000,000)
  • Formats: JPG, JPEG, PNG, GIF, BMP, WebP, RAW, ICO
filename
string
required
The name of the image file including its extension.Requirements:
  • Allowed extensions: .jpg, .jpeg, .png, .gif, .bmp, .webp, .ico
  • <= 255 characters
Example: "my-photo.jpg"
sandbox
boolean
default:"false"
Use sandbox mode to test your integration without consuming credits. Returns mock results.
developerPayload
string
An optional custom string you can attach to the request. It is echoed back unchanged in the response under developerPayload. Useful for correlating results with your own records.

Responses

200 OK The image was successfully analyzed. See the Image Plagiarism Response for the full response structure.
{
  "developerPayload": null,
  "scannedImage": {
    "scanId": "my-scan-1",
    "expectedCredits": 1,
    "actualCredits": 1,
    "creationTime": "2026-05-24T10:00:00Z",
    "width": 1920,
    "height": 1080,
    "filename": "my-photo.jpg"
  },
  "matches": {
    "internet": [
      {
        "url": "https://example.com/images/photo.jpg",
        "matchType": 0,
        "webPages": [
          { "url": "https://example.com/blog/my-post" }
        ]
      },
      {
        "url": "https://example.com/thumbs/photo.jpg",
        "matchType": 1
      }
    ],
    "score": {
      "totalMatches": 2,
      "fullMatches": 1,
      "partialMatches": 1
    }
  }
}