Code Plagiarism
Detection API
Build plagiarism detection into your apps. Check code against 20+ billion sources.
Plagiarism Results Overview
Get a comprehensive overview of your completed plagiarism check results. This endpoint provides summary data, peer comparison scores, and visualization-ready data for building dashboards and reports.
Endpoint
Overview Features
The overview endpoint gives you a bird's-eye view of your plagiarism check results, perfect for dashboards, reports, and quick analysis. It focuses on peer-to-peer comparisons between your uploaded submissions.
What You'll Get
- Summary Dashboard Data: Ready-to-use data for charts and visualizations
- Submission List: All uploaded files with their highest similarity scores
- Peer Comparisons: Detailed comparison matrix between submissions
- Chart Data: Pre-formatted data for bar charts and graphs
- Dashboard Link: Direct URL to view results in Codequiry dashboard
Request Parameters
Simple request requiring only your completed check ID to retrieve the overview data.
| Parameter | Type | Required | Description |
|---|---|---|---|
check_id |
Integer | Required | ID of completed check to get overview for |
Request Examples
JSON Response
curl -X POST \
'https://codequiry.com/api/v1/check/overview?check_id=2810' \
-H 'Accept: application/json' \
-H 'apikey: YOUR_API_KEY_HERE '
CSV Export
curl -X POST \
'https://codequiry.com/api/v1/check/overviewCSV?check_id=2810' \
-H 'Accept: text/csv' \
-H 'apikey: YOUR_API_KEY_HERE '
JSON Response
{
"overviewURL": "https://dashboard.codequiry.com/course/api/assignment/2810/overview",
"submissions": [
{
"id": 14587,
"filename": "student1_assignment",
"status_id": 4,
"created_at": "2024-01-15 14:35:22",
"updated_at": "2024-01-15 14:45:18",
"result1": "12.50",
"result2": "8.75",
"result3": "15.20",
"total_result": "85.45",
"submissionresults": [
{
"id": 463587,
"submission_id": 14587,
"submission_id_compared": 14588,
"score": "23.80",
"created_at": null,
"updated_at": null
},
{
"id": 463588,
"submission_id": 14587,
"submission_id_compared": 14589,
"score": "85.45",
"created_at": null,
"updated_at": null
}
]
},
{
"id": 14588,
"filename": "student2_assignment",
"status_id": 4,
"created_at": "2024-01-15 14:35:22",
"updated_at": "2024-01-15 14:45:18",
"result1": "5.25",
"result2": "3.80",
"result3": "7.10",
"total_result": "23.80",
"submissionresults": [
{
"id": 463589,
"submission_id": 14588,
"submission_id_compared": 14589,
"score": "12.30",
"created_at": null,
"updated_at": null
}
]
}
],
"bardata": [
{
"submission": "student1_assignment",
"score": "85.45"
},
{
"submission": "student2_assignment",
"score": "23.80"
}
]
}
Response Data Structure
Main Response Fields
| Field | Type | Description |
|---|---|---|
overviewURL |
String | Direct link to view results in Codequiry dashboard |
submissions |
Array | List of all submissions with their scores and comparisons |
bardata |
Array | Simplified data for creating charts (filename + highest score) |
Submission Object Fields
| Field | Description |
|---|---|
id |
Unique submission identifier |
filename |
Original filename (without .zip extension) |
total_result |
Highest similarity score found for this submission |
submissionresults |
Array of peer comparisons showing which submissions were compared |
Understanding Similarity Scores
Low Similarity (0-30%)
Acceptable similarity levels. Code appears original with minimal matching patterns. Likely original work.
Medium Similarity (30-70%)
Moderate similarity detected. Requires manual review to determine cause. Review recommended.
High Similarity (70%+)
Significant similarity indicating potential plagiarism or code sharing. Investigation needed.
Data Visualization Examples
Using the bardata for Charts
The bardata array is perfectly formatted for creating visualizations:
JavaScript Chart.js Example
// Extract labels and data from bardata
const labels = data.bardata.map(item => item.submission);
const scores = data.bardata.map(item => parseFloat(item.score));
// Create bar chart
new Chart(ctx, {
type: 'bar',
data: {
labels: labels,
datasets: [{
label: 'Similarity Score (%)',
data: scores,
backgroundColor: scores.map(score =>
score > 70 ? '#dc3545' :
score > 30 ? '#ffc107' : '#28a745'
)
}]
}
});
Python Visualization
import matplotlib.pyplot as plt
# Extract data from API response
submissions = [item['submission'] for item in bardata]
scores = [float(item['score']) for item in bardata]
# Create color-coded bar chart
colors = ['red' if score > 70 else 'orange' if score > 30 else 'green' for score in scores]
plt.figure(figsize=(10, 6))
plt.bar(submissions, scores, color=colors)
plt.ylabel('Similarity Score (%)')
plt.title('Plagiarism Detection Results')
plt.xticks(rotation=45)
plt.show()
Data Analysis Examples
The JSON response provides rich data that can be processed for various analytical purposes:
bardata array for creating similarity charts and the submissionresults for detailed statistics.
JavaScript Analysis Example
// Analyze overview data for insights
function analyzeResults(overview) {
const submissions = overview.submissions;
// Calculate risk distribution
const riskDistribution = {
high: submissions.filter(s => parseFloat(s.total_result) > 70).length,
medium: submissions.filter(s => parseFloat(s.total_result) > 30 && parseFloat(s.total_result) <= 70).length,
low: submissions.filter(s => parseFloat(s.total_result) <= 30).length
};
// Find most similar pair
let maxSimilarity = 0;
let similarPair = null;
overview.bardata.forEach(comparison => {
if (comparison.similarity > maxSimilarity) {
maxSimilarity = comparison.similarity;
similarPair = comparison;
}
});
return { riskDistribution, similarPair, maxSimilarity };
}
Error Responses & Special Cases
Check Not Completed (422 Unprocessable Entity)
{
"error": "The check has not been completed."
}
Special Score Values
Error parsing files. Possible causes: corrupted ZIP, no parseable files, encoding issues.
No similarity detected. Either completely original or no common patterns found.
Best Practices
Dashboard Integration
Use bardata for quick visualizations. Sort submissions by total_result. Color-code by similarity thresholds. Link to overviewURL for details.
Data Processing
Cache results to avoid repeated calls. Process JSON data in your preferred format. Filter by score thresholds. Check for -0.1 error scores.
Investigation
Focus on scores above 30%. Check submissionresults for peer matches. Use detailed results for deeper analysis. Consider context and assignment type.
Next Steps
With overview data in hand, dive deeper into specific plagiarism cases: