API documentation
API - Mars QA 1.2.1
Last updated
API - Mars QA 1.2.1
Last updated
Welcome to the MarsQA API (Application Programming Interface) documentation. MarsQA's API is a simple, convenient, and secure way to access MarsQA functionality from third-party applications programmatically. You can request a trial by visiting https://qax.marshub.com and contacting us via the feedback form.
To use this document, you should have a basic familiarity with software development and the MarsQA user interface.
This is a new API. The caller only provides data to be verified. Verification options and operations are set and operated by the user.
After creation, the caller and user interface cannot modify the file list and data, but can verify the data multiple times.
POST {{endpoint}}/api/v1/session
JSON Field | Description | Required |
---|---|---|
Create verify session example
POST /api/v1/session HTTP/1.1
Content-Type: application/json
Authorization: Bearer <your_token>
...
{
"editorURLTemplate": "<Optional>",
"callbackUrl": "<your_url>",
"files": [
{
"type": "file",
"docId": "your_doc_id",
"filename": "SamplePhotoPrinter.doc.sdlxliff",
"uri": "https://marsqa.oss-cn-hongkong.aliyuncs.com/0rux4gwov7cp4ub7.sdlxliff"
},
{
"type": "segment",
"docId": "your_doc_id",
"filename": "your_filename.mqxliff",
"srcLang": "en-US",
"trgLang": "zh-CN",
"content": [
{
"source": "The world is beautiful",
"target": "世界很美好"
},
...
]
},
...
]
}
You will get a Session ID
{
"sid": "nam5tbxlmjzpbksq"
}
Then open the link in your browser: {{endpoint}}/verify/:sessionId
, If authentication results already exist for the session, the results of the most recent request are displayed.
Every time the user clicks the "Verify" button, after the verification is successful, the URL of the message verification report will be sent to the callbackUrl
{
"url":"xxx"
}
GET {{endpoint}}/api/v1/session/:sessionId/requests
Response example
[
{
"requestId": "202312111647-5494",
"fileCount": 2,
"title": "Multiple document QA (2 files)",
"segCount": 1,
"charCount": 0,
"mtCharCount": 0,
"createdAt": 1702284446000,
"duration": 1,
"status": "Succeeded",
"sessionId": "t7aludu4c8erp80y"
},
...
]
Get results: GET {{endpoint}}/api/v1/report/:requestId
Get the latest results of session: GET {{endpoint}}/api/v1/session/:sessionId/last
This API has added permission verification, you need API Token to access
Punctuation Checker Options
Space Checker Options
POST {{endpoint}}/api/v1/verify
Example
POST /api/v1/verify HTTP/1.1
Content-Type: application/json
Authorization: Bearer <your_token>
{
"editorURLTemplate": "<Optional>",
"callbackURL": "<Optional>",
"async": false,
"input": [ <File Array> ],
"filter": {
"excludeLockedSegments": true,
"excludeICESegments": true,
"exclude100Segments": true,
"excludeReviewed": false
},
"verify": [...]
...
}
Field Descriptions
Error Codes
POST {endpoint}/api/v1/verify
You need to set async to false
, which will directly respond to the verification results.
Request
{
"editorURLTemplate": "",
"callbackURL": "",
"async": false,
"input": [ <File Array> ],
"filter": {
"excludeLockedSegments": true,
"excludeICESegments": true,
"exclude100Segments": true,
"excludeReviewed": false
},
"verify": [...]
...
}
Response (Status is Succeeded)
{
"id": "202209211808-9753",
"status": "Succeeded",
"info": {
"duration": 1,
"checkFileCount": 1,
"segmentCount": 199,
"checkSegmentCount": 81,
"createdAt": 1663754929118,
"mtCheckedChars": 0,
"mtMessage": null
},
"issues": [
<issue data>
],
"errors": []
}
POST {endpoint}/api/v1/verify
You need to set async to true
before sending the request, and then you will get a request ID. You can then use the request ID to actively fetch the validation results, or receive the results via a callback.
Request example
{
"editorURLTemplate": "",
"callbackURL": "<your callback url>",
"async": true,
"input": [ <File Array> ],
"filter": { ... },
"verify": [...]
...
}
Response example
{
"id": "202209211808-9753",
"status": "InProgress",
"errors": ""
}
Get result by callback
Callback on success
{
"id": "202209211808-9753",
"status": "Succeeded",
"info": { ... },
"issues": [...]
}
Callback on failure
{
"id":"202209211808-9753",
"status":"Failed",
"error":"..."
}
The result will be send to callbackUrl when QA has been completed.
GET {endpoint}/api/report/:id
id
path param, request_id
Example
GET {endpoint}/api/report/202209211808-9753
{
"id": "202209211808-9753",
"status": "Succeeded",
"info": { ... },
"issues": [...]
}
Generate shared links
POST {endpoint}/api/report/:requestId/share
Response
{
"token": "eyJ0eXAiO...",
"url": "xxx"
}
Shared link expires after seven days
Basic Group
[
{
"id": "InconsistencyTargetChecker",
"enable": true,
"description": "Inconsistency in Target",
"options": {
"ignoreCase": true,
"ignoreTags": true,
"ignoreEndPunctuation": true
}
},
{
"id": "InconsistencySourceChecker",
"enable": true,
"description": "Inconsistency in Source",
"options": {
"ignoreCase": true,
"ignoreTags": true,
"ignoreEndPunctuation": true
}
},
{
"id": "EmptyChecker",
"enable": true,
"description": "Empty Translation"
},
{
"id": "TargetSameAsSourceChecker",
"enable": true,
"description": "Target Same as Source"
}
]
Standard Group
[
{
"id": "PunctuationChecker",
"enable": true,
"description": "Punctuation Mismatch",
"options": {
"checkIncorrectPunctuation": false,
"checkMultiplePunctuation": true,
"checkBracketMismatch": true,
"checkPunctuationMismatch": true
}
},
{
"id": "TagChecker",
"enable": true,
"description": "Tag Mismatch"
},
{
"id": "URLChecker",
"enable": true,
"description": "URL Mismatch"
},
{
"id": "CamelCaseChecker",
"enable": true,
"description": "Camel Case Mismatch"
},
{
"id": "AllUppercaseChecker",
"enable": true,
"description": "All Uppercase Mismatch"
},
{
"id": "AlphanumericChecker",
"enable": true,
"description": "Alphanumeric Mismatch"
},
{
"id": "NumericChecker",
"enable": true,
"description": "Numeric Mismatch"
},
{
"id": "VariableChecker",
"enable": true,
"description": "Variable/Placeholder Mismatch",
"options": {
"regex": ""
}
},
{
"id": "TermChecker",
"enable": false,
"description": "Key Term Mismatch",
"options": {
"terms": []
}
},
{
"id": "SpaceChecker",
"enable": true,
"description": "Spaces Check",
"options": {
"checkMultipleSpaces": true,
"checkZeroWidthSpaces": true,
"checkSpacingBeforePunctuation": true,
"checkMissingSpaceAfterPunctuation": true,
"checkStartingSpaces": true,
"checkTrailingSpaces": true,
"checkExtraSpaces": true
}
},
{
"id": "RepeatedWordChecker",
"enable": false,
"description": "Repeated Words"
},
{
"id": "ForbiddenWordChecker",
"enable": true,
"description": "Forbidden Words",
"options": {
"dict": []
}
},
{
"id": "UnconfirmedChecker",
"enable": true,
"description": "Translation not Confirmed"
},
{
"id": "FuzzyMatchChecker",
"enable": true,
"description": "Unedited Fuzzy Match"
}
]
Advance Group
[
{
"id": "SpellChecker",
"enable": false,
"description": "Spell Check"
},
{
"id": "MachineTranslationChecker",
"enable": false,
"description": "Machine Translation Check",
"options": {
"showDiff": false,
"threshold": 90,
"percent": 10,
"engine": "Google Translate",
"userAvailableChars": 1000000
}
}
]
userAvailableChars
is the number of characters available to the user. If the number of characters in the machine translation spot-check is greater than this value, an error message will be returned.
Request body example
{
"editorURLTemplate": "<Optional>",
"callbackURL": "<Optional>",
"input": [
{
"type": "file",
"filename": "<file name>",
"url": "<base64(file)>"
}
],
"filter": {
"excludeLockedSegments": true,
"excludeICESegments": true,
"exclude100Segments": true,
"excludeReviewed": false
},
"verify": [
{
"id": "InconsistencyTargetChecker",
"enable": true,
"group": "Basic",
"description": "Inconsistency in Target",
"options": {
"ignoreCase": true,
"ignoreTags": true,
"ignoreEndPunctuation": true
}
},
{
"id": "InconsistencySourceChecker",
"enable": true,
"group": "Basic",
"description": "Inconsistency in Source",
"options": {
"ignoreCase": true,
"ignoreTags": true,
"ignoreEndPunctuation": true
}
},
{
"id": "EmptyChecker",
"enable": true,
"group": "Basic",
"description": "Empty Translation"
},
{
"id": "TargetSameAsSourceChecker",
"enable": true,
"group": "Basic",
"description": "Target Same as Source"
},
{
"id": "PunctuationChecker",
"enable": true,
"group": "Common",
"description": "Punctuation Mismatch",
"options": {
"checkIncorrectPunctuation": false,
"checkMultiplePunctuation": true,
"checkBracketMismatch": true,
"checkPunctuationMismatch": true
}
},
{
"id": "TagChecker",
"enable": true,
"group": "Common",
"description": "Tag Mismatch"
},
{
"id": "URLChecker",
"enable": true,
"group": "Common",
"description": "URL Mismatch"
},
{
"id": "CamelCaseChecker",
"enable": true,
"group": "Common",
"description": "Camel Case Mismatch"
},
{
"id": "AllUppercaseChecker",
"enable": true,
"group": "Common",
"description": "All Uppercase Mismatch"
},
{
"id": "AlphanumericChecker",
"enable": true,
"group": "Common",
"description": "Alphanumeric Mismatch"
},
{
"id": "NumericChecker",
"enable": true,
"group": "Common",
"description": "Numeric Mismatch"
},
{
"id": "VariableChecker",
"enable": true,
"group": "Common",
"description": "Variable/Placeholder Mismatch",
"options": {
"regex": ""
}
},
{
"id": "TermChecker",
"enable": true,
"group": "Common",
"description": "Key Term Mismatch",
"options": {
"terms": [
{
"source": "Example",
"target": "例子"
}
]
}
},
{
"id": "SpaceChecker",
"enable": true,
"group": "Common",
"description": "Spaces Check",
"options": {
"checkMultipleSpaces": true,
"checkZeroWidthSpaces": true,
"checkSpacingBeforePunctuation": true,
"checkMissingSpaceAfterPunctuation": true,
"checkStartingSpaces": true,
"checkTrailingSpaces": true,
"checkExtraSpaces": true
}
},
{
"id": "RepeatedWordChecker",
"enable": false,
"group": "Common",
"description": "Repeated Words"
},
{
"id": "ForbiddenWordChecker",
"enable": true,
"group": "Common",
"description": "Forbidden Words",
"options": {
"dict": [
"shameless",
"obscene",
"other"
]
}
},
{
"id": "UnconfirmedChecker",
"enable": true,
"group": "Common",
"description": "Translation not Confirmed"
},
{
"id": "FuzzyMatchChecker",
"enable": true,
"group": "Common",
"description": "Unedited Fuzzy Match"
},
{
"id": "SpellChecker",
"enable": false,
"group": "Advance",
"description": "Spell Check"
},
{
"id": "MachineTranslationChecker",
"enable": false,
"group": "Advance",
"description": "Machine Translation Check",
"options": {
"showDiff": false,
"threshold": 90,
"percent": 10,
"engine": "Google Translate/Microsoft Translate/Baidu Translate"
}
}
]
}
Response Example
{
"id": "tTEGQPIcxWWLssUNirvUzpNv",
"info": {
"duration": 1,
"checkFileCount": 1,
"checkSegmentCount": 68,
"createdAt": 1649233288155,
"mtCheckedChars": 0,
"mtMessage": null
},
"issues": [
{
"type": "EMPTY_TARGET",
"description": "Empty Translation",
"level": "Error",
"issues": [
{
"id": 2,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "2",
"segId": "2",
"source": "Error trying to connect server.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 3,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "3",
"segId": "3",
"source": "Please reload the game.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 4,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "4",
"segId": "4",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 6,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "5",
"segId": "5",
"source": "<a>Response Error</a>",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 7,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "6",
"segId": "6",
"source": "Please reload the game.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 8,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "7",
"segId": "7",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 10,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "8",
"segId": "8",
"source": "Insufficient Funds",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 11,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "9",
"segId": "9",
"source": "Sorry, you do not have enough funds in your balance.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 12,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "10",
"segId": "10",
"source": "Fund your account to continue playing.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 13,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "11",
"segId": "11",
"source": "Cancel",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 15,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "12",
"segId": "12",
"source": "Deposit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 16,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "13",
"segId": "13",
"source": "Option not available",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 17,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "14",
"segId": "14",
"source": "Impossible see this option.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 18,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "15",
"segId": "15",
"source": "Try with other options.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 19,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "16",
"segId": "16",
"source": "Okay",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 20,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "17",
"segId": "17",
"source": "Low Funds",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 21,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "18",
"segId": "18",
"source": "Sorry, you have low funds in your balance.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 22,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "19",
"segId": "19",
"source": "Cancel",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 24,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "20",
"segId": "20",
"source": "Deposit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 25,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "21",
"segId": "21",
"source": "Pending Game",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 26,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "22",
"segId": "22",
"source": "You have an open previous game.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 27,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "23",
"segId": "23",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 29,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "24",
"segId": "24",
"source": "Auto play Limit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 30,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "25",
"segId": "25",
"source": "You have research auto play loss limit of: {x}",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 31,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "26",
"segId": "26",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 33,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "27",
"segId": "27",
"source": "Auto play Limit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 34,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "28",
"segId": "28",
"source": "You have research auto play win limit of: {x}",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 35,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "29",
"segId": "29",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 37,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "30",
"segId": "30",
"source": "Auto play Finished",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 38,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "31",
"segId": "31",
"source": "All Auto Play games have been played.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 39,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "32",
"segId": "32",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 41,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "33",
"segId": "33",
"source": "Free Plays Available",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 42,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "34",
"segId": "34",
"source": "You have an active Promotion of {x} Free Plays with a Bet of {y}.",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 43,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "35",
"segId": "35",
"source": "Do you want to play it now?",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 44,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "36",
"segId": "36",
"source": "Cancel",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 46,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "37",
"segId": "37",
"source": "Ok",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 48,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "38",
"segId": "38",
"source": "GO!",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 49,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "39",
"segId": "39",
"source": "GO!",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 50,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "40",
"segId": "40",
"source": "PAYTABLE",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 51,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "41",
"segId": "41",
"source": "HELP",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 52,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "42",
"segId": "42",
"source": "FUN MODE",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 53,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "43",
"segId": "43",
"source": "Replay",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 54,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "44",
"segId": "44",
"source": "Touch",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 55,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "45",
"segId": "45",
"source": "Won at",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 56,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "46",
"segId": "46",
"source": "Bonus Available",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 57,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "47",
"segId": "47",
"source": "Free Spins Available",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 58,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "48",
"segId": "48",
"source": "Balance:",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 59,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "49",
"segId": "49",
"source": "Balance",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 60,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "50",
"segId": "50",
"source": "Win:",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 61,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "51",
"segId": "51",
"source": "Win",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 62,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "52",
"segId": "52",
"source": "Bet:",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 63,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "53",
"segId": "53",
"source": "Bet",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 64,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "54",
"segId": "54",
"source": "Free Spins",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 65,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "55",
"segId": "55",
"source": "Free Spins Won",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 66,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "56",
"segId": "56",
"source": "Bonus Won",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 67,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "57",
"segId": "57",
"source": "Coin Size",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 68,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "58",
"segId": "58",
"source": "Lines",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 69,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "59",
"segId": "59",
"source": "Total Bet:",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 70,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "60",
"segId": "60",
"source": "AUTO PLAY",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 71,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "61",
"segId": "61",
"source": "Advanced",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 72,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "62",
"segId": "62",
"source": "Loss Limit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 73,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "63",
"segId": "63",
"source": "Win Limit",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 74,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "64",
"segId": "64",
"source": "Promo",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 75,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "65",
"segId": "65",
"source": "Wins",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 76,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "66",
"segId": "66",
"source": "Select one item",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 77,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "67",
"segId": "67",
"source": "Select items",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 78,
"docId": null,
"type": "EMPTY_TARGET",
"tuId": "68",
"segId": "68",
"source": "You Won",
"target": "** Untranslated **",
"mt": null,
"mtsim": null,
"message": "Empty Translation",
"level": "Error",
"marks": null,
"groupId": null,
"filename": "document.mqxliff",
"url": null
}
],
"message": null
},
{
"type": "NUMERIC",
"description": "Numeric Mismatch",
"level": "Waring",
"issues": [
{
"id": 1,
"docId": null,
"type": "NUMERIC",
"tuId": "1",
"segId": "1",
"source": "Connection Error",
"target": "[mark1]0006[/mark1]",
"mt": null,
"mtsim": null,
"message": "Extra: 0006",
"level": "Waring",
"marks": [
{
"id": 1,
"type": "Target",
"start": 0,
"end": 4,
"text": "0006",
"message": "Numeric Mismatch",
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
}
],
"message": null
},
{
"type": "TERM",
"description": "Key Term Mismatch",
"level": "Waring",
"issues": [
{
"id": 5,
"docId": null,
"type": "TERM",
"tuId": "4",
"segId": "4",
"source": "[mark2]Ok[/mark2]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 2,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 9,
"docId": null,
"type": "TERM",
"tuId": "7",
"segId": "7",
"source": "[mark3]Ok[/mark3]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 3,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 14,
"docId": null,
"type": "TERM",
"tuId": "11",
"segId": "11",
"source": "[mark4]Cancel[/mark4]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Cancel",
"level": "Waring",
"marks": [
{
"id": 4,
"type": "Source",
"start": 0,
"end": 6,
"text": "Cancel",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 23,
"docId": null,
"type": "TERM",
"tuId": "19",
"segId": "19",
"source": "[mark5]Cancel[/mark5]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Cancel",
"level": "Waring",
"marks": [
{
"id": 5,
"type": "Source",
"start": 0,
"end": 6,
"text": "Cancel",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 28,
"docId": null,
"type": "TERM",
"tuId": "23",
"segId": "23",
"source": "[mark6]Ok[/mark6]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 6,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 32,
"docId": null,
"type": "TERM",
"tuId": "26",
"segId": "26",
"source": "[mark7]Ok[/mark7]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 7,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 36,
"docId": null,
"type": "TERM",
"tuId": "29",
"segId": "29",
"source": "[mark8]Ok[/mark8]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 8,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 40,
"docId": null,
"type": "TERM",
"tuId": "32",
"segId": "32",
"source": "[mark9]Ok[/mark9]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Ok",
"level": "Waring",
"marks": [
{
"id": 9,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 45,
"docId": null,
"type": "TERM",
"tuId": "36",
"segId": "36",
"source": "[mark10]Cancel[/mark10]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied:Cancel",
"level": "Waring",
"marks": [
{
"id": 10,
"type": "Source",
"start": 0,
"end": 6,
"text": "Cancel",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
},
{
"id": 47,
"docId": null,
"type": "TERM",
"tuId": "37",
"segId": "37",
"source": "[mark11]Ok[/mark11]",
"target": "",
"mt": null,
"mtsim": null,
"message": "Glossary term not applied: Ok",
"level": "Waring",
"marks": [
{
"id": 11,
"type": "Source",
"start": 0,
"end": 2,
"text": "Ok",
"message": null,
"highlight": true
}
],
"groupId": null,
"filename": "document.mqxliff",
"url": null
}
],
"message": null
}
],
"errors": []
}
JSON Field | Description | Required |
---|---|---|
Code | Description | |
---|---|---|
editorURLTemplate
Used to navigate to your translation editor
Y
callbackUrl
For receiving verification reports
N
files
Documents
Y
file.type
file
or segment
Y
file.filename
File Name
Y
file.uri
if type=file
URI is required
Y/N
file.content
Object Array, if type=segment
content is required
Y/N
file.srcLang
if type=segment
srcLang is required
Y/N
file.trgLang
if type=segment
trgLang is required
Y/N
editorURLTemplate
If you need to generate links for each Issue to link to your translation editor and navigate to rows, please specify this value; otherwise set to "". eg: https://www.example.com/editor/{docId}#{segId}
Y
async
If true
, you will quickly obtain the Report ID
and later obtain the report data by callback.
OR: GET /api/v1/report/{id}
N (default: false)
callbackURL
if async=true
callbackURL is required
N
input
Documents (JsonObject Array)
Y
input*.type
file
or segment
Y
input*.filename
file name
Y
input*.uri
if type=file
URI is required
Y/N
input*.content
if type=segment
content is required
Y/N
input*.srcLang
if type=segment
srcLang is required
Y/N
input*.trgLang
if type=segment
trgLang is required
Y/N
filter
Exclude segments
Y
filter.excludeLockedSegments
Exclude locked segments
Y
filter.excludeICESegments
Exclude ICE segments
Y
filter.exclude100Segments
Exclude 100% match segments
Y
filter.excludeReviewed
Exclude reviewed/proofreading segments
Y
verify
Checker list and settings (JsonObject Array)
Y
verify*.id
Checker ID
Y
verify*.enable
false: this check is skipped
Y
verify*.group
Group name
N
verify*.description
description
N
verify*.options
checker options
N
UNSUPPORTED_FILETYPE
File type not supported
Synch API
,Async API
INVALID_URI
Invalid URI, cannot download file
Synch API
READ_FILE_FAILED
Unable to read/parse file
Synch API
UNKNOWN_ERROR
Synch API