# Google Cloud Translation (`seemuapps/google-cloud-translation`) Actor

Translate a list of texts into any target language using the Google Cloud Translation API. Bulk-translate scraped content, product descriptions, reviews, or support tickets at scale.

- **URL**: https://apify.com/seemuapps/google-cloud-translation.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** Developer tools, AI, Automation
- **Stats:** 7 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 characters translated (per 100)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Cloud Translation

Bulk-translate any list of text into 130+ languages using Google's Cloud Translation API - no glue code, no auth headaches, just paste, run, and export.

### What you get

- **One translation per input string** - order preserved, indexed for easy joins
- **Auto-detect source language** by default, or lock it in with an ISO 639-1 code
- **HTML-safe mode** that preserves tags and entities during translation
- **Smart batching** - up to 100 strings and 25,000 characters per API request, so 10,000 short rows go through in seconds
- **Per-row error tolerance** - a failed batch logs an error on each row in that batch and the run keeps going
- **Character-level metering** so you can see exactly what each row cost

### Use cases

- **Localise scraped product descriptions** for multi-region ecommerce stores
- **Translate support tickets and reviews** before piping them into sentiment analysis or LLM summarisation
- **Multilingual content pipelines** - push blog posts, FAQs, or marketing copy through one actor, get N language variants back
- **Ecommerce product translation** - bulk-localise titles, descriptions, and attribute values across catalogues
- **Translate scraped reviews/comments** from any platform (Trustpilot, Amazon, Google Maps, TikTok) into one working language for analysis

### How to use

1. Paste your strings into the **Texts** field - one per entry
2. Set **Target Language** (ISO 639-1 code, e.g. `es`, `fr`, `de`, `ja`, `zh-CN`)
3. Optionally set **Source Language** - leave empty to auto-detect per row
4. Choose **Format**: `text` (default) or `html` if your strings contain markup
5. Run the actor - results land in the **Dataset** tab, one row per input string

Full list of supported language codes: <https://cloud.google.com/translate/docs/languages>

### Output format

Each dataset record:

```json
{
  "index": 1,
  "originalText": "Hello, world",
  "translatedText": "Hola, mundo",
  "detectedSourceLanguage": "en",
  "targetLanguage": "es",
  "characterCount": 12,
  "status": "success",
  "error": null
}
```

- `index` is 1-based and matches the order of your input
- `detectedSourceLanguage` is populated when source was auto-detected; `null` if you passed an explicit `source`
- `characterCount` is the length of the original input string - used for pricing visibility
- On failure, `status` is `"error"`, `translatedText` is `null`, and `error` contains the reason - the run continues with the remaining rows

### Pricing & credits

This actor is **pay-per-event** - you only pay for what you translate.

- **Actor start** - a small flat fee per run
- **Characters translated** - billed in **100-character units, rounded up** per successfully translated row. A 12-character string costs 1 unit; a 250-character string costs 3 units.
- Failed rows are **not** charged.

See the actor's pricing tab in the Apify Console for current rates.

# Actor input Schema

## `texts` (type: `array`):

List of text strings to translate. Each entry is translated independently.

## `target` (type: `string`):

ISO 639-1 language code to translate into (e.g. 'es', 'fr', 'de', 'ja', 'zh-CN'). See https://cloud.google.com/translate/docs/languages.

## `source` (type: `string`):

ISO 639-1 source language code. Leave empty to let Google auto-detect the source language for each text.

## `format` (type: `string`):

How the input texts should be interpreted. Use 'html' to preserve HTML markup during translation.

## Actor input object example

```json
{
  "texts": [
    "Hello, world",
    "How are you today?",
    "The quick brown fox jumps over the lazy dog"
  ],
  "target": "es",
  "format": "text"
}
```

# Actor output Schema

## `results` (type: `string`):

One record per input text: index, originalText, translatedText, detectedSourceLanguage, targetLanguage, characterCount, status, error.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "texts": [
        "Hello, world",
        "How are you today?",
        "The quick brown fox jumps over the lazy dog"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/google-cloud-translation").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "texts": [
        "Hello, world",
        "How are you today?",
        "The quick brown fox jumps over the lazy dog",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/google-cloud-translation").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "texts": [
    "Hello, world",
    "How are you today?",
    "The quick brown fox jumps over the lazy dog"
  ]
}' |
apify call seemuapps/google-cloud-translation --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seemuapps/google-cloud-translation",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Ne45lh7Nfeai7lIbf/builds/UddmeHWhEO0Ga4Fqa/openapi.json
