Translate thousands of strings in one call

Batch translation takes a list of items instead of a single string. One call fans out into per-chunk child tickets that run in parallel, and the results come back one per input item, in the order you submitted them. Billing is per item, and items answered by an approved override are refunded. Batch runs over the API only, and it is turned on per application.

A single string versus a batch

The single-string call fits a form field or a support reply: one input, one result, one ticket to poll. A batch fits a list you already have in hand. Instead of issuing 4,000 calls from a loop and tracking 4,000 tickets, you send the list once and follow one batch while its chunks run underneath.

  • Single: one string in, one result out, one ticket to poll
  • Batch: a list in, one batch to poll, one result per item in submission order
  • Chunks inside a batch run in parallel, not one after another

You pay per item, and approved overrides come back

A batch is billed per item, and an item is one string in one target language, so what a run costs is proportional to what you actually sent. Items answered by an approved override are refunded once the run settles, which is where review work turns directly into a smaller bill. A cache hit is billed at the ordinary per-item rate, which already has that saving built into it.

Limits, and how a batch is split

One batch takes up to 5,000 items, where an item is one string paired with one target language — the same text going into three markets is three items. The platform splits the list into chunks and dispatches each chunk as its own child ticket, so a long list makes progress on several chunks at once instead of queueing behind a single long job. Lists longer than the cap are sent as more than one batch.

How you call it, and how it gets switched on

Batch is an API capability: you send the list, keep the batch id, and poll it until the items are done. It is meant to be driven from an importer, a CMS sync or a nightly job rather than clicked in a browser — the tool form on this site submits one string at a time and cannot send a list. It is also granted per application: an org admin turns it on from the Console (Applications → the app → the API-only pipelines card), and until then a batch call from that app is rejected.

When a chunk fails

A child chunk is all-or-nothing: if it fails, every item in that chunk fails with it, and the other chunks in the batch are unaffected. You resend the failed chunk's items rather than the whole catalogue, and items already answered elsewhere in the batch keep their results.

FAQ

How many items can one batch hold?

Up to 5,000 items, counting one string in one target language as one item. Send longer lists as several batches; batches are independent of each other.

Can I start calling batch on my own account today?

Yes — once an admin enables it on your application in the Console. Batch is granted per application: an org admin turns it on from Applications → the app → the API-only pipelines card, and a call from an app that has not been granted it is rejected. Single-string translation needs no such step and is available straight away.

If one chunk fails, do I lose the whole batch?

Failure is scoped to the child chunk. Every item in that chunk fails together, the remaining chunks keep their results, and you resend only the failed chunk's items.

What am I charged for a batch where most items are already translated?

Every item in the batch is billed, and items answered by an approved override are refunded once the run settles. Content that only the cache can answer is still charged at the per-item rate, which already accounts for that saving.

See pricing