Developer API

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.

99.7%
Accuracy
51+
Languages
20B+
Sources
5
SDKs

API Playground

Not Connected

Connect your API key to test endpoints

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.

Peer Comparison Focus: This overview shows similarity scores between uploaded files (peer comparison). For database and web results, use the detailed results endpoint.
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 ✅ Yes 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 '
                
JSON Format
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 '
                
CSV Format
JSON Response
        {
    "overviewURL": "http://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"
        }
    ]
}
        
JSON Response
Testing Note: This endpoint requires a completed check with results. The check must have status_id = 4 (completed).

📋 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'
            )
        }]
    }
});
                        
Chart.js
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()
                        
Python

📊 Data Analysis Examples

The JSON response provides rich data that can be processed for various analytical purposes:

Processing Tip: Use the 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 };
}
        
Analysis Function

⚠️ Error Responses & Special Cases

Check Not Completed (422 Unprocessable Entity)
        {
    "error": "The check has not been completed."
}
        
Error Response
Special Score Values
Score: -0.1

Error parsing files

Possible causes: corrupted ZIP, no parseable files, encoding issues
Score: 0.00

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:

Detailed Analysis

Get line-by-line comparisons and source code highlighting for suspicious matches.

Detailed Results API
Download Reports

Export comprehensive reports and source files for offline analysis.

Download Files API