Quetext Partner API

Access plagiarism detection and reporting through our RESTful API

Introduction

The Quetext Partner API provides programmatic access to our plagiarism detection, AI content detection, and text paraphrasing services. Our API offers a RESTful interface with JSON-formatted responses, allowing you to integrate Quetext's powerful analysis tools directly into your applications.

Key Features

  • Plagiarism Detection: Analyze text against billions of web pages and academic sources
  • AI Content Detection: Identify AI-generated content using advanced detection algorithms
  • Text Paraphrasing: Generate multiple alternative versions of your text
  • Report Management: Create, retrieve, and manage analysis reports programmatically
  • Real-time Progress: Monitor report processing status with progress endpoints

Base URL

All API requests should be made to:

https://www.quetext.com/api/v2/
API Versioning: This documentation covers API v2, which uses API key authentication. Legacy v1 endpoints using Bearer tokens are still supported but not recommended for new integrations.

Account Credits

API usage consumes credits from your Quetext account based on your subscription plan. Each report creation consumes credits based on the word count of the analyzed text. Check your available credits using the Account Plan endpoint.

Authentication

Quetext now provides API access primarily through **API keys**, with legacy Bearer tokens still supported for existing integrations.

Recommended: Generate an API key from your Quetext account under Account > API Keys. Use this key in the X-API-Key header for all /api/v2/ endpoints.

Using API Key (recommended)

Include your API key in the request headers:

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }
Security: Treat your API key like a password. Never expose it in client‑side code. Each account can create up to 2 API keys, and all requests are rate‑limited per account.

Using Bearer Token (legacy)

Some existing endpoints under /api/auth/... still use Bearer tokens. You can obtain a token via the Login API and send it in the Authorization header:

Authorization: Bearer YOUR_ACCESS_TOKEN

Encryption

Security Requirement: All requests must be sent using HTTPS with TLS 1.2 or higher. Please make sure your developer tools support this version of TLS as older versions or SSL are not supported for security reasons.

Responses

All API responses are returned in JSON format. In case of any errors from input validation, we send a code parameter in the response.

Success Response Format

{ "status": true, "data": { /* response data */ } }

Error Response Format

{ "status": false, "code": 401, "message": "Error description" }
CodeMeaning
400Bad Request - Invalid request parameters or missing required fields
401Unauthorized - Invalid or missing API key
403Forbidden - You do not have permission to view the requested resource
404Not Found - Resource could not be found
429Too Many Requests - Rate limit exceeded. Please slow down and try again
500Internal server error - The error message is returned in the message parameter

Rate Limiting

All API endpoints are rate-limited to ensure fair usage and system stability. Rate limits are applied per account (identified by your API key).

Rate Limit: 10 requests per 5 seconds per account. If you exceed this limit, you will receive a 429 Too Many Requests response. Please implement exponential backoff in your client applications.

Rate Limit Headers

When you make a request, the following headers are included in the response:

X-RateLimit-Limit: 10 X-RateLimit-Remaining: 5 X-RateLimit-Reset: 1693933200

Search Report API

Submit text for plagiarism detection and receive a report ID. This endpoint analyzes your text against billions of web pages and academic sources to identify potential plagiarism matches.

POST https://www.quetext.com/api/v2/report

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Request Body Parameters

ParameterTypeRequiredDescription
textstringYesThe text content to check for plagiarism. Minimum length varies by plan.
titlestringNoOptional title for the report. Helps organize your reports.

Request Body Example

{ "title": "My Research Paper", "text": "The text content to check for plagiarism. This can be multiple paragraphs..." }

Response (200 OK)

{ "status": true, "data": { "id": "abc123def456" } }

Error Response Example

{ "status": false, "code": 500, "message": "This search requires a minimum of 20 words." }
Note: After submitting a report, use the GET /api/v2/report-progress/{REPORT_ID} endpoint to check processing status. Reports are processed asynchronously and may take a few seconds to complete.

Get Single Report API

Retrieve detailed results for a specific plagiarism or AI detection report. This endpoint returns complete analysis results including matches, sources, scores, and metadata.

GET https://www.quetext.com/api/v2/report/{REPORT_ID}

URL Parameters

ParameterTypeRequiredDescription
REPORT_IDstringYesThe unique identifier of the report (returned when creating a report).

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Response (200 OK)

{ "status": true, "data": { "word_count": 1500, "sentence_count": 75, "score": 12.5, "ai_score": 85.5, "title": "My Research Paper", "input_text": "The original text...", "matches": [ { "input_text_match": "Matching text found...", "input_text_offset": 150, "input_token_count": 25, "id": "match_123", "highlighted_snippet": "...highlighted text...", "percent_similar": 85, "source": { "url": "https://example.com/article", "id": "source_456" } } ], "start_date": 1693933146, "end_date": 1693933246, "id": "abc123def456", "status": "completed", "percentage": 100 } }

Response Fields

FieldTypeDescription
idstringUnique report identifier
statusstringReport status: "completed" or "in-progress"
percentagenumberProcessing completion percentage (0-100)
scorenumberPlagiarism similarity score (0-100, null if not available)
ai_scorenumberAI detection score (0-100, null if not available)
word_countnumberTotal word count in the analyzed text
matchesarrayArray of detected plagiarism matches with sources

Error Response (401)

{ "status": false, "code": 401, "message": "Report owner does not match." }
Security: You can only retrieve reports that belong to your account. Attempting to access another user's report will return a 401 error.

Get Reports API

Retrieve a list of all your plagiarism and AI detection reports. This endpoint returns up to 5,000 reports from your account, sorted by creation date (most recent first).

GET https://www.quetext.com/api/v2/reports

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Response (200 OK)

{ "status": true, "data": [ { "id": "abc123", "title": "My Research Paper", "score": 12.5, "ai_score": 85.5, "word_count": 1500, "start_date": 1693933146, "end_date": 1693933246, "status": "completed", "percentage": 100 }, { "id": "def456", "title": "Another Report", "score": null, "ai_score": null, "word_count": 800, "start_date": 1693933000, "end_date": 1693933100, "status": "in-progress", "percentage": 45 } ] }
Note: The response includes both completed and in-progress reports. Use the status and percentage fields to determine if a report is ready for detailed analysis. Scores may be null for reports that are still processing or if no matches were found.

Delete Report API

Permanently delete a specific plagiarism or AI detection report from your account. This action cannot be undone.

DELETE https://www.quetext.com/api/v2/report/{REPORT_ID}

URL Parameters

ParameterTypeRequiredDescription
REPORT_IDstringYesThe unique identifier of the report to delete. Must be a valid report ID that belongs to your account.

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Response (200 OK)

{ "status": true, "message": "Report deleted." }

Error Response (404)

{ "status": false, "message": "Report Not Found" }
Warning: Deleting a report is permanent and cannot be undone. Make sure you have saved any important data from the report before deletion.

Get Report Progress API

Check the processing progress of a plagiarism or AI detection report. Use this endpoint to poll for completion status after submitting a report.

GET https://www.quetext.com/api/v2/report-progress/{REPORT_ID}

URL Parameters

ParameterTypeRequiredDescription
REPORT_IDstringYesThe unique identifier of the report to check progress for.

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Response (200 OK)

{ "status": true, "data": [ { "Progress": 0.75, "id": "abc123def456" } ] }

Response When Report Not Found

{ "status": true, "data": { "message": "No report found." } }
Polling Recommendation: After creating a report, poll this endpoint every 2-3 seconds until the progress reaches 1.0 (100%). Once complete, use the GET /api/v2/report/{REPORT_ID} endpoint to retrieve full results.

Get Account Plan Details

Retrieve details about your current account plan, subscription information, and available credits. This endpoint provides comprehensive information about your subscription, including plan details, credit balances, and AI plan information.

GET https://www.quetext.com/api/v2/plan

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "X-API-Key": "YOUR_API_KEY" }

Response (200 OK)

{ "status": true, "data": { "plan": { "name": "Premium Professional", "price": 10.49, "created_at": 1693933146, "additional_users": 4, "plan_type": "Monthly" }, "credits": { "pages": 500, "addon": 0 }, "ai_plan": { "name": "AI Detection Plan", "enabled": true }, "ai_credits": { "available": 1000, "used": 250 } } }

Response Fields

FieldTypeDescription
plan.namestringName of your subscription plan
plan.pricenumberMonthly or yearly subscription price
plan.created_atnumberUnix timestamp when the plan was created
plan.additional_usersnumberNumber of additional users allowed on team plans
plan.plan_typestringSubscription billing period: "Monthly" or "Yearly"
credits.pagesnumberAvailable page credits for plagiarism detection
credits.addonnumberAdditional purchased credits
ai_planobjectAI detection plan information (if available)
ai_creditsobjectAI detection credit information (if available)

Error Response (401)

{ "status": false, "code": 401, "message": "Something went wrong. Please try again later." }
Credit Management: Use this endpoint to check your available credits before creating reports. Credits are consumed based on the word count of analyzed text. Free plans may have different credit structures than paid plans.

Get Account Plan Details (Legacy)

Note: This is a legacy endpoint that requires Bearer token authentication. For API key-based access, use the v2 Account Plan endpoint instead.

Retrieve details about your current account plan, subscription information, and available credits.

GET https://www.quetext.com/api/auth/plan

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "Authorization": "Bearer YOUR_TOKEN" }

Response (200 OK)

{ "status": true, "data": { "plan": { "name": "Premium Professional", "price": 10.49, "created_at": 1693933146, "additional_users": 4, "plan_type": "Monthly" }, "credits": { "pages": 500, "addon": 0 } } }

Response Fields

FieldTypeDescription
plan.namestringName of your subscription plan
plan.pricenumberMonthly or yearly subscription price
plan.plan_typestringSubscription billing period: "Monthly" or "Yearly"
credits.pagesnumberAvailable page credits for plagiarism detection
credits.addonnumberAdditional purchased credits

Get Account Usage (Legacy)

Note: This is a legacy endpoint that requires Bearer token authentication.

View your account usage statistics broken down by day and month. This helps you track API consumption over time.

GET https://www.quetext.com/api/auth/my_usage

Headers

{ "Content-Type": "application/json", "Accept": "application/json", "Authorization": "Bearer YOUR_TOKEN" }

Response (200 OK)

{ "status": true, "data": { "2023": { "7": { "day01": 0, "day02": 0, "day18": 706, "day25": 12 }, "8": { "day01": 150, "day15": 320 } } } }

Response Structure

The response is organized hierarchically:

  • Year level: Top-level keys represent years (e.g., "2023")
  • Month level: Second-level keys represent months (1-12)
  • Day level: Third-level keys represent days (day01-day31) with word count values
Usage Tracking: The numbers represent word counts processed on each day. Use this data to monitor your API consumption and plan credit usage accordingly.