Skip to main content

Text Translation API

Translate text using the GPT Translator API.

Endpoint

POST https://api.gpttranslator.co/v1/translation/text-translation/api

Authentication

Add your API key in request headers:

x-api-key: YOUR_API_KEY
Content-Type: application/json

Request Body

Required fields:

  • text string: Source text to translate
  • sourceLang string: Source language code
  • targetLang string: Target language code
  • model string: Translation model name

Optional fields:

  • domain string: Domain specialization
  • writingStyle string: Writing style preference
  • tone string: Tone preference
  • customPrompt string: Custom translation instructions

Language codes are documented separately in Supported Languages. Supported models are documented in Supported Models.

Validation Rules

  • text: Required. Cannot be empty.
  • sourceLang, targetLang: Must match ^[a-zA-Z]+(-[a-zA-Z]+)?$, min 2 chars, max 11 chars. Must be a code from Supported Languages.
  • model: Must be one of the values in Supported Models.

Examples

cURL

curl --location 'https://api.gpttranslator.co/v1/translation/text-translation/api' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"text": "hello world",
"sourceLang": "en",
"targetLang": "fr",
"model": "gpt-4.1-mini-2025-04-14"
}'

JavaScript

const response = await fetch(
"https://api.gpttranslator.co/v1/translation/text-translation/api",
{
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "hello world",
sourceLang: "en",
targetLang: "fr",
model: "gpt-4.1-mini-2025-04-14",
}),
},
);

const data = await response.json();
console.log(data);

Python

import requests

url = "https://api.gpttranslator.co/v1/translation/text-translation/api"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"text": "hello world",
"sourceLang": "en",
"targetLang": "fr",
"model": "gpt-4.1-mini-2025-04-14"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Response Types

Success 200

{
"message": "Text translation completed successfully",
"error": null,
"data": {
"translatedText": "bonjour le monde",
"originalText": "hello world",
"totalWords": 2,
"isRTL": false,
"tokensConsumed": 3
},
"statusCode": 200
}

Request Validation Error 400

Validation middleware errors are returned in this format:

{
"error": "Invalid source language. Please select a supported language."
}

Other possible validation errors:

  • Invalid target language. Please select a supported language.
  • Invalid model type. Please enter a valid model type e.g. ...
  • Text cannot be empty.
  • Text is required.

API Key Missing/Invalid Header 401

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 401,
"data": null
}

API Key or User Setup Errors 400

Invalid key in database:

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 400,
"data": null
}

User not active:

{
"message": "User not found or user is not active",
"error": "User not found or user is not active",
"statusCode": 400,
"data": null
}

Organization missing:

{
"message": "Organization Id not found for the user",
"error": "Organization Id not found for the user",
"statusCode": 400,
"data": null
}

Plan Restriction 402

{
"message": "only subscribed users are allowed to use this model",
"error": "only subscribed users are allowed to use this model",
"data": null,
"statusCode": 402
}

Token Limit Reached 402

{
"message": "You have reached the limit of words for translation. Please upgrade your plan to continue using this feature.",
"error": "You have reached the limit of words for translation. Please upgrade your plan to continue using this feature.",
"data": {
"requiredTokens": 123,
"tokens": 45
},
"statusCode": 402
}

Processing/Server Error 500

{
"message": "Error in text translation for api",
"error": "Detailed server error message",
"data": null,
"statusCode": 500
}