The available Swagger UI for the Congree REST API is located in the following URL: http://<WebAPIHost>/congree/swagger
Congree REST API endpoints are located at http://<WebAPIHost>/congree/api
Account
POST | /congree/api/Account/v1/SignOut | Releases locked license |
You can use this call to release a locked license. Otherwise, a locked license will be released after a 20 minutes timeout.
A Congree license is locked after the first Congree REST API call.
AuthoringMemory
POST | /congree/api/AuthoringMemory/v1/ImportXml?lang={CultureName} | HTTP request used to add content to the Congree Sentence Database |
The culture name in the format languagecode2-country/regioncode2. languagecode2 is a lowercase two-letter code derived from ISO 639-1. country/regioncode2 is derived from ISO 3166 and usually consists of two uppercase letters, or a BCP-47 language tag.
E.g. /congree/api/AuthoringMemory/v1/ImportXml?lang=de-DE
The content type should be multipart/form-data and it should contain file XML.
{ "DetectedParagraphsCount": 0, "DetectedSentencesCount": 0, "AddedSentencesCount": 0, "FailedParagraphsCount": 0 }
Requirements
The content has to be well-formed XML with resolved entity references.
Maximum size: 10 MB
Authoring Memory: Attributes
POST | /api/AuthoringMemory/v1/Attributes | Adds new attributes with values |
GET | /api/AuthoringMemory/v1/Attributes | Returns available attributes |
DELETED | /api/AuthoringMemory/v1/Attributes | Deleted available attributes |
Attributes can be specified by:
- Type (string, optional): Type = ['Text', 'Picklist'],
- Name (string, optional): Name
- Values (Array[string], optional): Available values
Authoring Memory: Sentences
POST | /api/AuthoringMemory/v1/Sentences/{sentenceId}/Attributes | Adds new attibutes or values to the sentence |
GET | /api/AuthoringMemory/v1/Sentences/{sentenceId}/Attributes | Gets attributes for certain sentence |
DELETE | /api/AuthoringMemory/v1/Sentences/{sentenceId}/Attributes | Deletes attributes or values of the sentence |
GET | /congree/api/AuthoringMemory/v1/Sentences | Get sentences based on the provided filter |
DELETE | /congree/api/AuthoringMemory/v1/Sentences | Cleans up Authoring Memory sentences |
DELETE | /congree/api/AuthoringMemory/v2/Sentences | Deletes sentences from Authoring Memory |
The body of the request should contain the options you can find in the table below in the following form:
{ "ClearImportedSentences" : true, "ClearDataGroomingSentences": true }
Option name | Description |
---|---|
ClearImportedSentences | Deletes imported (via API /congree/api/AuthoringMemory/v1/ImportXml) sentences |
ClearDataGroomingSentences | Deletes all sentences from Congree Data Grooming and also related sentences from the Authoring Memory |
In order to get the task status and results, use the methods described in Tasks. The result is an empty object.
{ "Id": "00000000-0000-0000-0000-000000000000" }
Information
GET | /congree/api/Information/v1/Version | Returns Congree Server and Web API versions |
{ "CongreeWebApiVersion": "string", "CongreeVersion": "string" }
GET | /congree/api/Information/v1/Components | Returns available components |
The response structure corresponds to CongreeComponentInfo class, see Type definitions - IBulkCheckService - Auxiliary types.
[ { "Id": "string", "Name": "string" } ]
Linguistic
POST | /congree/api/Linguistic/v1/Check?ruleSet={rulesetName} | Checks the document |
The request should be included in the body in the following form:
{ "Xml": "string", "Options": { "IncludeValidTerms": true, "IncludeReporting": true, "IncludeContextMapping": true, "ExtractTermCandidates": true } }
Important:
“string” has some restrictions. It must be valid XML. It cannot just be any string.
Options
Option name | Description |
---|---|
IncludeValidTerms | Include valid terms from Style Guide in the result |
IncludeReporting | Include Language Check Report in the result |
IncludeContextMapping | Split input XML into contexts and map linguistic errors to the contexts. This option are enabled if IncludeReporting is true |
ExtractTermCandidates | Extract terminology candidates from input XML and include them in the result |
The response structure corresponds to LinguisticCheckResult3 class, see Congree Bulk Check Service documentation, see Type definitions - IBulkCheckService - Linguistic-related types.
{ "ResultXml": "string", "Errors": [ { "Id": "string", "ContextId": 0, "Type": "Abbreviation", "Descriptions": [ { "Code": "string", "Description": { "Header": "string", "Instruction": "string", "Explanation": "string" }, "Explanation": [ { "Type": "Text", "Text": "string" } ], "ExplanationRewrite": [ { "Type": "Text", "Text": "string" } ] } ], "Proposals": [ { "Text": "string", "AdditionalInfo": "string", "BaseTermForm": "string", "ConceptId": 0 } ] } ], "TermCandidates": [ { "Id": "string", "Text": "string", "Context": "string", "IsExist": true } ], "Reporting": { "TotalCheckedWords": 0, "ReleaseLevel": 0, "RelativeReleaseLevel": 0, "SafeReleaseLevel": 0, "SafeReleaseLevelTitle": "string", "AcceptableReleaseLevel": 0, "AcceptableReleaseLevelTitle": "string", "UnsafeReleaseLevel": 0, "UnsafeReleaseLevelTitle": "string", "ReportingByTypes": [ { "Type": "Abbreviation", "ErrorCount": 0, "Severity": 0, "RelativeSeverity": 0 } ] }, "FailedParagraphsInfo": { "FailedParagraphsAmount": 0 } }
Here comes an example to describe "String" in more detail:
Please note that in the example, Processing Instructions are used to mark ranges:
Processing Instruction | Explanation |
---|---|
<?cngr-ctx-b 6?> | ctx = context (a paragraph ID) |
<?cngr-lc-b 13?> | lc = Language Check (a highlight/error ID) |
<?cngr-ctx-e 6?> | e = end of the range |
<?cngr-lc-b 13?> | b = beginning of the range |
Please find the additional response content explained below.
Errors
- Id: highlight/error ID to find the correct range of a Congree notification)
- ContextId: ContextId corresponds to a “<?cngr-ctx-b X?> … <?cngr-ctx-e X?>” region. These PIs are emitted when IncludeContextMapping is true or both IncludeReporting is true and RuleSet has reporting configuration set.
- Type: Spelling, Grammar, Style, Terminology, Abbreviation or Valid terms
- Descriptions:
- Code: identifier for a specific Congree notification
- Description:
- Header: short summary to identify the notification
- Instruction: short text telling the author what to correct
- Explanation: short text telling the author why to correct
- Explanation: negative example
- Type: can be Text or Explanation
- Text
- ExplanationRewrite: positive example
- Type: can be Text or Explanation
- Text
Important:
Proposals
- Text: any string which should be applied by authors as their correction of some problem
- AdditionalInfo: legacy property, has to be null
- BaseTermForm: String required for "Valid term" messages and also for Terminology Research to find a term
- ConceptId: If the proposal is a term, this is the concept ID of said term to be used if necessary.
TermCandidates
- Id: Id of corresponding “<?cngr-lc-b X?>…<?cngr-lc-e X?>” region
- Text: the candidates as displayed to the author
- Context: the sentence(s) in which a term candidate has been found
- IsExist: information if this term has already been proposed by someone else in the past
Reporting
- TotalCheckedWord: counter for the amount of checked words
- ReleaseLevel: value which shows the quality of checked text
- RelativeReleaseLevel: ReleaseLevel value, scaled as if quality levels (unsafe/acceptable/safe) were of equal length of 40. Returned values are in range [0…80) U {120}. 120 is returned only when ReleaseLevel = 100.
- SafeReleaseLevel: value when the shown release level is good
- SafeReleaseLevelTitle: name of the good release level
- AcceptableReleaseLevel: value when the shown release level is ok
- AcceptableReleaseLevelTitle: name of the ok release level
- UnsafeReleaseLevel: value when the shown release level is bad
- UnsafeReleaseLevelTitle: name of the bad release level
- ReportingByTypes: contains total counts and calculated severities of Language Check error types.
- Type
- ErrorCount
- Severity
- RelativeSeverity
- FailedParagraphsInfo
- FailedParagraphsAmount: provides information on how many paragraphs were skipped due to errors
POST | /congree/api/Linguistic/v1/StartCheckTask?ruleSet={rulesetName} | Checks the document in asynchronous mode |
The request is the same as for /congree/api/Linguistic/v1/Check?ruleSet=rulesetName but the result is a task id.
In order to get the task status and results, use methods described in Tasks. The result is the same as for /congree/api/Linguistic/v1/Check
{ "Id": "00000000-0000-0000-0000-000000000000" }
GET | /congree/api/Linguistic/v1/Languages | Gets available languages |
Linguistic: StyleGuide
POST | /api/Linguistic/StyleGuide/v1/Templates/{culture} | Create a new style guide |
GET | /api/Linguistic/StyleGuide/v1/Templates/{culture} | Get all style guides for the specified culture |
PUT | /api/Linguistic/StyleGuide/v1/Templates/{culture} | Edit a style guide |
DELETE | /api/Linguistic/StyleGuide/v1/Templates/{culture} | Delete style guides |
StyleGuide can be specified as follows:
- Id (integer, optional): Id of style guide
- Name (string, optional): Name
- RulesConfiguration (integer, optional): Id of rules configuration
- SynonymsConfiguration (integer, optional): Id of synonyms configuration
- UserLexiconConfiguration (integer, optional): Id of user lexicon configuration
- TerminologyConfiguration (integer, optional): Id of terminology configuration
Linguistic: StyleGuide Configurations
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/{type} | Creates some configuration of the specified culture and type |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/{type} | Gets some configuration of the specified culture and type |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/{type} | Edit configurations |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/{type} | Delete configurations |
Attributes for Configurations:
- Id (integer, optional): Id of existing configuration
- Name (string, optional): Configuration name
Parameters:
- culture (string)
- type (string): Rules, UserLexicon, Synonyms, Terminology
- request
The request should be included in the body in the following form:
Linguistic: StyleGuide Rules
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Rules/{configurationId} | Gets language check rules for specific language and configuration |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Rules/{configurationId} | Edit rules configuration |
Linguistic: StyleGuide Synonyms
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Synonyms/{configurationId} | Adds new synonyms |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Synonyms/{configurationId} | Get synonyms |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Synonyms/{configurationId} | Edit synonyms |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Synonyms/{configurationId} | Delete synonyms |
Linguistic: StyleGuide Terminology
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/TermCandidateFilters | Adds new term candidate filters |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/TermCandidateFilters | Gets term candidate filters |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/TermCandidateFilters | Edit term candidate filter |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/TermCandidateFilters | Delete term candidate filter |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/VariantsRecognition | Gets terminology variants recognition rules for the specified language and configuration |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/Terminology/{configurationId}/VariantsRecognition | Edit terminology variants recognition rules configuration |
Linguistic: StyleGuide User Lexicon
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns | Adds new term candidate filters |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns | Gets term candidate filters |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns | Edit term candidate filter |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns | Delete term candidate filter |
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations | Adds new abbreviations |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations | Gets all abbreviations |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations | Edit abbreviation |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations | Deletes abbreviations by Id |
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings | Adds new Incorrect Spellings |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings | Get all Incorrect Spellings |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings | Edit Incorrect Spellings |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings | Deletes an Incorrect Spelling by Id |
POST | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits | Adds new Measuring Units |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits | Get all Measuring Units |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits | Edit Measuring Units |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits | Deletes a Measuring Unit by Id |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/SystemLexiconValidation | Validates content in the system UserLexicon |
Linguistic: StyleGuide User Lexicon Word forms
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns/{entryId}/Forms | Get all word forms for the specified Noun entry |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns/{entryId}/Forms | Store word forms for the specified Noun entry |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Nouns/{entryId}/Forms | Clear configured word forms for the specified Noun entry |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations/{entryId}/Forms | Get all word forms for the specified Abbreviation entry |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations/{entryId}/Forms | Store word forms for the specified Abbreviation entry |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/Abbreviations/{entryId}/Forms | Clear configured word forms for the specified Abbreviation entry |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits/{entryId}/Forms | Get all word forms for the specified Measuring unit entry |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits/{entryId}/Forms | Store word forms for the specified Measuring unit entry |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/MeasuringUnits/{entryId}/Forms | Clear configured word forms for the specified Measuring unit entry |
GET | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings/{entryId}/Forms | Get all word forms for the specified Incorrect spelling entry |
PUT | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings/{entryId}/Forms | Store word forms for the specified Incorrect spelling entry |
DELETE | /api/Linguistic/StyleGuide/v1/Configurations/{culture}/UserLexicon/{configurationId}/IncorrectSpellings/{entryId}/Forms | Clear configured word forms for the specified Incorrect spelling entry |
Document settings
GET | /congree/api/Settings/v1/Document | Gets list of available document-specific rule sets |
[ "string" ]
GET | /congree/api/Settings/v1/Document/{RulesetName} | Gets all document-specific rule set settings |
{RulesetName} is the name of the document-specific rule set. Available settings groups are described here.
{ <Settings group name>: <Settings object> }
GET | /congree/api/Settings/v1/Document/{RulesetName}/{SettingsGroupName} | Gets specified document-specific rule set settings |
{SettingsGroupName} is the name of the settings group. Parameter can contain a set of comma separated groups. Available settings groups are described here.
{ <Settings group name>: <Settings object> }
Available document-specific rule set settings groups
Language settings
Group name: LanguageSettings
Structure:
{ "Language": string }
Language Check Report configuration
Group name: LinguisticReportingConfiguration
Structure (corresponds to LinguisticReportConfiguration, see Congree Bulk Check Service documentation, Type definitions - IBulkCheckSettingsService - Document settings XML description):
{ "ConfigurationName": string, "Language": string, "WordCountFactor": double, "HighRatingLimit": double, "HighRatingName": string, "MediumRatingLimit": double, "MediumRatingName": string, "LowRatingLimit": double, "LowRatingName": string, "Rules": [ { "RuleName": string, "CategoryType": string, "Weight": double } ], "Categories": [ { "ErrorType": string, "Priority": double } ] }
Paragraph recognition settings
Group name: ParagraphRecognition
"ParagraphRecognition": { "IsAutomaticMode": bool, "SymbolsAmountToCheck": int, "CheckUnitDefinitions": [ { "Name": string, "Treatment": string, "StructureClass": string, "Parents": string, "Attributes": string, "Rules": [ { "ErrorType": string, "ErrorCode": string, "IsDeactivated": bool } ] } ], "InlineElementDefinitions": [ { "Name": string, "Treatment": string, "IsReadOnly": bool, "LanguageCheckSpecifics": string, "Parents": string, "Attributes": string } ] }
Reporting
POST | /congree/api/Reporting/v1/Linguistic | Stores the Language Check Report. |
The report should be included in the body in following form:
DocumentId - is guid which uniquely identifies the document.
{ "DocumentRuleSet": "string", "DocumentId": "00000000-0000-0000-0000-000000000000", "TotalCheckedWords": 0, "ReleaseLevel": 0, "RelativeReleaseLevel": 0, "ErrorData": [ { "ErrorType": "Abbreviation", "ErrorCount": 0, "ErrorSeverity": 0 } ] }
You can build report based on the response of linguistic check with parameter "IncludeReporting": true.
Third-party settings
The current third-party system is defined at authorization step.
GET | /congree/api/Settings/v1/ThirdParty/Current | Gets all settings of the current third-party system. |
{ <Settings group name>: <Settings object> }
GET | /congree/api/Reporting/v1/ThirdParty/Current/{SettingsGroupName} | Gets settings of the current third-party system specified by the settings group. |
{SettingsGroupName} support comma separated set of settings groups.
{ <Settings group name>: <Settings object> }
Available Third-party settings groups
Congree Web Interface
Represents settings from group "Congree Web Interface" for Bulk Check Service.
Group name: CongreeWebInterfaceSettings
Structure:
{ "Rules": [ { "Rule": string, "RuleSets": [ string ] } ] }
Tasks
Tasks endpoints allows to get the current status of the asynchronous task and it result.
GET | /congree/api/Tasks/v1/Status/{taskId} | Gets task status |
{ "State": "string", "ErrorInfo": { "Code": int, "Message": "string" } }
Available states: Pending, InProgress, Success, Failed
ErrorInfo present in state Failed only. In other cases it is null.
GET | /congree/api/Tasks/v1/Result/{taskId} | Gets task result |
Available only for finished tasks (states: Success, Failed)
{ "Result": <result object> }
In failed state "Result" contains ErrorInfo object. In success state - corresponding result. Result available 5 minutes after the task is completed.
Terminology
POST | /congree/api/Terminology/v1/TermCandidate?ruleSet={ruleSetName}&addOnlyUnknown={true or false} | Stores new term candidate |
Term candidate should be included in the body in following form (corresponding to the TermCandidateModel class, see Congree Bulk Check Service documentation, Type definitions - IBulkCheckService - DataGrooming-related types).
{ "Text": "string", "Context": "string" }
GET | /congree/api/Terminology/v1/SearchTerm?ruleSet={ruleSetName}&term={term text}&culture={CultureName} | Searches term in terminology system |
The culture name in the format languagecode2-country/regioncode2. languagecode2 is a lowercase two-letter code derived from ISO 639-1. country/regioncode2 is derived from ISO 3166 and usually consists of two uppercase letters, or a BCP-47 language tag.
Responce structure corresponds Type definitions - IBulkCheckService - Terminology-related types.
[ { "Concept": { "ConceptId": 0, "Properties": [ { "Values": [ "string" ], "Name": "string" } ], "Definitions": [ { "Culture": "string", "Text": "string", "Note": "string" } ], "Synonyms": [ { "Id": 0, "Term": "string", "Properties": [ { "Values": [ { "Usage": "string", "Value": "string", "IsMultiValue": boolean } ], "Name": "string" } ] } ] }, "Id": 0, "Term": "string", "Properties": [ { "Values": [ { "Usage": "string", "Value": "string", "IsMultiValue": boolean } ], "Name": "string" } ] } ]