Translation infrastructure for the agent era.
A human pasting text into a form and an agent calling an API thousands of times an hour are different workloads. The difference changes caching, batching, pricing and rate limiting, and FluentC is built around it.
curl -X POST https://api.fluentc.ai/ai_agent/translate \
-H "Authorization: $FLUENTC_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Hello, world!",
"input_format": "text",
"target_language": "es",
"source_language": "en",
"mode": "real-time"
}'{
"status": "complete",
"translation": "¡Hola, mundo!",
"token_count": 15,
"source_language_detected": "en"
}curl -X POST https://api.fluentc.ai/ai_agent/translate \
-H "Authorization: $FLUENTC_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "<h1>Welcome</h1><p>This is a sample page.</p>",
"input_format": "html",
"target_language": "fr",
"mode": "batch"
}'{
"job_id": "abc123def456"
}curl -X POST https://api.fluentc.ai/ai_agent/results \
-H "Authorization: $FLUENTC_KEY" \
-H "Content-Type: application/json" \
-d '{ "job_id": "abc123def456" }'{
"status": "processing",
"estimated_wait_seconds": 5,
"next_poll_after": "2024-01-15T10:30:00Z"
}curl https://api.fluentc.ai/ai_agent/languages \
-H "Authorization: $FLUENTC_KEY"{
"supported_languages": [
{ "code": "es", "name": "Spanish" },
{ "code": "fr", "name": "French" }
],
"source_languages": [
{ "code": "en", "name": "English" }
]
}Four things the giants make hard. We make them defaults.
Translate inside an agent.
Call the API from LangChain, n8n, Zapier, or your own code. Sub-200ms responses, predictable rate limits, no surprises in the bill.
tool_call: fluentc.translate
text: "How may I help?"
target: "ja"
← "ご用件をお伺いします"Translate at batch scale.
Push up to 50,000 rows per request. Translation memory means the second pass is cheaper and faster than the first.
mode: "batch"
← { "job_id": "abc123def456" }
POST /ai_agent/results
← { "status": "complete", … }Detect, then translate.
Don't know what language is coming in? FluentC figures it out and routes accordingly. One call instead of two.
→ { "input": "안녕하세요", "target_language": "en" }
← { "translation": "Hello",
"source_language_detected": "ko" }Keep your formatting.
JSON stays JSON. HTML stays HTML. We don't make you put it back together.
→ { "title": "Welcome", "cta": "Start now" }
← { "title": "ようこそ", "cta": "今すぐ開始" }Six parts, one API.
Translation API
One endpoint takes text, HTML or JSON. Authenticate with your API key in the Authorization header. No SDK required.
POST /ai_agent/translateReal-time translation
Synchronous requests with SHA-256 content-addressed caching. An identical string comes back from cache in 7 to 11 ms, with no model call.
mode: "real-time"Batch translation
Up to 50,000 rows per request across 32 parallel workers. JSON is walked, each string translated on its own, and the result reassembled in the original shape.
mode: "batch"Translation memory
Strings you've already translated are stored and reused, so repeated content isn't retranslated or billed again. Included, not upsold.
on by defaultLanguage detection
Leave out source_language and FluentC detects it, then tells you what it found. Or detect on its own, without translating.
POST /ai_agent/checklanguage128+ languages
Ask which languages are enabled for your key, then pass any of them as target_language. Configurable per agent.
GET /ai_agent/languagesBuilt for the way agents fail and retry.
Hash-keyed caching
The cache key is a SHA-256 of the content. Exact matches only, so there are no fuzzy-match surprises in what comes back.
Deterministic job IDs
The same batch submitted twice maps to the same job. Resubmitting after a timeout is safe.
Built-in retries
Five attempts on timeouts, ten on rate limits, before a request is reported as failed.
Parallel JSON batches
Thirty-two workers walk the structure, translate each value independently and reassemble the original shape.
Four endpoints.
The base URL is https://api.fluentc.ai. Send your API key in theAuthorization header. The documentation covers every field, and the OpenAPI spec loads straight into your tools.
| Method | Path | What it does |
|---|---|---|
POST | /ai_agent/translate | Translate text, HTML or JSON in real-time or batch mode. Batch returns a job_id. |
POST | /ai_agent/checklanguage | Detect the language of text or HTML. |
POST | /ai_agent/results | Fetch a batch job by job_id: complete, processing (with a wait estimate) or failed. |
GET | /ai_agent/languages | List the target and source languages enabled for your key. |
Five fields.
| Field | Type | Notes |
|---|---|---|
input | string | Required. The text, HTML or JSON to translate. |
input_format | string | Required. text or html. |
target_language | string | Required. ISO 639-1 or 639-2 code, such as es, fr or de. |
source_language | string | Optional. Detected automatically when you leave it out. |
mode | string | Required. real-time or batch. |
Plain status codes.
| Status | Meaning |
|---|---|
401 | The API key is missing, or no site matches it. |
403 | The subscription isn't active, or a usage limit has been reached. |
422 | The request is invalid: missing input, an unsupported input_format, or a target language that isn't enabled for your key. |
Make your first call today.
Create a key, paste the curl, read the response.