Translations
Import a translation file
POST
/translations/importNeedscontent.editSend the file's text. With dryRun (the default) nothing is written and you get the plan; dryRun: false writes every new or changed cell in one transaction. Empty cells are skipped — an import never deletes a translation.
Authorization
secretKeyheader
AuthorizationBearer <sk_…>A secret API key from Settings → API keys. It acts with its creator's role.
Request Body
application/json- body
format*stringValue in
"csv""xliff"content*stringLength
1 <= length <= 5242880dryRun?booleanDefault
trueResponse Body
The plan (and what was applied)
application/json- response
dryRun*booleanformat*stringValue in
"csv""xliff"languages*array<string>ignoredColumns*array<string>summary*errors*array<>changes*array<>changesTruncated*booleanapplied?Shell
curl -X POST 'https://app.cueston.com/api/translations/import' \
-H 'Content-Type: application/json' \
-d '{
"format": "csv",
"content": "Export any report as CSV from here."
}'Example Response
JSON
{
"dryRun": true,
"format": "csv",
"languages": [
"string"
],
"ignoredColumns": [
"string"
],
"summary": {
"rows": 0,
"new": 0,
"changed": 0,
"unchanged": 0,
"invalid": 0,
"skipped": 0
},
"errors": [
{
"row": 0,
"key": "string",
"language": "string",
"message": "string"
}
],
"changes": [
{}
],
"changesTruncated": true,
"applied": {
"translations": 0,
"items": 0
}
}