PlagiarismCheck.org API

Introduction

This document provides all the necessary information you need for checking texts for plagiarism in your application.

You can visit our GitHub profile to find more examples.

There are 2 kinds of APIs in PlagiarismCheck. The first API is for clients who will use the API as individual users. The second API is for organizations that include many users.

Both of the API types use an API-token for authorization, so you will need to contact your administrator or the support team to receive the API token first.

Here is a GitHub repository with examples, both for individual and organization APIs.

Also, you can check a Swagger page with API specification.

Sequence

To check a text for plagiarism in your application, you MUST:

  1. 1) Receive an authorization API token.
  2. 2) Send the text by using the API method and receive an identification number of the text.
  3. 3) Wait until we check the text.
  4. 4) Check the status of the text by using the ID from 2 and the API method. If the text is not checked, go to step 3 with timeout.
  5. 5) Receive a report by using the text ID from 2 and the API method.
  6. 6) Render the json report in your application.

Authorization

For authorization, you MUST have a registered account with PlagiarismCheck.org and a special API token from our support team.

To receive an API token, you need to contact our Support. Also, you can sign in and copy the actual API token below.

API returns 401 Unauthorized if you provide an invalid token. You MUST send your token in the header with the name X-API-TOKEN.

Example of an HTTP header:

X-API-TOKEN: vsMKX3179tjK3CqvhE228IDeMV-eBBER

Where vsMKX3179tjK3CqvhE228IDeMV-eBBER is an example of the api token.

Send the request

The request has parameters:

  • language - language of the text. At the moment, we support only one value: en.
  • text - content of the text you want to check. It MUST NOT be shorter than 80 characters.
The Request:
curl "https://plagiarismcheck.org/api/v1/text"  \
 --request POST \
 --header  "X-API-TOKEN: cUwhcQU88K2cYn47aPCg-snWoSNNJwyW" \
 --data    "language=en" \
 --data    "text=an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables or remote calls. POSIX, Microsoft Windows API, the C++ Standard Template Library and Java APIs are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage"
The Response:
{
	"success": true,
	"data": {
		"text": {
			"id": 2,
			"filename": "an_application",
			"created_at": "1516279363000",
			"updated_at": "1516279364000",
			"submitted_at": "1516279364000",
			"is_deleted": false,
			"deleted_at": null,
			"state": 3,
			"language": "en",
			"pages": 1,
			"group_id": null,
			"user_id": 9,
			"report_id": null
		},
		"charged": 0,
		"bonus_charged": 1
	}
}
						

Check the status

This method receives an ID of the text and returns detailed information about the text. Here is a table with statuses:

IDNameDescription
2STATE_STOREDText has been stored and waiting for a check.
3STATE_SUBMITTEDText has been stored and waiting for a check.
4STATE_FAILEDText has not been checked. An error happened.
5STATE_CHECKEDText has been successfully checked and you can receive the report.

In example: "2" is the ID of text

Request:
curl "https://plagiarismcheck.org/api/v1/text/2"  \
-X GET \
-H "X-API-TOKEN: cUwhcQU88K2cYn47aPCg-snWoSNNJwyW"
Response:
{
	"data": {
		"id": 2,
		"filename": "an_application",
		"created_at": "1516279363000",
		"updated_at": "1516279369000",
		"submitted_at": "1516279364000",
		"is_deleted": false,
		"deleted_at": null,
		"state": 5,
		"language": "en",
		"pages": 1,
		"group_id": null,
		"creator": {
			"id": 9,
			"name": "Test",
			"email": "test@example.com",
			"created_at": "1516279118000",
			"updated_at": "1516279118000",
			"is_blocked": false,
			"allowed_languages": [
				"en"
			],
			"balance": {
				"balance": 0,
				"bonus": 596,
				"hold": 0,
				"hold_bonus": 0
			},
			"avatar": null
		},
		"report": {
			"id": 1,
			"created_at": "1516279369000",
			"source_count": 0,
			"percent": "0.00"
		}
	}
}

Get the Report

This method receives an ID of the text and returns a detailed report. The text MUST be with status 5 (STATE_CHECKED). The report contains nodes, sources, and other information. Each node has text, a start position, an end position, and sources where the text was found. Each source has: content-type, percentage of plagiarism, and a URL. In example "2" is The ID of the text.

Request:
curl "https://plagiarismcheck.org/api/v1/text/report/2"  \
-X GET \
-H "X-API-TOKEN: cUwhcQU88K2cYn47aPCg-snWoSNNJwyW" 
Response:
{
  "data": {
    "report": {
      "id": 14,
      "created_at": "1513617036000",
      "source_count": 3,
      "percent": "100.00",  //percent of plagiarism
      "text_id": 14 // ID of check
    },
    "report_data": {
      "version": "1.1",
      "length": 2435,
      "created_at": "2017-12-18 11:10:35",
      "nodes": [
        {
          "enabled": true,
          "start": 0,
          "end": 205,
          "text": "Because of its location on the crossroads between Europe and Asia, and its proximity to lucrative east-west trade routes, throughout history Tbilisi was a point of contention between various global powers. ",
          "sources": [
            0,
            1,
            2
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            },
            {
              "source": 2,
              "cos": 0.66
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1,
            2
          ]
        },
        {
          "enabled": true,
          "start": 206,
          "end": 327,
          "text": "The city\u0027s location to this day ensures its position as an important transit route for various energy and trade projects. ",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 328,
          "end": 486,
          "text": "Tbilisi\u0027s diverse history is reflected in its architecture, which is a mix of medieval, neoclassical, Beaux Arts, Art Nouveau, Stalinist and Modern structures.",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 0.7
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 487,
          "end": 692,
          "text": "Because of its location on the crossroads between Europe and Asia, and its proximity to lucrative east-west trade routes, throughout history Tbilisi was a point of contention between various global powers. ",
          "sources": [
            2
          ],
          "sources_improved": [
            {
              "source": 2,
              "cos": 0.66
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            2
          ]
        },
        {
          "enabled": true,
          "start": 693,
          "end": 814,
          "text": "The city\u0027s location to this day ensures its position as an important transit route for various energy and trade projects. ",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 815,
          "end": 973,
          "text": "Tbilisi\u0027s diverse history is reflected in its architecture, which is a mix of medieval, neoclassical, Beaux Arts, Art Nouveau, Stalinist and Modern structures.",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 0.7
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 974,
          "end": 1179,
          "text": "Because of its location on the crossroads between Europe and Asia, and its proximity to lucrative east-west trade routes, throughout history Tbilisi was a point of contention between various global powers. ",
          "sources": [
            2
          ],
          "sources_improved": [
            {
              "source": 2,
              "cos": 0.66
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            2
          ]
        },
        {
          "enabled": true,
          "start": 1180,
          "end": 1301,
          "text": "The city\u0027s location to this day ensures its position as an important transit route for various energy and trade projects. ",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 1302,
          "end": 1460,
          "text": "Tbilisi\u0027s diverse history is reflected in its architecture, which is a mix of medieval, neoclassical, Beaux Arts, Art Nouveau, Stalinist and Modern structures.",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 0.7
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 1461,
          "end": 1666,
          "text": "Because of its location on the crossroads between Europe and Asia, and its proximity to lucrative east-west trade routes, throughout history Tbilisi was a point of contention between various global powers. ",
          "sources": [
            2
          ],
          "sources_improved": [
            {
              "source": 2,
              "cos": 0.66
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            2
          ]
        },
        {
          "enabled": true,
          "start": 1667,
          "end": 1788,
          "text": "The city\u0027s location to this day ensures its position as an important transit route for various energy and trade projects. ",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 1789,
          "end": 1947,
          "text": "Tbilisi\u0027s diverse history is reflected in its architecture, which is a mix of medieval, neoclassical, Beaux Arts, Art Nouveau, Stalinist and Modern structures.",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 0.7
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 1948,
          "end": 2153,
          "text": "Because of its location on the crossroads between Europe and Asia, and its proximity to lucrative east-west trade routes, throughout history Tbilisi was a point of contention between various global powers. ",
          "sources": [
            2
          ],
          "sources_improved": [
            {
              "source": 2,
              "cos": 0.66
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            2
          ]
        },
        {
          "enabled": true,
          "start": 2154,
          "end": 2275,
          "text": "The city\u0027s location to this day ensures its position as an important transit route for various energy and trade projects. ",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 1
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        },
        {
          "enabled": true,
          "start": 2276,
          "end": 2434,
          "text": "Tbilisi\u0027s diverse history is reflected in its architecture, which is a mix of medieval, neoclassical, Beaux Arts, Art Nouveau, Stalinist and Modern structures.",
          "sources": [
            0,
            1
          ],
          "sources_improved": [
            {
              "source": 0,
              "cos": 1
            },
            {
              "source": 1,
              "cos": 0.7
            }
          ],
          "references": [],
          "headers": [],
          "quotes": [],
          "destinations_clusters": [
            0,
            1
          ]
        }
      ],
      "indexes": [
        {
          "id": 0,
          "db_id": 1,
          "name": "",
          "status": "success",
          "queries": 10,
          "type": "external"
        }
      ],
      "references": [],
      "header": [],
      "quotes": [],
      "sources": [
        {
          "dst_pos_success": true,
          "content_type": "text\/html",
          "index": 0,
          "source": "https:\/\/en.wikipedia.org\/wiki\/Tbilisi",
          "length": 1611,
          "percent": 66.16,
          "link": {
            "name": "en.wikipedia.org",
            "urls": [
              "https:\/\/en.wikipedia.org\/wiki\/Tbilisi"
            ]
          },
          "tf_idf": false,
          "plagiarism_length": 1611,
          "plagiarism_percent": 66.16
        },
        {
          "dst_pos_success": true,
          "content_type": "text\/html",
          "index": 0,
          "source": "https:\/\/www.youtube.com\/watch?v=YU-db2NKMtY",
          "length": 1611,
          "percent": 66.16,
          "link": {
            "name": "www.youtube.com",
            "urls": [
              "https:\/\/www.youtube.com\/watch?v=YU-db2NKMtY"
            ]
          },
          "tf_idf": false,
          "plagiarism_length": 1611,
          "plagiarism_percent": 66.16
        },
        {
          "dst_pos_success": true,
          "content_type": "text\/html",
          "index": 0,
          "source": "https:\/\/www.facebook.com\/New-Georgia-Travel-agency-306643492874270\/",
          "length": 1030,
          "percent": 42.3,
          "link": {
            "name": "www.facebook.com",
            "urls": [
              "https:\/\/www.facebook.com\/New-Georgia-Travel-agency-306643492874270\/"
            ]
          },
          "tf_idf": false,
          "plagiarism_length": 1030,
          "plagiarism_percent": 42.3
        }
      ],
      "sources_count": 3,
      "matched_length": 2435,
      "matched_percent": 100,
      "external_queries": 10,
      "destinations_clusters": [
        {
          "source": 0,
          "id": 0,
          "offsets": [
            {
              "start": 28510,
              "end": 28843,
              "cos": 1
            },
            {
              "start": 28844,
              "end": 28965,
              "cos": 1
            },
            {
              "start": 28966,
              "end": 29554,
              "cos": 1
            },
            {
              "start": 28844,
              "end": 28965,
              "cos": 1
            },
            {
              "start": 28966,
              "end": 29554,
              "cos": 1
            },
            {
              "start": 28844,
              "end": 28965,
              "cos": 1
            },
            {
              "start": 28966,
              "end": 29554,
              "cos": 1
            },
            {
              "start": 28844,
              "end": 28965,
              "cos": 1
            },
            {
              "start": 28966,
              "end": 29554,
              "cos": 1
            },
            {
              "start": 28844,
              "end": 28965,
              "cos": 1
            },
            {
              "start": 28966,
              "end": 29554,
              "cos": 1
            }
          ]
        },
        {
          "source": 1,
          "id": 1,
          "offsets": [
            {
              "start": 87684,
              "end": 87889,
              "cos": 1
            },
            {
              "start": 87890,
              "end": 88011,
              "cos": 1
            },
            {
              "start": 88012,
              "end": 88180,
              "cos": 0.7
            },
            {
              "start": 87890,
              "end": 88011,
              "cos": 1
            },
            {
              "start": 88012,
              "end": 88180,
              "cos": 0.7
            },
            {
              "start": 87890,
              "end": 88011,
              "cos": 1
            },
            {
              "start": 88012,
              "end": 88180,
              "cos": 0.7
            },
            {
              "start": 87890,
              "end": 88011,
              "cos": 1
            },
            {
              "start": 88012,
              "end": 88180,
              "cos": 0.7
            },
            {
              "start": 87890,
              "end": 88011,
              "cos": 1
            },
            {
              "start": 88012,
              "end": 88180,
              "cos": 0.7
            }
          ]
        },
        {
          "source": 2,
          "id": 2,
          "offsets": [
            {
              "start": 296896,
              "end": 297223,
              "cos": 0.66
            },
            {
              "start": 296896,
              "end": 297223,
              "cos": 0.66
            },
            {
              "start": 296896,
              "end": 297223,
              "cos": 0.66
            },
            {
              "start": 296896,
              "end": 297223,
              "cos": 0.66
            },
            {
              "start": 296896,
              "end": 297223,
              "cos": 0.66
            }
          ]
        }
      ]
    }
  }
}

Sequence

To check a text for plagiarism in your application, you MUST:

  1. 1) Receive an authorization API token.
  2. 2) Send the text by using the API method and receive an identification number of the text.
  3. 3) Wait until we check the text.
  4. 4) Check the status of the text by using the ID from 2 and the API method. If the text is not checked, go to step 3 with timeout.
  5. 5) Receive a report by using the text ID from 2 and the API method.
  6. 6) Render the json report in your application.

Authorization

For authorization, you MUST have a registered account with PlagiarismCheck.org and a special API token from our support team.

To receive an API token, you need to contact our Support. Also, you can sign in as owner and copy the actual API token below.

Send the request

The request has parameters:

  • author - Username (email) of an organization member. This member will be the author of the check.
  • group_token - the API token
  • text - The text to be checked. Also, you can send a file (doc, docx, pdf, txt, odt, rtf) as shown in the example.
The Request:
curl "https://plagiarismcheck.org/api/org/text/check/"  \
 --request POST \
 --data    "group_token=G-HEfFiCHYWYx...." \
 --data    "author=example@example.com" \
 --data    "text=an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables or remote calls. POSIX, Microsoft Windows API, the C++ Standard Template Library and Java APIs are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage" \
The Response:
{
   "success":true,
   "data":{
      "id":14, // Check ID
      "filename":"an application",
      "created_at":"1643727469000",
      "updated_at":"1643727469000",
      "submitted_at":"1643727469000",
      "is_deleted":false,
      "deleted_at":null,
      "state":3,
      "language":"en",
      "pages":1,
      "words":127,
      "group_id":3,
      "custom_author":null,
      "user_id":24,
      "report_id":null,
      "integration_links":[
         {
            "id":11,
            "integration_id":null,
            "submission":null,
            "course_work":null,
            "assignment":null,
            "publishable":false
         }
      ]
   }
}
						

Check the status

This method receives the ID of the text and returns detailed information about the text. Here is a table with statuses:

IDNameDescription
2STATE_STOREDText has been stored and waiting for a check.
3STATE_SUBMITTEDText has been stored and waiting for a check.
4STATE_FAILEDText has not been checked. An error happened
5STATE_CHECKEDText has been successfully checked and you can receive the report.

In example: "14" is the ID of text

Request:
curl "https://plagiarismcheck.org/api/org/text/status/14/"  \
 --request POST \
 --data    "group_token=G-HEfFi..."
Response:
{
   "success":true,
   "data":{
      "id":14,  //Check ID
      "filename":"an application",
      "created_at":"1643727469000",
      "updated_at":"1643727471000",
      "submitted_at":"1643727469000",
      "is_deleted":false,
      "deleted_at":null,
      "state":5,
      "language":"en",
      "pages":1,
      "words":127,
      "group_id":3,
      "custom_author":null,
      "creator":{
         "id":24,
         "name":"Default User", //author name
         "email":"example@example.com", //author email
         "created_at":"1643307115000",
         "updated_at":"1643647307000",
         "is_blocked":false,
         "allowed_languages":[
            "en"
         ],
         "balance":{
            "balance":0,
            "bonus":397,
            "hold":0,
            "hold_bonus":0
         },
         "avatar":null,
         "sale_role":null
      },
      "report":{
         "id":13,
         "created_at":"1643727471000",
         "source_count":5,
         "percent":"28.57"  // Percent of plagiarism
      },
      "integration_links":[
         {
            "id":11,
            "integration_id":null,
            "submission":null,
            "course_work":null,
            "assignment":null,
            "publishable":false
         }
      ]
   }
}

Get the Report

This method receives an ID of the text and returns a detailed report. The text MUST be with status 5 (STATE_CHECKED). The report contains nodes, sources, and other information. Each node contains the text, the start position, the end position, and the sources where the text was found. Each source has the content type, percentage of plagiarism, and a URL. In the example "14" is The ID of the text.

Request:
curl "https://plagiarismcheck.org/api/org/text/report/14/"  \
 --request POST \
 --data    "group_token=G-HEfFiCHYWY..."
 
Response:
{
   "success":true,
   "data":{
      "report":{
         "id":13,
         "created_at":"1643727471000",
         "source_count":5,
         "percent":"28.57",
         "text_id":14
      },
      "report_data":{
         "version":"1.1",
         "length":637,
         "created_at":"2017-05-12 05:10:57",
         "nodes":[
            {
               "enabled":true,
               "start":0,
               "end":19,
               "text":"\nnon_matched_header\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[
                  0
               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":20,
               "end":34,
               "text":"matched_header\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[
                  0
               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":35,
               "end":53,
               "text":"non_matched_header\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[
                  0
               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":54,
               "end":74,
               "text":"\nnon_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":75,
               "end":90,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":91,
               "end":122,
               "text":"matched_content_with_paraphrase\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":0.65
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":123,
               "end":138,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":139,
               "end":179,
               "text":"non_matched_content\n\nnon_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":180,
               "end":195,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":196,
               "end":233,
               "text":"matched_content_with_multiple_sources\n",
               "sources":[
                  0,
                  1
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  },
                  {
                     "source":1,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0,
                  1
               ]
            },
            {
               "enabled":true,
               "start":234,
               "end":334,
               "text":"matched_content_from_internal_db\nmatched_content_from_cache\nnon_matched_content\n\nnon_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":335,
               "end":350,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":351,
               "end":377,
               "text":"matched_content_with_quote\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[
                  0
               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":378,
               "end":393,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":394,
               "end":413,
               "text":"non_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":414,
               "end":444,
               "text":"non_matched_content_with_quote\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[
                  1
               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":445,
               "end":485,
               "text":"non_matched_content\n\nnon_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":486,
               "end":501,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":502,
               "end":532,
               "text":"matched_content_with_reference\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[
                  0
               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":533,
               "end":548,
               "text":"matched_content\n",
               "sources":[
                  0
               ],
               "sources_improved":[
                  {
                     "source":0,
                     "cos":1
                  }
               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[
                  0
               ]
            },
            {
               "enabled":true,
               "start":549,
               "end":568,
               "text":"non_matched_content\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":569,
               "end":603,
               "text":"non_matched_content_with_reference\n",
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[
                  1
               ],
               "headers":[

               ],
               "quotes":[

               ],
               "destinations_clusters":[

               ]
            },
            {
               "enabled":true,
               "start":604,
               "end":636,
               "sources":[

               ],
               "sources_improved":[

               ],
               "references":[

               ],
               "headers":[

               ],
               "quotes":[

               ],
               "text":"non_matched_content\n\nVERSION 1.4\n",
               "destinations_clusters":[

               ]
            }
         ],
         "indexes":[
            {
               "id":0,
               "db_id":1,
               "name":"",
               "status":"success",
               "queries":5,
               "type":"external"
            },
            {
               "id":1,
               "db_id":1,
               "name":"",
               "status":"success",
               "queries":7,
               "type":"external"
            },
            {
               "id":2,
               "db_id":2,
               "name":"",
               "status":"success",
               "queries":0,
               "type":"internal"
            },
            {
               "id":3,
               "db_id":3,
               "name":"",
               "status":"success",
               "queries":0,
               "type":"cache"
            }
         ],
         "references":[
            {
               "id":0,
               "length":31
            },
            {
               "id":1,
               "length":35
            }
         ],
         "header":[
            {
               "id":0,
               "length":54
            }
         ],
         "quotes":[
            {
               "id":0,
               "length":27
            },
            {
               "id":1,
               "length":31
            }
         ],
         "sources":[
            {
               "dst_pos_success":true,
               "content_type":"text\/plain",
               "index":0,
               "source":"http:\/\/searchengine.localhost\/resource\/first",
               "length":255,
               "percent":40.03,
               "link":{
                  "name":"searchengine.localhost",
                  "urls":[
                     "http:\/\/searchengine.localhost\/resource\/first"
                  ]
               },
               "tf_idf":false,
               "plagiarism_length":182,
               "plagiarism_percent":28.57
            },
            {
               "dst_pos_success":false,
               "content_type":"text\/plain",
               "index":0,
               "source":"http:\/\/searchengine.localhost\/resource\/second",
               "length":38,
               "percent":5.97,
               "link":{
                  "name":"searchengine.localhost",
                  "urls":[
                     "http:\/\/searchengine.localhost\/resource\/second"
                  ]
               },
               "tf_idf":false,
               "plagiarism_length":38,
               "plagiarism_percent":5.97
            },
            {
               "dst_pos_success":false,
               "content_type":"text\/plain",
               "index":1,
               "source":"http:\/\/another.searchengine.localhost\/some_url",
               "length":0,
               "percent":0,
               "link":{
                  "name":"another.searchengine.localhost",
                  "urls":[
                     "http:\/\/another.searchengine.localhost\/some_url"
                  ]
               },
               "tf_idf":false,
               "plagiarism_length":0,
               "plagiarism_percent":0
            },
            {
               "dst_pos_success":false,
               "content_type":"text\/plain",
               "index":2,
               "source":"7200207",
               "length":0,
               "percent":0,
               "link":{
                  "name":"7200207",
                  "urls":[
                     "7200207"
                  ]
               },
               "tf_idf":false,
               "plagiarism_length":0,
               "plagiarism_percent":0
            },
            {
               "dst_pos_success":false,
               "content_type":"text\/plain",
               "index":3,
               "source":"http:\/\/real.searchengine.localhost\/url\/to\/original\/resource",
               "length":0,
               "percent":0,
               "link":{
                  "name":"real.searchengine.localhost",
                  "urls":[
                     "http:\/\/real.searchengine.localhost\/url\/to\/original\/resource"
                  ]
               },
               "tf_idf":false,
               "plagiarism_length":0,
               "plagiarism_percent":0
            }
         ],
         "sources_count":5,
         "matched_length":182,
         "matched_percent":28.57,
         "external_queries":12,
         "destinations_clusters":[
            {
               "source":0,
               "id":0,
               "offsets":[
                  {
                     "start":20,
                     "end":34,
                     "cos":1
                  },
                  {
                     "start":75,
                     "end":90,
                     "cos":1
                  },
                  {
                     "start":91,
                     "end":122,
                     "cos":0.65
                  },
                  {
                     "start":123,
                     "end":138,
                     "cos":1
                  },
                  {
                     "start":180,
                     "end":233,
                     "cos":1
                  },
                  {
                     "start":335,
                     "end":393,
                     "cos":1
                  },
                  {
                     "start":486,
                     "end":548,
                     "cos":1
                  }
               ]
            },
            {
               "source":1,
               "id":1,
               "offsets":[
                  {
                     "start":196,
                     "end":233,
                     "cos":1
                  }
               ]
            },
            {
               "source":2,
               "id":2,
               "offsets":[

               ]
            },
            {
               "source":3,
               "id":3,
               "offsets":[

               ]
            },
            {
               "source":4,
               "id":4,
               "offsets":[

               ]
            }
         ]
      }
   }
}

User interface for report.

You can submit a report to the user interface. You need to create a html-form and submit it from the user browser.

<!DOCTYPE html>
<html>
    <body>
        <form method="post" action="https://plagiarismcheck.org/lms/public-report/14/">
            <input type="hidden" name="token" value="G-HEf......" />
            <input type="hidden" name="lms-type" value="api" />
            <input type="submit" />
        </form>
    </body>
</html>