API 문서화

간단한 REST API로 강력한 번역 기능을 애플리케이션에 통합하십시오.

시작하기

TranslateAPI는 180개 이상의 언어 사이에서 텍스트를 번역하는 간단한 REST 인터페이스를 제공합니다. 모든 API 엔드포인트는 JSON 응답을 반환합니다.

기본 URL: 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 키를 사용하여 요청을 인증할 수 있습니다. 대시보드.

헤더 인증( 권장)
Authorization: Bearer ta_your_api_key_here
쿼리 매개 변수
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
API 키를 안전하게 보관하세요! 클라이언트 코드 또는 공개 저장소에 노출하지 마십시오.

텍스트 번역

단일 대상 언어로 텍스트를 번역합니다.

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
}

다중 대상 번역

단일 요청에서 텍스트를 여러 언어로 번역합니다. 단일 번역과 동일한 엔드포인트를 사용합니다.

종류: 한 번의 요청으로 최대 50개 언어로 번역할 수 있습니다.
POST https://api.translateapi.ai/api/v1/translate/
요청 본문
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

사용 target_languages (배열) 대신 target_language (문자열) 여러 대상에 대 한.

응답
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}

일괄 번역

비동기 처리로 한 번에 여러 개의 텍스트를 번역합니다. 결과에 대한 일괄 처리 및 투표를 제출합니다.

제한: 배치당 최대 500개의 텍스트, 총 최대 750개의 항목(텍스트 × 대상 언어). 작업은 처리가 시작된 후 30분 후에 시간이 초과됩니다(대기열 대기 시간은 포함되지 않음).
처리 시간은 언어에 따라 다릅니다. 일반적인 언어(스페인어, 프랑스어, 독일어 등)는 빠른 모델(텍스트당 ~0.1초)을 사용하는 반면, 덜 일반적인 언어는 대형 다국어 모델(텍스트당 ~1-3초)을 사용합니다. 일반적인 언어의 경우 100개의 텍스트로 구성된 배치는 일반적으로 10-30초 내에 완료되며, 덜 일반적인 언어의 경우 2-5분 내에 완료됩니다. 최상의 결과를 얻으려면 배치 요청 당 1개의 대상 언어를 보내고 배치 크기를 텍스트 50개 이하로 유지하십시오.
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}/
폴링 예제 (파이썬)
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 이 배치의 총 번역 수 (텍스트 × 대상 언어).
progress_percentage 완료 백분율 (0-100). processed_texts / total_texts에서 계산합니다.
queue_position 상태가 "보류 중" (1 = 다음) 이라면 대기열의 위치입니다. 처리되거나 완료되었을 때 Null입니다. 대기 시간을 추정하고 사용자에게 대기열 상태를 보여주기 위해 이것을 사용하십시오.
processing_time 초 단위의 총 처리 시간(완료되면 사용 가능).
종류: 언제 status 다음과 같습니다 "pending", GPU 작업자가 다른 배치 작업으로 바쁘다. Check queue_position 귀하의 작업보다 앞서 있는 작업이 얼마나 많은지 확인합니다(1 = 다음 작업자). 귀하의 작업은 자동으로 시작됩니다.
대규모 워크로드를 위한 모범 사례
  • 배치 요청 당 1개의 대상 언어를 보냅니다. 이렇게 하면 각 배치가 빠르게 진행되고 진행 상황을 쉽게 추적할 수 있습니다.
  • 50-100 텍스트에서 배치를 유지. 작은 배치는 빠르게 완료하고 더 자주 진행 상황 업데이트를 제공합니다.
  • 최대 2개의 동시 배치 작업을 실행합니다. GPU는 2개의 배치를 병렬로 처리하므로 추가 작업은 대기열에 올라와 더 빨리 시작되지 않습니다.
  • 시간이 초과되면 새 배치를 제출하는 대신 동일한 job_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 - Word 문서
  • .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)
OCR 지원: 이미지 파일과 스캔된 PDF는 광학 문자 인식(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"
이미지 파일은 번역 전에 텍스트를 추출하기 위해 OCR으로 처리됩니다. 번역된 출력은 텍스트 파일로 반환됩니다. .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 번역 실패 (check error_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 인프라에서 실행되는 최첨단 오픈 소스 번역 모델을 사용합니다. 모든 모델은 상업적으로 라이선스되어 있습니다(아파치 2.0).

모델 언어 가장 적합한
Helsinki-NLP/opus-mt 50개 이상의 언어 쌍 일반 언어 (영어, 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 러시아어, 중국어, 일본어 등)
Google MADLAD-400 400개 이상의 언어 지원 희귀 언어, 포괄적인 커버리지

API는 사용자의 언어 쌍에 가장 적합한 모델을 자동으로 선택합니다. engine 파라미터:

엔진 설명
"auto" 먼저 HuggingFace를 시도하고, 다시 MADLAD-400으로 돌아갑니다.
"huggingface" 강제 HuggingFace/MarianMT (가장 빠른, 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/% 1 초 구독하기
전문가 10,000,000 $29/% 1 초 구독하기
비즈니스 40,000,000 $79/% 1 초 구독하기
크기 조정 125,000,000 $199/% 1 초 구독하기

당신이 당신의 한계를 초과하면, 당신은 429 Too Many Requests 다음 달까지 응답 또는 업그레이드.

자동 확장 클라우드 인프라

TranslateAPI는 자동 수평 확장 기능이 있는 전용 NVIDIA A100 GPU 인스턴스에서 실행됩니다. 수요가 증가하면 추가 GPU 인스턴스가 몇 분 내에 실행되어 빠른 응답 시간을 유지합니다. 이는 API가 분당 하나의 요청에서 수천 개의 요청까지 거의 무제한의 동시 요청을 처리할 수 있다는 것을 의미합니다.

이 페이지 평가하기
평가해 주셔서 감사합니다!
/5 기준 평가