API Documentation
The Plagiarism Checker API checks and compares text with billions of online sources to find out if it is original and not copied. It gives detailed similarity reports with exact match source links. It can effectively check content’s uniqueness, which makes it very useful for schools, online publishers, and professionals who need to maintain content originality.
Plagiarism API for full article or a post content:
This method is used when you want to rewrite an article or post.
curl --locationhttps://staging.editpad.org/api/user/plagiarism\ --requestPOST\ --header'Accept: application/json'\ --header'Content-Type: application/json'\ --header'Authorization: Bearer\ --dataAPI_KEY''{ "text": "A paragraph to cehck the plagiarism. Lorem Ispusm doler.", "ignore_urls": [ "https://www.domain.com/slug", "https://domainname.com/page" ] }'
Successful Response:
This API returns a structured JSON response containing details about all active and processed subscription plans associated with the authenticated user.
{
"message": "success",
"plagiarism_percent": 50,
"unique_percent": 50,
"total_sentence": 2,
"plagiarized_sentence": 1,
"unique_sentence": 1,
"input_words": 36,
"credits_used": 2,
"url_sources": [
{
"url": "https://www.editpad.org/tool/plagiarism-checker",
"title": "Plagiarism Checker - Accurate Plagiarism Detector",
"domain": "www.editpad.org",
"sentence_count": 1,
"percent": 100
}
],
"result": [
{
"query_key": 17624278542650,
"sentence": "Plagiarism Checker by Editpad is a free online tool designed to quickly detect all types of plagiarism in writing.",
"plagiarism": false,
"percentage": 0,
"matches": []
},
{
"query_key": 17624278542651,
"sentence": "It uses advanced technology to highlight even minor traces of plagiarism from essays, thesis, articles, blogs, etc.",
"plagiarism": true,
"percentage": 100,
"matches": {
"description": "It is developed to quickly detect all types of plagiarism It uses advanced technology to highlight even minor traces of plagiarism from essays thesis articles blogs etc It also allows adding citations of non quoted text Editpad",
"title": "Plagiarism Checker - Accurate Plagiarism Detector",
"url": "https://www.editpad.org/tool/plagiarism-checker",
"website": "www.editpad.org"
}
}
]
}
API Documentation
The paraphrasing tool API helps you rephrase text quickly while keeping its meaning and context the same. Whether you are using it for an academic writing platform, a content optimization app, or an AI writing assistant, it rewrites content into a unique, high-quality, and human-sounding text in real time. It can be used for multiple rewriting purposes as it has a variety of paraphrasing modes:
Paraphrasing API for full article or a post content:
This method is used when you want to rewrite an article or post.
curl --locationhttps://staging.editpad.org/api/user/paraphrase\ --requestPOST\ --header'Accept: application/json'\ --header'Content-Type: application/json'\ --header'Authorization: Bearer\ --dataAPI_KEY''{ "text": "This is a unique paragraph that you want to paraphrase using a black permanent marker.", "mode": "smooth","lang": "en" }'
Successful Response:
This API returns a structured JSON response containing details about all active and processed subscription plans associated with the authenticated user.
{
"mode": "smooth",
"lang": "en",
"input_words": 15,
"output_words": 15,
"credits_used": 100, // credits used in this API call
"output": "This is a distinctive paragraph that you wish to rephrase with a black permanent marker."
}
API Documentation
The Humanizer API helps in converting robotic or AI text into simple, smooth, and human-sounding text. It replaces AI phrases with natural words and complex sentences with short and simple ones. It also updates the tone and flow of the content, making it sound more organic. This is especially helpful for blogs, marketing materials, and AI chatbots. This API makes content engaging and more interesting for users on any platform.
Humanize AI Text API for full article or a post content:
This method is used when you want to humanize an AI-generated article or post.
curl --locationhttps://staging.editpad.org/api/user/humanize\ --requestPOST\ --header'Accept: application/json'\ --header'Content-Type: application/json'\ --header'Authorization: Bearer\ --dataAPI_KEY''{ "text": "The artificial intelligence system processed the input data efficiently, generating a comprehensive report.", "mode": "basic","lang": "en" }'
Successful Response:
This API returns a structured JSON response containing details about all active and processed subscription plans associated with the authenticated user.
{
"mode": "basic",
"lang": "en",
"input_words": 15,
"output_words": 15,
"credits_used": 100, // credits used in this API call
"output": "The AI system handled the data well, and it put together a full report."
}
Error Response
{
"message": "Error message here",
"detail": "Please try again. If the issue persists, contact support",
}
Status Codes
The API uses standard HTTP status codes to indicate the success or failure of an API request. Here are some common status codes and error messages for your reference.
| STATUS | ERROR | DESCRIPTION |
|---|---|---|
| 401 |
i.
API key is required.
|
i.
The API key is missing from the request.
|
|
ii.
Incorrect API key provided.
|
ii.
The provided API key is invalid or missing.
|
|
|
iii.
You are not premium for this request.
|
iii.
Your subscription plan doesn't allow this request or has expired.
|
|
| 422 |
i.
Validation Error.
|
i.
Invalid parameters were provided.
|
|
ii.
Word limit exceeded.
|
ii.
The input text exceeds the maximum allowed word limit for your plan.
|
|
| 429 |
i.
Too Many Requests.
|
i.
The rate limit of requests per minute depends on your plan.
|
| 500 |
i.
Unable to paraphrase the text.
|
i.
An internal server error occurred while processing the paraphrasing request. Please try again. If the issue persists, contact support.
|
|
ii.
Unable to check plagiarism.
|
ii.
An internal server error occurred while processing the plagiarism request. Please try again. If the issue persists, contact support.
|
|
|
iii.
An unexpected error occurred.
|
iii.
Internal server error.
|
This API endpoint allows authenticated users to retrieve detailed information about their active subscription plans and the remaining query or credit balance associated with each plan. By providing a valid API key, the system identifies the user and returns a list of processed transactions along with plan details, purchase and expiry dates, renewal type, total allocated queries, and the number of queries already used. This enables users to easily monitor their available credits across multiple active plans and manage their usage accordingly.
API Usage check for available credits or authentication:
This method is used to check the available credits or authentication status of the user.
curl --locationhttps://staging.editpad.org/api/user/usage\ --requestPOST\ --header'Accept: application/json'\ --header'Content-Type: application/json'\ --header'Authorization: BearerAPI_KEY'
Successful Response:
This API returns a structured JSON response containing details about all active and processed subscription plans associated with the authenticated user. For each plan, the response includes the plan name, purchase date, expiry date, along with the total number of queries (credits) allocated and the number of queries already used. This allows the user to easily track their current usage and remaining credits across multiple subscriptions. The response ensures transparency in plan usage and helps users manage their credits effectively.
{
"total_credits_limit": 110000,
"total_credits_use": 6,
"plans": [
{
"plan_name": "API Plans",
"purchase_date": "2025-11-06",
"expiry_date": "2025-12-06",
"credits_limit": 50000,
"credits_use": 5,
"apis": [
"https://local.editpad.org/api/user/plagiarism",
"https://local.editpad.org/api/user/humanize"
]
},
{
"plan_name": "API Plans",
"purchase_date": "2025-11-06",
"expiry_date": "2025-12-06",
"credits_limit": 60000,
"credits_use": 1,
"apis": [
"https://local.editpad.org/api/user/paraphrase",
"https://local.editpad.org/api/user/plagiarism"
]
}
]
}
Incorrect API key:
// Response Status: 401 Unauthorized{"type": "invalid_request","message": "incorrect API key provided", }
User does not have an API plan:
// Response Status: 401 Unauthorized{"type": "invalid_request","message": "you are not API premium user", }
How to handle rate limits
The Editpad API applies rate limits to all API calls to ensure fair usage and maintain the availability and stability of the platform.
Our rate limit across the whole API is 100 requests per second for read requests, 25 requests per second for write requests. We may occasionally reduce the rate limit as part of incident response to protect our other systems, and we may also permanently lower it for specific APIs which handle a lot of data (this will be documented on the endpoint if so).
This means that your software should be prepared to receive this response, and handle it appropriately, even if you don’t currently anticipate making this many requests.
Rate limit response
If you exceed the limit, you’ll get a special HTTP response, like this:
HTTP/1.1429Too Many RequestsRetry-After:Sun, 23 Nov 2025 10:45:53 GMTContent-Type:application/json {"status": false,"message": "Per{minute|day|hour}Limit Reached Blocked." }
Rate limit responses always have the HTTP status code 429. They also always include a Retry-After header, which is a date at which the limit resets (usually the following second), and they may also include additional debugging information in the JSON body.
Handling rate limit responses
A rate limited response means that we have not processed the request, so it can be safely retried after the limit has reset. Typically this will be in the next clock second. Most programming languages offer a sleep command or equivalent that allows waiting for the reset time to elapse.
Alternatively, you might want to put the request into a background queue to be processed in a different execution thread later.
FAQs
Include your Bearer token in the header: Authorization: Bearer YOUR_API_KEY.
You can check up to 5,000 words per API request.
Yes, pass them as an array in the ignore_urls parameter.
Send data as JSON with Content-Type: application/json.
It returns plagiarism percentage, unique percentage, credit usage, and matched source URLs.
Each result includes matched sentences with title, url, and website fields.
401 errors for missing, invalid, or expired API keys, or if your plan doesn’t support the request.
A 422 error for exceeding word limits or 429 for hitting rate limits per minute, hour, or day.
The response includes a credits_used field showing how many credits were consumed.
Retry after a short delay; if the issue persists, contact support with the error message.