Codequiry - Node.js SDK
Official Node.js SDK for Codequiry's Code Plagiarism & Similarity Detection API.
Check source code files against billions of web sources, public repositories, and peer submissions. Supports 65+ programming languages.
Installation
npm install codequiry
Quick Start
const Codequiry = require('codequiry');
const cq = new Codequiry('YOUR_API_KEY');
async function run() {
const check = await cq.createCheck('Assignment 1', 14);
console.log('Created:', check);
await cq.uploadFile(check.check.id, './submissions.zip');
await cq.startCheck(check.check.id, { dbcheck: true });
const status = await cq.pollUntilComplete(check.check.id, {
onProgress: (s) => console.log('Progress:', s),
});
const overview = await cq.getOverview(check.check.id);
console.log('Results:', overview);
}
run().catch(console.error);
API Reference
Constructor
const cq = new Codequiry('YOUR_API_KEY');
Account
cq.account() | Get account info and usage quota |
Checks
cq.checks() | List all checks |
cq.createCheck(name, languageId, testType?) | Create a new check |
cq.getCheck(checkId) | Get check info and status |
cq.deleteCheck(checkId) | Delete a check |
Upload
cq.uploadFile(checkId, filePath) | Upload a ZIP file |
cq.uploadBatch(checkId, filePaths) | Upload multiple ZIP files |
Start & Status
cq.startCheck(checkId, options?) | Start a check. Options: { dbcheck, webcheck, testType } |
cq.getStatus(checkId) | Get current check status |
cq.pollUntilComplete(checkId, options?) | Poll until done. Options: { interval, timeout, onProgress } |
Results
cq.getOverview(checkId) | Results overview with similarity scores |
cq.getResults(checkId, submissionId) | Detailed results for a submission |
cq.getSummary(checkId) | Summary statistics |
Reference Data
cq.getLanguages() | List supported programming languages |
cq.getTestTypes() | List available check engine types |
Supported Languages
Java, Python, C, C++, C#, Perl, PHP, SQL, VB, XML, Haskell, Pascal, Go, Matlab, Lisp, Ruby, Assembly, HTML, JavaScript/TypeScript, Swift, Kotlin, Dart, Elixir, Jupyter Notebooks, and many more.
Migration from v1
v2 uses modern async/await instead of callbacks:
Codequiry.setAPIKey('key');
Codequiry.checks(function(data, err) {
console.log(data);
});
const cq = new Codequiry('key');
const checks = await cq.checks();
console.log(checks);
Links