Quetext Partner API
Greife über unsere RESTful API auf Plagiatserkennung, KI-Erkennung und Berichtsfunktionen zu.
Introduction
The Quetext Plagiarism Checker & AI Detector API lets you add plagiarism checking and AI content detection to your own product through one RESTful interface with JSON responses. Pricing is $0.10 per 1,000 words from a prepaid wallet, and every new account starts with 5,000 free words.
Key Features
- Plagiarism Detection: Analyze text against billions of web pages and academic sources
- AI Content Detection: Estimate the likelihood that text was AI-generated, with a per-sentence breakdown
- Report Management: Create, retrieve, list, and delete reports programmatically
- PDF Export: Download a printable PDF of any completed report
- Real-time Progress: Poll report processing status until analysis completes
- Pay-as-you-go: A prepaid wallet is deducted per request based on word count, with no monthly commitment
Prefer not to write code? Quetext also works in your browser through extensions and inside AI assistants through Quetext MCP. For subscription plans, see pricing.
Base URL
All API requests should be made to:
Limits
| Request | Minimum | Maximum |
|---|---|---|
Plagiarism check (POST /v2/report) | 20 words | 50,000 words |
AI detection (POST /v2/ai-detect-report) | 50 words | 150,000 characters |
File upload (POST /v2/report-file) | 20 words of extracted text | 10 MB (.txt, .pdf, .doc, .docx) |
| Rate limit | 10 requests per 5 seconds, including progress polling | |
Billing works from a prepaid wallet at $0.10 per 1,000 words, separate from any Quetext subscription. See Pricing & Wallet for details.
Authentication
Quetext provides API access through API keys. Generate a key from your Quetext account under Account > API Keys and send it in the X-API-Key header on every request.
Request headers
Security: Treat your API key like a password. Never expose it in client-side code. Each account can create up to 10 API keys, and all requests are rate-limited per account.
Encryption
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
Error Response Format
| Code | Meaning |
|---|---|
| 400 | Bad Request - Invalid request parameters or missing required fields |
| 401 | Unauthorized - Invalid or missing API key |
| 402 | Payment Required - Insufficient API credits in your wallet. Top up your balance to continue. Response body includes data.balance_words (your current balance) and data.needed_words (this request's cost) |
| 403 | Forbidden - You do not have permission to view the requested resource |
| 404 | Not Found - Resource could not be found |
| 409 | Conflict - Report is still processing; the requested action requires a completed report |
| 429 | Too Many Requests - Rate limit exceeded. Please slow down and try again |
| 500 | Internal 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).
429 Too Many Requests response. Polling GET /v2/report-progress counts toward this limit. Please implement exponential backoff in your client applications.Rate Limit Headers
When you make a request, the following headers are included in the response:
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.
Headers
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The text content to check for plagiarism. Minimum 20 words, maximum 50,000 words. |
title | string | No | Optional title for the report. Helps organize your reports. |
Request Body Example
Response (200 OK)
Error Response: text too short (400)
Upload a file instead
To check a document, send it to POST /api/v2/report-file as multipart/form-data with the file in the file field. Supported formats are .txt, .pdf, .doc and .docx, up to 10 MB. The extracted text follows the same 20 to 50,000 word limits and the same billing. Errors: 400 no file, 413 file too large, 415 unsupported file type, 422 no text could be extracted.
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 report. This endpoint returns complete analysis results including matches, sources, scores, and metadata.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
REPORT_ID | string | Yes | The unique identifier of the report (returned when creating a report). |
Headers
Response (200 OK)
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique report identifier |
status | string | Report status: "completed" or "in-progress" |
percentage | number | Processing completion percentage (0-100) |
score | number | Plagiarism similarity score (0-100, null if not available) |
word_count | number | Total word count in the analyzed text |
matches | array | Array of detected plagiarism matches with sources |
Error Response (401)
Download Report PDF
Download a completed plagiarism report as a PDF. The PDF contains the full report layout (score, matches, and source URLs), ready to share or archive.
Headers
Path Parameters
| Parameter | Type | Description |
|---|---|---|
REPORT_ID | integer | The id of a completed report owned by your account. |
Success Response (200)
The response body is the binary PDF. Relevant headers:
Error Responses
| Status | Body | Cause |
|---|---|---|
| 400 | code:400 | Missing report id |
| 401 | code:401 | Invalid or missing X-API-Key |
| 404 | code:404 | Report not found, or not owned by your account |
| 409 | code:409, data.progress | Report is still being analyzed. Poll /v2/report-progress/{id} until progress reaches 1, then retry. |
| 429 | code:429 | Download rate limit exceeded for this account. |
| 500 | code:500 | PDF rendering failed. Retry after a short delay. |
Example (curl)
POST /v2/report; re-downloads are free.Get Reports API
Retrieve the plagiarism and AI detection reports you created through the API, most recent first. Without query parameters it returns up to 1,000 reports. Add ?page=1&limit=20 to page through results (limit up to 50); the response then includes a pagination object with page, limit, total and total_pages.
Headers
Response (200 OK)
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
Delete a plagiarism or AI detection report from your account. This action cannot be undone.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
REPORT_ID | string | Yes | The unique identifier of the report to delete. Must be a valid report ID that belongs to your account. |
Headers
Response (200 OK)
Error Response (404)
Get Report Progress API
Check the processing progress of a plagiarism or AI detection report. Use this endpoint to poll for completion after submitting either kind of report. progress runs from 0 to 1.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
REPORT_ID | string | Yes | The unique identifier of the report to check progress for. |
Headers
Response (200 OK)
Response When Report Not Found
GET /api/v2/report/{REPORT_ID} endpoint to retrieve full results.Get Account Plan Details
Retrieve your Quetext subscription plan and its plagiarism and AI detection credits. This endpoint describes your subscription, not the API wallet: API requests are billed from the wallet, and your wallet balance is shown under Account > API Keys and in every 402 response.
Headers
Response (200 OK)
Response Fields
| Field | Type | Description |
|---|---|---|
plan.name | string | Name of your subscription plan |
plan.price | number | Monthly or yearly subscription price |
plan.created_at | number | Unix timestamp when the plan was created |
plan.additional_users | number | Number of additional users allowed on team plans |
plan.plan_type | string | Subscription billing period: "Monthly" or "Yearly" |
credits.pages | string | Subscription plagiarism credits, in pages of 500 words |
credits.addon | string | Additional purchased subscription credits, in pages |
ai_plan | object or null | AI detection subscription plan, or null if the account has none |
ai_credits | object or null | AI detection subscription credits (pages, addon), or null |
Error Response (401)
Account > API Keys. A request your balance can't cover returns 402 with balance_words and needed_words.AI Detection Report API
Submit text to estimate the likelihood that it was AI-generated, and receive a report ID. Like the plagiarism Search Report endpoint, analysis runs asynchronously: poll for completion, then fetch the result.
Headers
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The text to analyze for AI-generated content. Minimum 50 words, maximum 150,000 characters. |
title | string | No | Optional title for the report. Auto-generated from the text if omitted. |
Request Body Example
Response (200 OK)
Error Response Example (402)
GET /api/v2/report-progress/{REPORT_ID} until the progress reaches 1.0, then fetch results from GET /api/v2/ai-detect-report/{REPORT_ID}.POST /api/v2/ai-detect-report-file as multipart/form-data with the file in the file field (.txt, .pdf, .doc or .docx, up to 10 MB). The extracted text has the same 150,000-character limit.Billing: Charged at the same $0.10 per 1,000 words rate as plagiarism reports, deducted from your API credits wallet on a successful submission.
402 and upstream errors are not charged.Get AI Detection Report API
Retrieve the AI-detection result for a report created via POST /api/v2/ai-detect-report. Returns the AI-generation score, a human-readable verdict, and a per-sentence breakdown.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
REPORT_ID | string | Yes | The unique identifier of the AI-detection report (returned when creating it). |
Headers
Response (200 OK)
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique report identifier |
status | string | Report status: "completed" or "in-progress" |
percentage | number | Processing completion percentage (0-100) |
ai_score | string | Likelihood the text is AI-generated, as a percentage string (e.g. "82.50"). null until analysis completes. |
ai_summary | string | Human-readable verdict for the document |
ai_matches | array | Per-sentence breakdown of AI-generation likelihood |
word_count | number | Total word count in the analyzed text |
POST /api/v2/ai-detect-report.Pricing & Wallet
The v2 API is funded by a prepaid wallet that is separate from any Quetext subscription. Every plagiarism or AI detection request deducts from this wallet based on the request's word count.
Pay-as-you-go with a prepaid wallet. Only POST requests deduct credits. All reads, PDFs, and progress checks are free.
What deducts from the wallet
POST /api/v2/report(plagiarism) andPOST /api/v2/ai-detect-report(AI detection), plus their file upload versionsPOST /api/v2/report-fileandPOST /api/v2/ai-detect-report-file, charged once the analysis dispatches successfully. Failures (e.g.402insufficient balance, or upstream errors) are not charged.- Everything else (
GET /v2/report/:id,GET /v2/ai-detect-report/:id,GET /v2/report/:id/pdf,GET /v2/reports,GET /v2/report-progress/:id,DELETE /v2/report/:id,GET /v2/plan) is free.
Topping up
Top up your wallet from Account > API Keys in the Quetext dashboard. You can:
- Pick a preset amount ($5, $10, $20, $50, $100) or use one of the supported currency presets (USD, INR, EUR, GBP)
- Pay with any saved card, or add a new card inline
- Enable Auto Top-up: once your balance falls below your threshold, Quetext charges your saved card off-session for your selected amount. Auto top-up is the recommended setup for production integrations, so your API will not go down unexpectedly
Receipts
Every successful top-up has a Stripe-hosted receipt. You can find receipts under Recent Top-ups on the API Keys page.
Insufficient balance behavior
If a POST /v2/report or POST /v2/ai-detect-report request would exceed your balance, the request short-circuits with HTTP 402 and the request body is not sent for analysis. The response includes the current balance and the words needed:
402 responses, surface the gap to your operators, and consider enabling auto top-up so the next request succeeds without manual intervention.