Submit formatted text for checking
Changed onSubmit plain text or an uploaded file for the formatted text checking flow. The endpoint extracts formatted text assets, stores the original text, submits the check, and charges the authenticated user or selected group.
Send either a text form field or an uploaded file in the text multipart field. The submitted content must pass formatted-text processing, minimum length, maximum length (1048576 symbols, counted on the processed text), balance, group membership, and duplicate-in-progress checks. The maximum length is enforced here as well as by /api/v2/text/validate/, so it applies whether or not the validate endpoint was called first. If a Referer header points to https://plagiarismcheck.org, or a course_name is sent, the created text is also linked to the site integration.
Request
- Base URLhttps://plagiarismcheck.org
- AuthAPI key in header X-API-TOKEN
Request body application/x-www-form-urlencoded
Example request
{
"text": "A clear API contract helps developers submit documents, monitor check status, and retrieve structured plagiarism reports without relying on UI-only workflows.\n",
"group_id": 100,
"custom_author": "Student Name",
"course_name": "Introduction to Biology"
}Response
The formatted text check was created successfully and billing information was returned.
Example response
{
"success": true,
"data": {
"text": {
"id": 15,
"user_id": 24,
"filename": "example.pdf",
"created_at": 1516279363000,
"updated_at": 1516279364000,
"submitted_at": 1516279364000,
"state": 3,
"language": "en",
"pages": 30,
"words": 127,
"group_id": 100,
"custom_author": "Student Name",
"report_id": 13,
"ai_report_id": 15,
"creator": {
"id": 3132945,
"name": "John Doe",
"email": "student@example.com",
"created_at": 1512638171000,
"updated_at": 1512638171000,
"allowed_languages": [
"en"
],
"balance_type": 1,
"avatar": "https://randomuser.me/api/portraits/lego/1.jpg",
"is_email_verification_needed": true
},
"report": {
"id": 13,
"created_at": "1643727471000",
"source_count": 5,
"percent": "28.57"
},
"ai_report": {
"enabled": true,
"id": 15,
"status": 3,
"percent": 50.5,
"processed_percent": 70.25,
"strong_percent": 40.25,
"likely_percent": 30,
"mark": 1,
"comment": "Lorem ipsum dolor",
"comment_author": {
"id": 24,
"name": "John Doe"
},
"type": 3,
"words": 550,
"pages": 2,
"group_id": 100,
"creator": {
"id": 3132945,
"name": "John Doe",
"email": "student@example.com",
"created_at": 1512638171000,
"updated_at": 1512638171000,
"allowed_languages": [
"en"
],
"balance_type": 1,
"avatar": "https://randomuser.me/api/portraits/lego/1.jpg",
"is_email_verification_needed": true
},
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus molestie diam id lacus maximus, ac scelerisque neque suscipit. Pellentesque luctus elit cursus varius aliquam. Nam neque leo, cursus sit amet quam a, dignissim malesuada est. Sed efficitur finibus felis euismod mattis. Donec egestas nunc odio, vitae lacinia nunc pellentesque id. Etiam ornare nunc vel accumsan ullamcorper. Donec sed lacinia orci.\n",
"chunks": [
{
"reliability": 1,
"position": [
100,
200
]
}
],
"ignored_ranges": [
{
"id": 123,
"start": 42,
"end": 87,
"filename": "assignment-template.docx",
"ignore_assignment_template_id": 55
}
]
}
},
"charged": 1
}
}Changes
- info
added the new optional request property
(media type: application/x-www-form-urlencoded) - info
added the new optional request property
(media type: multipart/form-data)
- info
- breaking
the
////////response's property format changed fromemailto no format for status - breaking
the
///////response's property format changed fromemailto no format for status - info
added the optional property
////////to the response with the status - info
added the optional property
///////to the response with the status
- breaking