Reading the report

Scores, issues with fixes, sources, matches and spans. What each part contains and how to fetch only the parts you use.

GET /v1/checks/{id} returns the report once status is done. It can be large for a long document, so the query string lets you shape it.

Shaping the response

QueryReturns
?view=summaryThe scalar fields and scores only. Use it for polling and score-only products.
?view=fullEverything (the default).
?include=scores,issues,sourcesExactly the parts named, from text, spans, matches, sources, issues, scores, meta. Wins over view when both are sent.

The scalars always ship whatever you ask for: status, title, wordCount, originalityScore, coverage, issueCounts, composition, createdAt, completedAt. The report's own header fields (similarityScore, checkedWords, languages, contentType, partial) come with any part.

Scores

"scores": { "plagiarism": 14, "grammarSpelling": 2, "citation": 0, "aiContent": 9, "clarity": 6 }

Each score is 0 to 100. plagiarism is the share of the document matched to sources; originalityScore is the complement you would show a writer. aiContent is the calibrated likelihood the text is machine-written. grammarSpelling, citation and clarity are issue densities, higher meaning more findings per word. A score is null when its category did not run.

coverage says how much of the document the plagiarism search actually covered (1 means all of it). A similarity figure means nothing without it, so it is always disclosed.

composition splits the document by verdict: exact, near, paraphrase, quoted and original as shares of the text.

Issues

Every finding is one issues entry:

{
  "id": "c3d9e1",
  "category": "grammar",
  "severity": "warning",
  "title": "Subject-verb agreement",
  "message": "The subject is plural, so the verb should be too.",
  "original": { "text": "The results shows", "start": 412, "end": 429 },
  "fix": { "replacement": "The results show", "label": "Replace" },
  "status": "open"
}
FieldNotes
categoryspelling, grammar, citation, missing_citation, plagiarism, ai_content, clarity, word_choice.
severityerror, warning or suggestion.
originalThe span in the submitted text, as character offsets, plus the text itself.
fixThe replacement to apply. Citation fixes carry byStyle with APA, MLA and Chicago variants. Plagiarism findings may carry a rephrase instead.
sourceUrl, matchIdOn plagiarism and citation findings, the source behind the match.
messageByStyleOn citation findings, the message in each style.

Offsets index the text the API checked (the text part of the report), so apply fixes from the end of the document backwards to keep earlier offsets valid.

Sources and matches

sources lists every page the document matched, with url, title, domain, matchedWords, contribution (its share of matched text) and the citation metadata found on the page: authors, published, siteName, doi, journal, volume, issue, pages. Enough to build a citation without a second lookup.

matches pairs a stretch of the document (user.text, offsets and marked words) with the source snippet and a similarity figure and verdict.

spans covers the whole document as ranges, each with a verdict (original, exact, near, paraphrase, quoted, unchecked, presumed) and, for matches, the sourceId. Use it to paint a highlighted view.

The bibliography

When the document has a reference list, bibliographyStart is its offset and bibliography.entries maps each entry to a sourceId, so a citation checker can tell a cited source from an uncited one.

The report in the app

The same report opens in the Silvertext app at https://app.silvertext.com/reports/{id} for anyone signed into the account, with the fixes applied one click at a time. Link it from your product when a human should review the findings.

On this page