Developer API
TurniScan REST Developer API
Normal Vendors: Buy 50, 100, or 200 Files Pack from the Shop to get instant auto-eligibility (activate API key with 1-click, no admin approval required).
High-Volume Bulk Users: Special bulk discounted credit packages (500, 1,000, or 2,000 slots) available below.
Special Bulk API Plans (For High File Volume)
Specially discounted bulk packages for API users, portals, bots, and large-scale integrations with heavy file traffic. (Normal vendors can use the 50, 100, or 200 files plans above).
- 500 Full Turnitin Reports
- Plag + AI Detection Included
- S1 (50k) & S2 (350k) Engines
- 100% Non-Repository Safe
- 1,000 Full Turnitin Reports
- Priority Processing Queue
- S1 & S2 Dual Engine Support
- Webhooks & Multi-threading
- 2,000 Full Turnitin Reports
- Plag + AI Detection Included
- S1 (50k) & S2 (350k) Engines
- 100% Non-Repository Safe
Submit Document
POST file (.docx/.pdf) to /v1/scan/submit to queue report.
Check Status
GET /v1/scan/status or receive instant Webhook callback.
Download PDF
GET /v1/scan/download to save official Turnitin report.
/v1/scan/submit
Submit a file or raw text to start Turnitin plagiarism and AI scanning.
Parameters (multipart/form-data):
| Field | Type | Required | Description |
|---|---|---|---|
| server | String | No | "s1" (Default, Server 1: up to 50,000 words) or "s2" (Server 2: up to 3,50,000 words) |
| file | File | Yes* | Document file (.docx, .pdf, .txt, .odt). Limit: Max 50 MB • S1: up to 50,000 words • S2: up to 3,50,000 words. *Or supply text |
| text | String | No | Raw document text content (Min 40 words • S1: up to 50,000 words • S2: up to 3,50,000 words) if not uploading a binary file. |
| service_type | String | No | "Turnitin Plagiarism" (Default), "Turnitin AI", or "Both" |
| exclude_quotes | 0 / 1 | No | Exclude direct quotes & quotation marks from plagiarism (Default: 0) |
| exclude_biblio | 0 / 1 | No | Exclude references and bibliography section (Default: 0). Also accepts exclude_bibliography |
| exclude_citations | 0 / 1 | No | Exclude in-text citations from similarity calculation (Default: 0) |
| exclude_small_matches | 0 / 1 | No | Exclude small sources / word filter under the word threshold (Default: 0) |
| small_match_threshold | Integer (8-250) | No | Word filter threshold (e.g. 8, 10, 14 words. Default: 8). Also accepts exclude_words |
| custom_id | String | No | Your internal order/user ID (e.g. order_9812) returned in all callbacks |
| webhook_url | URL | No | Optional per-request webhook endpoint |
{
"success": true,
"file_id": "FL-6734a8e29bf1",
"filename": "Research_Thesis.docx",
"custom_id": "order_9812",
"status": "Pending",
"message": "File submitted successfully and queued for Turnitin scanning",
"slots_remaining": 0}
/v1/scan/status?file_id={file_id}
Retrieve processing state, similarity percentage, and AI score for a submitted file.
{
"success": true,
"file_id": "FL-6734a8e29bf1",
"status": "Completed",
"similarity_score": 14,
"ai_score": 2,
"word_count": 4850,
"download_url": "https://turniscan.com/v1/scan/download?file_id=FL-6734a8e29bf1",
"completed_at": 1727443320
}
/v1/scan/download?file_id={file_id}
Streams the original Turnitin generated PDF similarity report directly.
Authorization: Bearer YOUR_API_KEYapplication/pdfattachment; filename="document_Report.pdf"/v1/account/balance
Check available scan credits and account status.
{
"success": true,
"status": "Active",
"available_credits": 0,
"total_credits": 0,
"used_credits": 0}
/v1/scan/delete
Permanently deletes the submitted document and all generated PDF similarity/AI reports from server storage. Call this as soon as your system finishes downloading the report to free up storage.
{
"success": true,
"file_id": "FL-6734a8e29bf1",
"filename": "thesis.docx",
"status": "Deleted",
"message": "File and generated reports permanently deleted from server storage.",
"deleted_at": 1727443900
}
Automated 24-Hour Storage Purge Active
To safeguard student research privacy and prevent disk accumulation, TurniScan automatically deletes all completed API files and their PDF reports 24 hours after delivery. If your portal allows end-users to delete files earlier, your backend can call POST /v1/scan/delete to trigger an instant physical deletion from our storage immediately.
Webhook Realtime Delivery
When Turnitin completes scanning your document, TurniScan delivers an HTTP POST payload with header X-TurniScan-Event: scan.completed to your configured Webhook URL:
{
"event": "scan.completed",
"file_id": "FL-6734a8e29bf1",
"custom_id": "order_9812",
"status": "Completed",
"similarity_score": 14,
"ai_score": 2,
"download_url": "https://turniscan.com/v1/scan/download?file_id=FL-6734a8e29bf1"
}
If you face any issue, contact our Admin to help!
Whether you are setting up Webhooks, need custom rate limits, debugging API responses, or want technical guidance on your integration — our Admin is available to assist you personally.