A self-hostable server that provides a JSON API for checking spelling and grammar mistakes programmaticaly in texts.
JSON API wrapper around LanguageTool with support for batching.
POST /check
Content-Type: application/jsonBody:
{ "text": "string" }Response:
POST /bulk-check
Content-Type: application/jsonBody:
{ "texts": ["string"] }Response:
[
  // An array of results like POST /check for each text in the same order
  {
    // A human-readable explanation describing the error. This may contain one or more
    // corrections marked up with <suggestion>...</suggestion>.
    "message": "string",
    // A shorter human-readable explanation describing the error or an empty string if no such
    // explanation is available.
    "shortMessage": "string",
    // Position of the start of the error (in characters, zero-based, relative to the original
    // input text).
    // (integer)
    "offset": 42,
    // The length of the error
    // (integer)
    "length": 42,
    // The text fragments which might be an appropriate fix for the problem. One of these
    // fragments can be used to replace the old text
    "replacements": ["string"],
    // The type of the rule match:
    //  - UnknownWord (Spelling errors, typically red)
    //  - Hint (Style errors, typically light blue.)
    //  - Other Other errors (including grammar), typically yellow/orange
    "type": "UnknownWord",
    // The matching rule
    "rule": {
      // A string used to identify the rule in e.g. configuration files. This string is supposed
      // to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed
      // to contain only the characters A-Z and the underscore.
      "id": "string",
      // Optional, mostly used for XML rules (pulled from there to all rules for uniformity)
      "subId": "string",
      // Optional, mostly used for XML rules (pulled from there to all rules for uniformity) For
      // XML rules, this returns the file that this rule was loaded from
      "sourceFile": "string",
      // A short description of the error this rule can detect, usually in the language of the
      // text that is checked.
      "description": "string",
      // The ITS Issue type
      // - terminology
      // - mistranslation
      // - omission
      // - untranslated
      // - addition
      // - duplication
      // - inconsistency
      // - grammar
      // - legal
      // - register
      // - locale-specific-content
      // - locale-violation
      // - style
      // - characters
      // - misspelling
      // - typographical
      // - formatting
      // - inconsistent-entities
      // - numbers
      // - markup
      // - pattern-problem
      // - whitespace
      // - internationalization
      // - length
      // - non-conformance
      // - uncategorized
      // - other
      "issue": "terminology",
      "category": {
        "id": "string",
        "name": "string"
      }
    }
  }
]docker run -p 8080:8080 ghcr.io/flycode-org/langauge-tool-server- Clone the repository
- Make sure to set the correct Google Cloud project before deploying with gcloud
- Deploy to App Engine:
./gradlew appEngineDeploy
{ // A human-readable explanation describing the error. This may contain one or more // corrections marked up with <suggestion>...</suggestion>. "message": "string", // A shorter human-readable explanation describing the error or an empty string if no such // explanation is available. "shortMessage": "string", // Position of the start of the error (in characters, zero-based, relative to the original // input text). // (integer) "offset": 42, // The length of the error // (integer) "length": 42, // The text fragments which might be an appropriate fix for the problem. One of these // fragments can be used to replace the old text "replacements": ["string"], // The type of the rule match: // - UnknownWord (Spelling errors, typically red) // - Hint (Style errors, typically light blue.) // - Other Other errors (including grammar), typically yellow/orange "type": "UnknownWord", // The matching rule "rule": { // A string used to identify the rule in e.g. configuration files. This string is supposed // to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed // to contain only the characters A-Z and the underscore. "id": "string", // Optional, mostly used for XML rules (pulled from there to all rules for uniformity) "subId": "string", // Optional, mostly used for XML rules (pulled from there to all rules for uniformity) For // XML rules, this returns the file that this rule was loaded from "sourceFile": "string", // A short description of the error this rule can detect, usually in the language of the // text that is checked. "description": "string", // The ITS Issue type // - terminology // - mistranslation // - omission // - untranslated // - addition // - duplication // - inconsistency // - grammar // - legal // - register // - locale-specific-content // - locale-violation // - style // - characters // - misspelling // - typographical // - formatting // - inconsistent-entities // - numbers // - markup // - pattern-problem // - whitespace // - internationalization // - length // - non-conformance // - uncategorized // - other "issue": "terminology", "category": { "id": "string", "name": "string" } } }