开始
TranslateAPI为翻译180+语言之间的文本提供了一个简单的REST界面。所有 API 端点都返回 JSON 响应 。
1. 获得您的 API 密钥
创建一个自由账户并从仪表板上生成您的 API 密钥 :
- 注册时间 translateapi.ai/signup
- 转到 仪表板 → APIP 键键
- 点击“ 创建 API 密钥” 并复制您的密钥
API 键首键开始于 ta_ 之后是56个十六进制字符。
https://api.translateapi.ai/api/v1/2. 提出第一次请求
用您的仪表板上的密钥替换您的 API_ Key:
curl -X POST https://api.translateapi.ai/api/v1/translate/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, world!",
"target_language": "es"
}'
import requests
response = requests.post(
"https://api.translateapi.ai/api/v1/translate/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"text": "Hello, world!",
"target_language": "es"
}
)
result = response.json()
print(result["translated_text"]) # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
text: "Hello, world!",
target_language: "es"
})
});
const result = await response.json();
console.log(result.translated_text); // "Hola, mundo!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"text" => "Hello, world!",
"target_language" => "es"
])
]);
$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"]; // "Hola, mundo!"
payload := strings.NewReader(`{
"text": "Hello, world!",
"target_language": "es"
}`)
req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"]) // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
var content = new StringContent(
JsonSerializer.Serialize(new {
text = "Hello, world!",
target_language = "es"
}),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://api.translateapi.ai/api/v1/translate/", content);
var result = JsonSerializer.Deserialize<JsonElement>(
await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text")); // "Hola, mundo!"
响应
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
验证
使用 API 密钥验证您的请求。 您可以从您的 API 密钥创建 API 密钥 仪表板.
页头验证( 建议)
Authorization: Bearer ta_your_api_key_here
ApiKey 信头
Authorization: ApiKey ta_your_api_key_here
查询参数
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
翻译文本
将文本翻译为单一目标语言 。
POST https://api.translateapi.ai/api/v1/translate/
请求机构
| 参数 | 类型类型类型 | 所需 | 说明说明 |
|---|---|---|---|
text |
string | 是 是 | 要翻译的文本 (最多 50,000 个字符) |
target_language |
string | 是* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | 否 无 | Source language code. Default: "auto" (auto-detect) |
engine |
string | 否 无 | 翻译引擎 : “ 自动”( 默认 ) 、 “ 粗脸 ” 或 “ madlad ” 。 见 翻译模型 。 翻译模型. |
* 使用 target_language 单语或单语(字符串),或 target_languages 多重 (数组) 。 见 多目标翻译.
响应
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language 或设置为 "auto" 来自动检测源语言。检测到的语言返回到 source_language 反应字段。
多目标翻译
在单一请求中将文本翻译为多种语言。 使用与单一翻译相同的端点 。
POST https://api.translateapi.ai/api/v1/translate/
请求机构
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
使用使用 target_languages (阵列)而不是 target_language (string) 针对多个目标。
响应
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
批批次翻译
立即翻译多个文本并进行同步处理。 提交批次和民意测验结果 。
POST https://api.translateapi.ai/api/v1/translate/batch/
步骤1:提交批次批次
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": ["Hello", "Goodbye", "Thank you"],
"target_language": "es",
"source_language": "en"
}'
答复(HTTP 202接受)
{
"job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
"status": "pending",
"total_texts": 3,
"queue_position": 1,
"source_language": "en",
"target_languages": ["es"],
"character_count": 22,
"credits_remaining": -1,
"poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
步骤2:结果投票
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
投票示例 (Python)
import time, requests
job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}
print(f"Batch submitted: {total} texts (job {job_id})")
while True:
result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
status = result["status"]
processed = result.get("processed_texts", 0)
progress = result.get("progress_percentage", 0)
if status == "completed":
print(f"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
print(f"Queued (position {result.get('queue_position', '?')})")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
答复(已完成)
{
"job_id": "67535b2b-...",
"status": "completed",
"processed_texts": 3,
"total_texts": 3,
"progress_percentage": 100.0,
"processing_time": 10.65,
"result_data": {
"translations": ["Hola", "Adiós", "Gracias"],
"source_language": "en",
"target_language": "es",
"character_count": 22,
"processing_time": 10.65
}
}
实时进度跟踪
| 外地 | 说明说明 |
|---|---|
status |
pending (排队等待一个GPU工人) processing (积极翻译), completed, failed |
processed_texts |
迄今完成的个别翻译数量,每个文本翻译时实时更新。 |
progress_percentage |
完成百分比(0-100)。根据已处理的文本/总文本计算。 |
queue_position |
当状态为“ 待定” ( 1 = 下一个上方) 时, 您在队列中的位置 。 处理或完成时为空 。 使用此选项来估计等待时间, 并向您的用户显示队列状态 。 |
processing_time |
总处理时间以秒计(完成时可用)。 |
多语言批次
立即将多种文本翻译成多种语言:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
已完成结果_ 数据
{
"translations": [
{"es": "Hola", "fr": "Bonjour"},
{"es": "Adiós", "fr": "Au revoir"}
],
"source_language": "en",
"target_languages": ["es", "fr"],
"character_count": 24,
"processing_time": 2.45
}
请求参数
| 参数 | 类型类型类型 | 所需 | 说明说明 |
|---|---|---|---|
texts |
array | 是 是 | 要翻译的字符串排列 |
target_language |
string | 是* | 单一语言目标语言代码 |
target_languages |
array | 是* | 多种语文目标语言代码的排列 |
source_language |
string | 否 无 | Source language code. Default: "auto" |
* 提供 target_language 或 target_languages不是两者兼而有之
大型工作量最佳做法
- 每批请求发送1种目标语言,使每批请求都能够快速进行,并容易追踪进展。
- 将批量保存在50-100文本中。 小批量的完成更快, 并向您提供更频繁的进度更新 。
- 提供所需的批量工作——我们的GPU集群自动标尺处理需求,工作在多种情况下平行处理。
- 超时时, 重新投放同一份工作_ id, 而不是提交新批次 。 最初的工作可能仍然在 GPU 上处理 。
- 每3-5秒投票一次,更频繁的投票无法加快处理速度。
文件翻译
在保存格式的同时翻译整个文档。 支持多个文件格式 。
POST https://api.translateapi.ai/api/v1/translate/document/
请求(多部分/格式数据)
| 参数 | 类型类型类型 | 所需 | 说明说明 |
|---|---|---|---|
file |
file | 是 是 | 要翻译的文档( 最大 10MB) |
target_language |
string | 是 是 | Target language code (e.g., "es", "fr", "de") |
source_language |
string | 否 无 | Source language code. Default: "auto" (auto-detect) |
支持的文件类型
文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件
.txt- 纯文本文件.docx- 单词文档.pdf- PDF文件(包括扫描)
数据与本地化
.json- JSON 文件( 翻译字符串值).xml- XML 文件.srt- 字幕文件.po/.pot- Gettext 翻译文件
图像 (OCR)
.jpg/.jpeg- JPEG 图像( OCR).png- PNG 图像( OCR).tiff/.tif- TIFF 图像(OCR).bmp- BMP 图像( OCR).webp- WebP 图像( OCR)
示例(cURL)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.docx" \
-F "target_language=es" \
-F "source_language=en"
# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@scanned_page.jpg" \
-F "target_language=es" \
-F "source_language=en"
响应
{
"id": 123,
"original_filename": "document.docx",
"file_type": "docx",
"source_language": "en",
"target_language": "es",
"status": "completed",
"character_count": 5420,
"translated_file_url": "/media/translated/document_es.docx",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:05Z"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
检查文档翻译的状态或检索下载的 URL 。
状况价值
pending |
文件已上传, 等待处理 |
processing |
翻译中 |
completed |
翻译完成,可下载 |
failed |
翻译失败( 检查错误(_Message) |
辅助语言
获取所有支持语言的清单 。
GET https://api.translateapi.ai/api/v1/translate/languages/
响应
{
"count": 186,
"results": [
{"iso": "en", "name": "English", "en_label": "English"},
{"iso": "es", "name": "Español", "en_label": "Spanish"},
{"iso": "fr", "name": "Français", "en_label": "French"},
...
]
}
翻译模型
我们使用在自己的GPU基础设施上运行的最先进的开放源码翻译模型。 所有模型都有商业许可(Apache 2. 0)。
| 型 型 | 语言语言语言语言语言 | 最佳 |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+语文配对 | 通用语言(EN、ES、FR、DE、IT、PT、RU、ZH、JA等) |
| Google MADLAD-400 | 400+语言 | 少数语言,全面覆盖 |
API 自动自动为您的语言配对选择最佳模式。您可以选择指定 engine 参数 :
| 引擎引擎 | 说明说明 |
|---|---|
"auto" |
默认值。 首先, Tries Huggging Face 将返回到 MADLAD- 400 。 |
"huggingface" |
Huggging Face/MarimanMT(最快,50+语言) |
"madlad" |
部队MADLAD-400(400+语言) |
错误处理错误处理
API使用标准 HTTP 状态代码来表示成败。
| 《法典法典法典》 | 说明说明 |
|---|---|
| 200 | 成功成功 |
| 202 | 已经接受 - 批批工作已成功排入队列 |
| 400 | 错误请求 - 无效参数( 缺少文本、 不支持的语言等) |
| 401 | 未授权 - 无效或丢失 API 密钥 |
| 402 | 付款要求- 字符信用已用完。 更新计划或购买补丁 。 |
| 403 | 禁止使用 - API 密钥缺少所需的范围或未列在白名单上的 IP |
| 503 | 未可用服务 - 临时关闭翻译引擎 |
错误反应格式
{
"error": "insufficient_credits",
"credits_remaining": 0
}
使用限制
TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:
| 计划计划计划 | 特征/月 | 批次 APIP | 文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件文件 | 价格价格价格 | |
|---|---|---|---|---|---|
| 自由 | 250,000 | — | — | $0 | 签署自由 |
| 启动启动器 | 2,500,000 | $9/以 单位 | 订阅 | ||
| 职业 | 10,000,000 | $29/以 单位 | 订阅 | ||
| 商业商业商商商商 | 40,000,000 | $79/以 单位 | 订阅 | ||
| 比例分摊比额表 比例比 | 125,000,000 | $199/以 单位 | 订阅 | ||
| Enterprise | Unlimited | $499/以 单位 | Contact Sales |
当你超过极限时,你会得到 402 Payment Required 回复到下个月或升级 。
自动缩小云云基础设施
翻译API 运行在专用的 NVIDIA A100 GPU 实例上, 自动水平缩放。 当需求增加时, 会在几分钟内启动额外的 GPU 实例, 以保持快速响应时间 。 所有请求都排队处理, 发送成百上千个同时提出的请求, 并且它们都会被处理 。 实时翻译得到优先处理, 批量工作程序在背景中 。
需要更多信贷吗?
购买一次性信用补充贷款 而不改变你的计划 查看上上加的包