Sign up and generate an API key from the dashboard.
Send a POST to /api/v1/checks with your content.
Poll the check endpoint until status is completed.
curl -X POST http://localhost:8000/api/v1/checks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "The quick brown fox jumps over the lazy dog..."
}'{
"id": "chk_abc123",
"status": "processing",
"created_at": "2026-03-02T10:30:00Z"
}
// After polling:
{
"id": "chk_abc123",
"status": "completed",
"plagiarism_score": 0.12,
"ai_score": 0.87,
"word_count": 150,
"ai_model_scores": [
{ "model_name": "transformer", "score": 0.91, "label": "AI Generated" },
{ "model_name": "perplexity", "score": 0.85, "label": "AI Generated" },
{ "model_name": "stylometric", "score": 0.82, "label": "AI Generated" },
{ "model_name": "embedding", "score": 0.89, "label": "AI Generated" }
],
"ai_sentences": [
{ "text": "The quick brown fox...", "score": 0.92, "start": 0, "end": 24 }
],
"plagiarism_sources": [
{ "url": "https://example.com", "title": "Example", "similarity": 0.15, "matched_text": "..." }
]
}All API requests require authentication via a Bearer token. You can use either a JWT access token (from login) or an API key (from the dashboard).
Authorization: Bearer your_token_here/api/v1/auth/registerCreate a new user account
{ "email": "user@example.com", "password": "...", "full_name": "John Doe" }/api/v1/auth/loginAuthenticate and receive JWT tokens
{ "email": "user@example.com", "password": "..." }/api/v1/checksSubmit text or file for plagiarism + AI detection
{ "text": "Content to analyze..." } OR multipart/form-data with file field/api/v1/checks/:idGet check status and results
/api/v1/checksList all checks with pagination
/api/v1/checks/:id/report/pdfDownload PDF report for a completed check
/api/v1/api-keysGenerate a new API key
{ "name": "My Key" }/api/v1/api-keysList all API keys
/api/v1/api-keys/:idRevoke an API key
| Plan | Rate Limit | Monthly Checks |
|---|---|---|
| Free | 10 req/min | 5 |
| Pro | 30 req/min | 100 |
| API Starter | 60 req/min | 500 |
| API Scale | 120 req/min | 5,000 |
For full interactive API documentation, visit the Swagger UI.