API 文件
用简单的RESTAPI, 将强大的翻译输入您的应用程序中。
开始
TranslateAPI为翻译180+语言之间的文本提供了一个简单的REST界面。所有 API 端点都返回 JSON 响应 。
https://api.translateapi.ai/api/v1/
快速启动
请提出您的第一份翻译请求 :
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!"
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add(
"Authorization", "Bearer YOUR_API_KEY"
);
var content = new StringContent(
JsonConvert.SerializeObject(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 = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
Console.WriteLine(data.translated_text); // "Hola, mundo!"
}
}
验证
使用 API 密钥验证您的请求。 您可以从您的 API 密钥创建 API 密钥 仪表板.
页头验证( 建议)
Authorization: Bearer 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) |
* 使用 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
}
多目标翻译
在单一请求中将文本翻译为多种语言。 使用与单一翻译相同的端点 。
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"Completed: {processed}/{total} texts in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
print(f"Failed at {processed}/{total}: {result.get('error_message', 'unknown')}")
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
queue_pos = result.get("queue_position", "?")
print(f"Queued (position {queue_pos}) — waiting for GPU worker...")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
反应(等待-排队,等待GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
反应(同时处理)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
答复(已完成)
{
"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 |
迄今完成的个别翻译数量,每个文本翻译时实时更新。 |
total_texts |
本批翻译总数(文本x目标语言)。 |
progress_percentage |
完成百分比(0-100)。根据已处理的文本/总文本计算。 |
queue_position |
当状态为“ 待定” ( 1 = 下一个上方) 时, 您在队列中的位置 。 处理或完成时为空 。 使用此选项来估计等待时间, 并向您的用户显示队列状态 。 |
processing_time |
总处理时间以秒计(完成时可用)。 |
status 是 "pending", GPU 的工人忙于其他批次。 queue_position 看看有多少工作提前完成 ( 1 = 您是下一个 ) 。 您的工作将自动开始 — — 不需要任何行动, 只需保持投票 。
大型工作量最佳做法
- 每批请求发送1种目标语言,使每批请求都能够快速进行,并容易追踪进展。
- 将批量保存在50-100文本中。 小批量的完成更快, 并向您提供更频繁的进度更新 。
- 最多在两个同时的批量任务中运行。 GPU 平行处理两个批次—— 额外的工作排队, 并且不会更快开始 。
- 超时时, 重新投放同一份工作_ id, 而不是提交新批次 。 最初的工作可能仍然在 GPU 上处理 。
- 每3-5秒投票一次,更频繁的投票无法加快处理速度。
多语言批次
立即将多种文本翻译成多种语言:
{
"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不是两者兼而有之
job_id. 扑球 GET /api/v1/jobs/{job_id}/ 直到 status 是 "completed",后读为 result_data 用于翻译。使用 progress_percentage 跟踪进展情况。
文件翻译
在保存格式的同时翻译整个文档。 支持多个文件格式 。
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 翻译文件.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"
.txt 文件。
响应
{
"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"
}
状况价值
pending |
文件已上传, 等待处理 |
processing |
翻译中 |
completed |
翻译完成,可下载 |
failed |
翻译失败( 检查错误(_Message) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
检查文档翻译的状态或检索下载的 URL 。
响应
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
语言检测
每一份翻译请求中都包含语言探测。 设置 source_language to "auto" (或省略)并在答复中返回所检测到的语言。
POST https://api.translateapi.ai/api/v1/translate/
请求机构
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
响应
{
"translated_text": "Hello, how are you?",
"source_language": "fr",
"target_language": "en",
"translations": {
"en": "Hello, how are you?"
},
"character_count": 28,
"translation_time": 0.52
}
缩略 source_language 在响应的字段中,显示在使用自动检测时所检测到的语言。
辅助语言
获取所有支持语言的清单 。
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 |
成功成功 |
400 |
错误请求 - 无效参数 |
401 |
未授权 - 无效或丢失 API 密钥 |
402 |
所需付款 -- -- 超过每日性格配额 |
429 |
请求过多 -- -- 利率超过限额 |
503 |
未可用服务 - 临时关闭翻译引擎 |
错误反应格式
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
限制利率
限制因计划而异。 定价定价 详细细节 :
| 计划计划计划 | 特征/月 | 价格价格价格 | |
|---|---|---|---|
| 自由 | 250,000 | $0 | 签署自由 |
| 启动启动器 | 2,500,000 | $9/以 单位 | 订阅 |
| 职业 | 10,000,000 | $29/以 单位 | 订阅 |
| 商业商业商商商商 | 40,000,000 | $79/以 单位 | 订阅 |
| 比例分摊比额表 比例比 | 125,000,000 | $199/以 单位 | 订阅 |
当你超过极限时,你会得到 429 Too Many Requests 回复到下个月或升级 。
Auto-Scaling Cloud Infrastructure
TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.