WE-TRANSLATE / API V1
Translation API
Create professional linguistic translation orders from your application. Pricing and payment use your We-translate account rates and balance.
Getting started
- Sign in and create a key with the required permissions. The full key is displayed once.
- Keep the key on your server and send it only over HTTPS in the Authorization header.
- Start by reading your profile. Read-only keys can read data and request quotes. Creating and submitting orders requires a write key.
GET https://api.we-translate.biz/v1/user/view
Authorization: Bearer YOUR_API_KEY
Accept: application/jsonThe same data and keys are also available at: https://we-translate.biz/api/v1
Order workflow
This version supports text translations across 19 languages and four services: general, business, literary and legal. Languages accept codes such as en, ru and de, or catalogue identifiers. Files, audio and creating other customers are not supported in this version.
1. Create a draft and review its price
Creating a draft does not debit funds or send work to a translator. Its quote is valid for 10 minutes. external_id is an optional unique reference from your system.
curl 'https://api.we-translate.biz/v1/order/create-as-draft' \
-H "Authorization: Bearer $WT_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: draft-your-unique-reference-001' \
--data '{"service":"general","from":"en","to":"ru",
"source_text":"The translation text goes here.",
"external_id":"your-order-001"}'
{"ok":true,"status":201,"order":{
"id":"d_0123456789abcdef0123456789abcdef",
"status":"draft","word_count":5,
"total":{"currency":"EUR","amount_minor":100,"amount":"1.00"}
}}The example response is abbreviated. Always use the actual returned price and identifier. The minimum order price is EUR 1.
2. Approve the price and submit for work
curl 'https://api.we-translate.biz/v1/order/in-work?id=DRAFT_ID' \
-H "Authorization: Bearer $WT_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: submit-your-unique-reference-001' \
--data '{"quoted_amount_minor":100}'This operation debits your balance and creates a normal We-translate order. Send the exact integer number of euro cents from total.amount_minor. The response contains the numeric order ID also displayed in your dashboard.
3. Read progress and retrieve the result
GET https://api.we-translate.biz/v1/order/view?id=ORDER_ID
Authorization: Bearer YOUR_API_KEYStatuses: waiting, translating, returned, moderation and complete. translated_text is returned only after completion and approval. The original draft ID is also accepted. Polling once every 30–60 seconds is sufficient.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /user/view | Your account ID, username and balance |
| GET | /order/get-data-for-create-order | Languages, directions, rates and service types |
| POST | /order/quote | Quote without saving; same input fields as a draft |
| POST | /order/create-as-draft | Create a draft |
| POST | /order/in-work?id=DRAFT_ID | Debit balance and submit to the queue |
| GET | /order/view?id=ORDER_ID | Your order and its completed result |
| GET | /order/index?page=1&per_page=20 | Your non-deleted orders in the current table; up to 100 per page |
| POST | /order/delete?id=DRAFT_ID | Cancel an unsubmitted draft; send {} |
Historical orders moved to the archive are currently outside this list. Contact support to cancel an order that is already in work.
Retries and errors
Draft creation, submission and cancellation require Idempotency-Key: 16–128 characters using letters, digits, dots, colons, hyphens or underscores. Use a new key for each new operation. If a response is lost, repeat the same operation with the same parameters and the same key.
Submitting an already submitted draft does not create another order or debit the balance again. Changed parameters with an existing key return 409. Recreate an expired draft and review the new quote.
401— invalid, revoked or expired key.402— insufficient account balance.403 / 404— operation not permitted or an owned order was not found.409— idempotency, quote or state conflict.422— check request fields.429— 60 requests per key and 20 POST requests per account per minute; respect Retry-After.503— temporary error; preserve the original Idempotency-Key when retrying a debit.
Every response includes request_id for support. Timestamps use UTC; amount_minor values are integer euro cents. API access does not record a website sign-in. Keys stop working after a password change.
Unsubmitted draft text is removed after seven days. The technical request log is retained for 90 days and does not contain translation content or API keys.