Code Plagiarism
Detection API
Build plagiarism detection into your applications with our powerful REST API. Detect copied code across 20+ billion sources with industry-leading accuracy.
API Playground
Not ConnectedGet Check Status & Monitor Progress
Monitor your plagiarism check progress and retrieve detailed results. Use this endpoint to check if your analysis is complete, track processing status, and get plagiarism scores for all submissions when the check finishes.
API Endpoint
How Status Checking Works
This endpoint provides complete, real-time information about your check, including its current processing status, all uploaded submissions, and their plagiarism scores (when analysis is complete). It's perfect for building progress indicators, polling for completion, or retrieving final results.
status_id changes to 4 (completed), results are ready to retrieve.
What You'll Get
Check Metadata
Current status, creation time, and processing state of your plagiarism check
All Submissions
Complete list of uploaded files with individual status and metadata
Plagiarism Scores
Similarity percentages for each submission (when analysis completes)
Status Details
Human-readable status messages and timestamp information for tracking
Request Parameters
Send a simple request with your check ID to retrieve the current status and all submission data.
| Parameter | Type | Required | Description |
|---|---|---|---|
check_id |
Integer | Required | ID of the check to retrieve status for (from create check response) |
Example Request
curl -X POST \
'https://codequiry.com/api/v1/check/get?check_id=2810' \
-H 'Accept: application/json' \
-H 'apikey: YOUR_API_KEY_HERE '
2810 with your actual check ID from the create check response.
Example Response
{
"check": {
"id": 2821,
"name": "Java Assignment Check",
"created_at": "2024-01-15 15:54:15",
"updated_at": "2024-01-15 16:02:29",
"status_id": 4,
"job_id": 8847
},
"status": "Checks completed",
"submission_count": 3,
"submissions": [
{
"id": 14587,
"filename": "student1_assignment",
"status_id": 4,
"created_at": "2024-01-15 15:55:23",
"updated_at": "2024-01-15 16:02:29",
"result1": "0.00",
"result2": "0.00",
"result3": "0.00",
"total_result": "48.65",
"assignmentstatuses": {
"id": 4,
"status": "Checks completed",
"icon": "icon dripicons-checkmark text-white",
"color": "success",
"created_at": null,
"updated_at": null
}
},
{
"id": 14588,
"filename": "student2_assignment",
"status_id": 4,
"created_at": "2024-01-15 15:55:23",
"updated_at": "2024-01-15 16:02:29",
"result1": "0.00",
"result2": "0.00",
"result3": "0.00",
"total_result": "0.00",
"assignmentstatuses": {
"id": 4,
"status": "Checks completed",
"icon": "icon dripicons-checkmark text-white",
"color": "success",
"created_at": null,
"updated_at": null
}
},
{
"id": 14589,
"filename": "student3_assignment",
"status_id": 4,
"created_at": "2024-01-15 15:55:23",
"updated_at": "2024-01-15 16:02:29",
"result1": "0.00",
"result2": "0.00",
"result3": "0.00",
"total_result": "48.65",
"assignmentstatuses": {
"id": 4,
"status": "Checks completed",
"icon": "icon dripicons-checkmark text-white",
"color": "success",
"created_at": null,
"updated_at": null
}
}
]
}
Understanding the Response
- check.status_id — Current processing status (see status reference below)
- status — Human-readable status description for display in your UI
- submission_count — Total number of files uploaded to this check
- submissions — Array of all uploaded files with their individual scores
- total_result — Highest similarity score found for each submission
- job_id — Internal processing ID (0 = not started, >0 = processing/completed)
Check Status Reference
The status_id field indicates the current state of your plagiarism check. Use these values to build progress indicators and determine when results are ready:
Awaiting Action
Check created but analysis not yet started—files may still be uploading
Action: Upload files and start analysis
Analysis In Progress
Currently analyzing code for plagiarism—results not yet available
Action: Poll this endpoint every 15-30 seconds
Ready to View
Analysis finished successfully—plagiarism scores and results are ready
Action: Retrieve detailed results and reports
Processing Error
Analysis encountered an error during processing
Action: Contact support if error persists
Best Practices for Status Polling
Polling Frequency
- Poll every 15-30 seconds during processing
- Implement exponential backoff for long checks
- Stop polling when status_id reaches 4 or 5
- Set maximum polling duration (10-15 minutes)
Implementation
- Use async/await or promises for cleaner code
- Handle network errors gracefully
- Show progress indicators to users
- Cache results once completed
User Experience
- Display estimated completion time
- Show submission count being processed
- Notify users when results are ready
- Provide option to view partial results
Performance
- Don't poll faster than necessary
- Use webhooks for large-scale operations
- Cache check metadata between polls
- Batch multiple check statuses if needed
Error Responses
Invalid Check ID (422 Unprocessable Entity)
{
"error": "Invalid check_id provided"
}
What's Next?
Once your check status shows as completed (status_id: 4), you can retrieve comprehensive results: