Detect plagiarized and similar code across trillions of code sources on the web See what's new
Developer API

Create Check

Build plagiarism detection into your apps. Check code against 20+ billion sources.

const response = await fetch('https://codequiry.com/api/v1/check', { method: 'POST', headers: { 'apikey': 'YOUR_API_KEY' }, body: formData }); // Check created!
CREATE CHECK

Create a New Plagiarism Check

Initialize a new plagiarism detection analysis by creating a check. This is the first step in your workflow—after creating a check, you'll upload source code files and then start the analysis to detect code similarity and plagiarism.

API Endpoint
POST https://codequiry.com/api/v1/check/create

Understanding Checks

Think of a check as a project container for your plagiarism analysis. Each check has a name and programming language, and can contain multiple code submissions that you want to compare. This organizational structure makes it easy to manage different assignments, projects, or code reviews.

Workflow Overview: The complete plagiarism detection process follows three steps: 1) Create Check → 2) Upload Code Files → 3) Start Analysis → View Results
Common Use Cases
Student Assignments

Compare student submissions to detect code copying and collaboration

Code Reviews

Verify originality of code contributions in pull requests and projects

Open Source Auditing

Check for unauthorized use of licensed or proprietary code

Interview Assessments

Detect cheating in coding tests and technical interviews

Request Parameters

Creating a check requires a name to identify your analysis. You can optionally specify the programming language and the analysis engine type.

Parameter Type Required Description
name String Required Human-readable name for your check (minimum 3 characters). Use descriptive names like "CS101 Assignment 3" or "React Project Review"
language Integer Optional Programming language ID from our supported languages list (see reference below). Defaults to Java (ID 13) if not provided. Pass 999 ("Auto Detect Language") to let the engine detect the source language automatically. Any unknown/invalid ID also falls back to auto-detect rather than failing.
test_type Integer Optional Analysis engine/test type (minimum value: 1). Determines the plagiarism detection engine used when the check is started.
Example Request
		curl -X POST \
  https://codequiry.com/api/v1/check/create \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'apikey:  YOUR_API_KEY_HERE ' \
  -d '{
    "name": "Python Assignment - Week 5",
    "language": 14
  }'
		
cURL Command
Success Response (HTTP 201 Created)
		{
    "id": 2810,
    "name": "Python Assignment - Week 5",
    "status_id": 1,
    "job_id": 0,
    "created_at": "2024-01-15 14:30:22",
    "updated_at": "2024-01-15 14:30:22"
}
		
JSON Response
Understanding the Response
  • id — Unique check identifier. Save this value! You'll need it for uploading files and retrieving results.
  • name — The name you assigned to this check for identification purposes
  • status_id — Current status (1 = newly created, awaiting file uploads)
  • job_id — Processing job ID (0 indicates analysis hasn't started yet)
  • created_at / updated_at — Timestamps in UTC format showing when the check was created
Connect Your API Key: To test check creation, connect your API key using the playground at the top of the page.

Supported Programming Languages

Choose the appropriate language ID for your source code. Codequiry supports 65+ programming languages with intelligent syntax-aware plagiarism detection:

Most Popular Languages
Language File Extensions Language ID
Python .py 14
Java .java 13
JavaScript .js, .jsx 39
TypeScript .ts, .tsx 55
C++ .cpp, .hpp, .cc 17
C# .cs 18
PHP .php 21
Ruby .rb 33
Modern & Systems Languages
Language File Extensions Language ID
Go .go 30
Rust .rs 51
Swift .swift 43
Kotlin .kt, .kts 44
C .c, .h 16
R .r, .R 32
Need the Complete List? We support 65+ languages. Fetch the full list programmatically from the Languages endpoint (GET /languages). Not sure which ID to use? Pass 999 (Auto Detect) and the engine will detect the language from your source.

Error Responses

Unknown language ID? No error. If you provide a language ID that isn't in our list, the check is still created — we transparently fall back to Auto Detect (ID 999) and the engine detects the source language from your files. Language IDs no longer return a 422. Use the Languages endpoint to look up exact IDs.
Common Errors
422 Unprocessable Entity

Cause: Missing or invalid name parameter

Solution: The name field is required and must be between 3 and 255 characters. The response includes both an error message and a validation_errors object detailing each failed field. (language is optional.)

401 Unauthorized

Cause: Invalid or missing API key

Solution: Verify your API key is correct and properly included in the apikey header.