curl --request POST \
--url https://api.copyleaks.com/v1/writing-feedback/my-scan-123/check \
--header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"text": "Copyleaks is a comprehensive plagiarism detection platform..."
}'
from copyleaks.copyleaks import Copyleaks
from copyleaks.models.submit.writing_assistant_document import WritingAssistantDocument
auth_token = Copyleaks.login("[email protected]", "YOUR_API_KEY")
submission = WritingAssistantDocument("Copyleaks is a comprehensive plagiarism detection platform...")
response = Copyleaks.WritingAssistantClient.submit_text(auth_token, "my-scan-123", submission)
print(response.model_dump_json(by_alias=True, exclude_unset=True, indent=2))
const { Copyleaks, CopyleaksWritingAssistantSubmissionModel } = require('copyleaks');
async function main() {
const copyleaks = new Copyleaks();
const auth = await copyleaks.loginAsync('YOUR_EMAIL', 'YOUR_API_KEY');
const submission = new CopyleaksWritingAssistantSubmissionModel(
'Copyleaks is a comprehensive plagiarism detection platform...'
);
submission.sandbox = true;
const response = await copyleaks.writingAssistantClient.submitTextAsync(auth, 'my-scan-123', submission);
console.log(JSON.stringify(response, null, 2));
}
main();
import classes.Copyleaks;
import models.submissions.writingassistant.CopyleaksWritingAssistantSubmissionModel;
import models.response.CopyleaksAuthToken;
CopyleaksAuthToken authToken = Copyleaks.login("your@email", "API_KEY");
CopyleaksWritingAssistantSubmissionModel sub = new CopyleaksWritingAssistantSubmissionModel(
"Copyleaks is a comprehensive plagiarism detection platform..."
);
sub.setSandbox(true);
Copyleaks.writingAssistantClient.submitText(authToken, "my-scan-123", sub);
{
"score": {
"corrections": {
"grammarCorrectionsCount": 2,
"grammarCorrectionsScore": 87,
"mechanicsCorrectionsCount": 9,
"mechanicsCorrectionsScore": 38,
"overallScore": 79
},
"readability": {
"score": 59,
"readabilityLevel": 5,
"readabilityLevelText": "10th to 12th Grader",
"readabilityLevelDescription": "Fairly difficult to read"
}
},
"scannedDocument": {
"scanId": "{scanId}",
"totalWords": 61,
"actualCredits": 1,
"expectedCredits": 1,
"creationTime": "2025-08-06T08:00:08.0429909Z"
}
}
Grammar Checker
Submit Text
Generate grammar, spelling, and sentence corrections for a given text.
POST
/
v1
/
writing-feedback
/
{scanId}
/
check
curl --request POST \
--url https://api.copyleaks.com/v1/writing-feedback/my-scan-123/check \
--header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"text": "Copyleaks is a comprehensive plagiarism detection platform..."
}'
from copyleaks.copyleaks import Copyleaks
from copyleaks.models.submit.writing_assistant_document import WritingAssistantDocument
auth_token = Copyleaks.login("[email protected]", "YOUR_API_KEY")
submission = WritingAssistantDocument("Copyleaks is a comprehensive plagiarism detection platform...")
response = Copyleaks.WritingAssistantClient.submit_text(auth_token, "my-scan-123", submission)
print(response.model_dump_json(by_alias=True, exclude_unset=True, indent=2))
const { Copyleaks, CopyleaksWritingAssistantSubmissionModel } = require('copyleaks');
async function main() {
const copyleaks = new Copyleaks();
const auth = await copyleaks.loginAsync('YOUR_EMAIL', 'YOUR_API_KEY');
const submission = new CopyleaksWritingAssistantSubmissionModel(
'Copyleaks is a comprehensive plagiarism detection platform...'
);
submission.sandbox = true;
const response = await copyleaks.writingAssistantClient.submitTextAsync(auth, 'my-scan-123', submission);
console.log(JSON.stringify(response, null, 2));
}
main();
import classes.Copyleaks;
import models.submissions.writingassistant.CopyleaksWritingAssistantSubmissionModel;
import models.response.CopyleaksAuthToken;
CopyleaksAuthToken authToken = Copyleaks.login("your@email", "API_KEY");
CopyleaksWritingAssistantSubmissionModel sub = new CopyleaksWritingAssistantSubmissionModel(
"Copyleaks is a comprehensive plagiarism detection platform..."
);
sub.setSandbox(true);
Copyleaks.writingAssistantClient.submitText(authToken, "my-scan-123", sub);
{
"score": {
"corrections": {
"grammarCorrectionsCount": 2,
"grammarCorrectionsScore": 87,
"mechanicsCorrectionsCount": 9,
"mechanicsCorrectionsScore": 38,
"overallScore": 79
},
"readability": {
"score": 59,
"readabilityLevel": 5,
"readabilityLevelText": "10th to 12th Grader",
"readabilityLevelDescription": "Fairly difficult to read"
}
},
"scannedDocument": {
"scanId": "{scanId}",
"totalWords": 61,
"actualCredits": 1,
"expectedCredits": 1,
"creationTime": "2025-08-06T08:00:08.0429909Z"
}
}
curl --request POST \
--url https://api.copyleaks.com/v1/writing-feedback/my-scan-123/check \
--header 'Authorization: Bearer YOUR_LOGIN_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"text": "Copyleaks is a comprehensive plagiarism detection platform..."
}'
from copyleaks.copyleaks import Copyleaks
from copyleaks.models.submit.writing_assistant_document import WritingAssistantDocument
auth_token = Copyleaks.login("[email protected]", "YOUR_API_KEY")
submission = WritingAssistantDocument("Copyleaks is a comprehensive plagiarism detection platform...")
response = Copyleaks.WritingAssistantClient.submit_text(auth_token, "my-scan-123", submission)
print(response.model_dump_json(by_alias=True, exclude_unset=True, indent=2))
const { Copyleaks, CopyleaksWritingAssistantSubmissionModel } = require('copyleaks');
async function main() {
const copyleaks = new Copyleaks();
const auth = await copyleaks.loginAsync('YOUR_EMAIL', 'YOUR_API_KEY');
const submission = new CopyleaksWritingAssistantSubmissionModel(
'Copyleaks is a comprehensive plagiarism detection platform...'
);
submission.sandbox = true;
const response = await copyleaks.writingAssistantClient.submitTextAsync(auth, 'my-scan-123', submission);
console.log(JSON.stringify(response, null, 2));
}
main();
import classes.Copyleaks;
import models.submissions.writingassistant.CopyleaksWritingAssistantSubmissionModel;
import models.response.CopyleaksAuthToken;
CopyleaksAuthToken authToken = Copyleaks.login("your@email", "API_KEY");
CopyleaksWritingAssistantSubmissionModel sub = new CopyleaksWritingAssistantSubmissionModel(
"Copyleaks is a comprehensive plagiarism detection platform..."
);
sub.setSandbox(true);
Copyleaks.writingAssistantClient.submitText(authToken, "my-scan-123", sub);
{
"score": {
"corrections": {
"grammarCorrectionsCount": 2,
"grammarCorrectionsScore": 87,
"mechanicsCorrectionsCount": 9,
"mechanicsCorrectionsScore": 38,
"overallScore": 79
},
"readability": {
"score": 59,
"readabilityLevel": 5,
"readabilityLevelText": "10th to 12th Grader",
"readabilityLevelDescription": "Fairly difficult to read"
}
},
"scannedDocument": {
"scanId": "{scanId}",
"totalWords": 61,
"actualCredits": 1,
"expectedCredits": 1,
"creationTime": "2025-08-06T08:00:08.0429909Z"
}
}
Request
Path Parameters
string
required
A unique scan id provided by you. Learn more about the criteria for creating a Scan ID.
>= 3 characters <= 36 charactersHeaders
Content-Type: application/json
Authorization: Bearer YOUR_LOGIN_TOKEN
Request Body
string
required
Text to produce Grammar Checker report for.
>= 1 characters <= 25000 charactersboolean
default:"false"
Use sandbox mode to test your integration with the Copyleaks API without consuming any credits.
object
Show score properties
Show score properties
number<float>
default:"1.0"
Grammar correction category weight in the overall score.
>= 0.0 <= 1.0number<float>
default:"1.0"
Mechanics correction category weight in the overall score.
>= 0.0 <= 1.0number<float>
default:"1.0"
Sentence structure correction category weight in the overall score.
>= 0.0 <= 1.0number<float>
default:"1.0"
Word choice correction category weight in the overall score.
>= 0.0 <= 1.0string
The language code of your content. If not supplied, our system will automatically detect the language of the content.Example:
"en"
