REST API Reference
The Lingowright API is organized around REST. All requests accept and return JSON. The base URL for all endpoints is https://api.lingowright.com.
Authentication
Authenticate using your API key in the Authorization header:
cURL
$ curl https://api.lingowright.com/v1/locales \
-H "Authorization: Bearer lwr_pk_your_api_key"
POST /v1/jobs — Upload a string file
Create a new translation job by uploading a source file. Returns a job ID you can poll for status.
Request
$ curl -X POST https://api.lingowright.com/v1/jobs \
-H "Authorization: Bearer lwr_pk_your_api_key" \
-F "file=@locales/en.json" \
-F "locales=de,fr,ja,ar"
Response 201 Created
{
"id": "job_8f2k9n1x",
"status": "queued",
"source_locale": "en",
"target_locales": ["de", "fr", "ja", "ar"],
"string_count": 847,
"created_at": "2026-03-12T14:02:11Z"
}
GET /v1/jobs/{id} — Check job status
Response 200 OK
{
"id": "job_8f2k9n1x",
"status": "complete",
"progress": {
"translated": 847,
"total": 847
},
"warnings": [
{
"key": "pay.proceed_button",
"locale": "de",
"type": "char_limit_near",
"char_count": 29,
"char_limit": 30
}
],
"completed_at": "2026-03-12T14:02:58Z"
}
GET /v1/jobs/{id}/output — Download translated files
Returns a zip archive containing translated files for all target locales, in the same format as the uploaded source file.
cURL
$ curl https://api.lingowright.com/v1/jobs/job_8f2k9n1x/output \
-H "Authorization: Bearer lwr_pk_your_api_key" \
-o output.zip
$ unzip output.zip -d locales/
de.json fr.json ja.json ar.json
GET /v1/locales — List supported locales
Response 200 OK
{
"locales": [
{ "code": "de", "name": "German", "rtl": false },
{ "code": "ar", "name": "Arabic", "rtl": true, "plural_forms": 6 },
{ "code": "ja", "name": "Japanese", "rtl": false }
]
}