Create a check from text or a file

POST
/v1/checks

One call runs the plagiarism, grammar, citation, AI-content and style checks on a document. Every refusal about the document itself answers here, synchronously (no_input, no_checks_selected, too_short, too_long, unsupported_type, unreadable_file, file_too_large (413), unsupported_language, multiple_inputs, invalid_file), so a check that is accepted (202) has been read and will run. Only a scanned PDF or an image is read later, by OCR, while the check runs.

Authorization

bearerAuth
AuthorizationBearer <token>

Create a key under Account → API. Send it as Authorization: Bearer st_live_…. Keys carry scopes: checks:write (create, cancel, delete; add, change and delete source rules), checks:read (list, get; list source rules) and usage:read (credit position).

In: header

Header Parameters

idempotency-key?string

Any string unique to this submission. A retry carrying the same key answers the first check’s id (202, Idempotent-Replayed: true) and never starts or charges a second check.

Length1 <= length <= 200

Request Body

TypeScript Definitions

Use the request body type in TypeScript.

Send the document as text, or as file (base64 or a data: URL) with an optional filename. The file is judged by its bytes, never by its name or declared type: .txt, .md, .html, .csv, .docx, .xlsx, .pdf, and JPEG/PNG/GIF/WebP images (OCR). Text is decoded from UTF-8, UTF-16 or Windows-1252. options selects which issue categories run: plagiarism, grammarSpelling, citations, aiContent, and style, the clarity + word-choice layer, whose findings come back as clarity / word_choice issues plus a scores.clarity density (null when the style pass did not run). options.register ("academic" | "general") selects which word-choice rules apply: academic flags contractions, colloquial wording and first-person asides. The passes also set the price: a check costs, per started 250 words, a base every check pays plus the rate of each pass that is on (the schedule is credits.passes on GET /v1/capabilities), so a plagiarism-only check costs less than one with everything on. Every option defaults to true, so a pass you leave out RUNS and is charged; to run fewer checks, set the others to false explicitly. The 202 quotes the estimate as estimatedCredits and the finished check carries creditsCharged. sourceRules adds include or exclude rules for this check alone, applied together with the account's list (/v1/source-rules): the same mode, kind and value shape, at most 50 rules.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/checks" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "estimatedCredits": 0}