API reference
Integrate plagiarism detection and AI content analysis directly into your publishing, editorial, or LMS workflow.
Base URL
https://code.mannaplag.mannaanalytics.com/api
The Manna Plag API gives journal publishers, editorial management systems, and institutional repositories programmatic access to plagiarism detection and AI content analysis, so originality checking can be built directly into your own workflow.
Authentication
Every request requires an API key in the Authorization header. Generate keys from your dashboard under API Keys → Generate new key. Keys are prefixed MAPL_ and shown only once at creation.
Authorization: Api-Key MAPL_your_key_here
Rate limits & quotas
Usage is governed by your monthly paper quota. Each document submission counts as one paper. Once the limit is reached the API returns HTTP 429. Quotas reset on the 1st of each month.
Quickstart
- Generate an API key from Dashboard → API Keys → Generate new key. Copy it immediately. It is shown only once.
- Verify your key with
GET /auth/me/. - Upload a document with
POST /submissions/upload/. - Poll for status every 15–30 seconds with
GET /submissions/{submission_id}/. - Retrieve the report with
GET /submissions/reports/{report_id}/.
Endpoints
/auth/me/Get account info
Verify your API key and retrieve your account details. Use this to test authentication.
Example request (cURL)
curl https://code.mannaplag.mannaanalytics.com/api/auth/me/ \ -H "Authorization: Api-Key MAPL_your_key_here"
Example response
{
"id": "5e694c3c-ac60-462b-92db-4e602f021b54",
"email": "publisher@journal.com",
"full_name": "Dr. Priya Sharma",
"role": "publisher",
"organisation": "Indian Journal of Research",
"is_verified": true
}/submissions/upload/Submit a document for plagiarism check
Upload a PDF or DOCX manuscript. Returns a submission_id to track processing status. Maximum file size 50MB.
Parameters
Example request (cURL)
curl -X POST https://code.mannaplag.mannaanalytics.com/api/submissions/upload/ \ -H "Authorization: Api-Key MAPL_your_key_here" \ -F "file=@research_paper.pdf" \ -F "title=My Research Paper"
Example response
{
"message": "Manuscript uploaded. Checking in progress.",
"submission_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "pending",
"file_name": "research_paper.pdf"
}/submissions/{submission_id}/Poll submission status
Check the processing status of a submitted document. Poll every 15–30 seconds. Status values: pending, processing, complete, failed.
Parameters
Example request (cURL)
curl https://code.mannaplag.mannaanalytics.com/api/submissions/{submission_id}/ \
-H "Authorization: Api-Key MAPL_your_key_here"Example response
// While processing
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "processing",
"file_name": "research_paper.pdf"
}
// When complete
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "complete",
"report_id": "7cb9b6a2-1234-4321-abcd-ef0123456789",
"overall_similarity": 14.5,
"verbatim_score": 8.2,
"mosaic_score": 6.3,
"flagged_chunks": 12,
"total_chunks": 84
}/submissions/reports/{report_id}/Get full plagiarism report
Retrieve the complete similarity report including matched sources, DOI links, and flagged text.
Parameters
Example request (cURL)
curl https://code.mannaplag.mannaanalytics.com/api/submissions/reports/{report_id}/ \
-H "Authorization: Api-Key MAPL_your_key_here"Example response
{
"id": "7cb9b6a2-1234-4321-abcd-ef0123456789",
"overall_similarity": 14.5,
"verbatim_score": 8.2,
"mosaic_score": 6.3,
"flagged_chunks": 12,
"total_chunks": 84,
"matches": [
{
"source_title": "Deep Learning in Medical Imaging",
"source_doi": "10.1234/dlmi.2023.001",
"source_url": "https://doi.org/10.1234/dlmi.2023.001",
"similarity_pct": 8.5,
"matched_text": "The convolutional neural network..."
}
]
}/checker/analyze/AI content detection
Detect AI-generated text in a manuscript. Returns an overall AI score and section-level breakdown with flagged sentences. Citations are excluded from scoring.
Parameters
Example request (cURL)
curl -X POST https://code.mannaplag.mannaanalytics.com/api/checker/analyze/ \ -H "Authorization: Api-Key MAPL_your_key_here" \ -F "file=@research_paper.pdf"
Example response
{
"id": "9ab12cd3-ef45-6789-abcd-ef0123456789",
"status": "complete",
"overall_ai_score": 23.5,
"file_name": "research_paper.pdf",
"word_count": 8420,
"sections": [
{
"section_name": "Introduction",
"ai_score": 45.2,
"flagged_sentences": [
"Large language models have demonstrated..."
]
},
{
"section_name": "Methodology",
"ai_score": 4.1,
"flagged_sentences": []
}
]
}Support ticket endpoints
These endpoints power the Support section of your dashboard and use your normal session token (not an API key).
/tickets/create/Create a support ticket
Open a new support ticket. Returns the generated ticket number.
Parameters
Example request (cURL)
curl -X POST https://code.mannaplag.mannaanalytics.com/api/tickets/create/ \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"name":"Priyanga","email":"priyanga@example.com","subject":"Payment not reflecting","message":"Paid via Razorpay but subscription still shows inactive.","category":"Billing","priority":"High","source":"Website"}'Example response
{
"message": "Ticket created successfully.",
"ticket_number": "TKT-000001",
"ticket_id": 1
}/tickets/my/List my tickets
Return every support ticket opened by the authenticated user, most recent first.
Example request (cURL)
curl https://code.mannaplag.mannaanalytics.com/api/tickets/my/ \ -H "Authorization: Bearer <access_token>"
Example response
[
{
"ticket_id": 1,
"ticket_number": "TKT-000001",
"subject": "Payment not reflecting",
"category": "Billing",
"priority": "High",
"status": "Open",
"created_at": "2026-07-10T10:32:10+05:30",
"updated_at": "2026-07-10T10:32:10+05:30"
}
]/tickets/{ticket_id}/Ticket detail
Retrieve the full detail of a single ticket, including its message and current status.
Parameters
Example request (cURL)
curl https://code.mannaplag.mannaanalytics.com/api/tickets/1/ \ -H "Authorization: Bearer <access_token>"
Example response
{
"ticket_id": 1,
"ticket_number": "TKT-000001",
"name": "Priyanga",
"email": "priyanga@example.com",
"subject": "Payment not reflecting",
"message": "Paid via Razorpay but subscription still shows inactive.",
"category": "Billing",
"priority": "High",
"status": "Open",
"created_at": "2026-07-10T10:32:10+05:30",
"updated_at": "2026-07-10T10:32:10+05:30"
}/tickets/{ticket_id}/reopen/Reopen a closed ticket
Move a resolved or closed ticket back to Open status, for example if the issue recurs.
Parameters
Example request (cURL)
curl -X POST https://code.mannaplag.mannaanalytics.com/api/tickets/1/reopen/ \ -H "Authorization: Bearer <access_token>"
Example response
{
"message": "Ticket reopened successfully.",
"ticket_id": 1,
"status": "Open"
}Error codes
All error responses return JSON with an error field describing the problem.
Example 429 response:
{
"error": "Monthly paper limit reached. You have used 400 of 400 papers this month.",
"quota_used": 400,
"quota_limit": 400,
"plan": "API Growth",
"upgrade_url": "/choose-plan"
}Support
Email support@mannaanalytics.com for API support, integration questions, or to report issues.
- Dashboard: code.mannaplag.mannaanalytics.com/dashboard
- API Keys: code.mannaplag.mannaanalytics.com/dashboard/api-keys
- Plans & Pricing: code.mannaplag.mannaanalytics.com/pricing
Manna Analytics Private Limited · 3/343, Town Railway Nagar, Nagercoil 629001, Tamil Nadu, India