Documentation

Choose how your system receives the result.

{
  "text": "Complex source content in the selected language.",
  "locale": "en",
  "mode": "simple-language"
}

SDK and cURL examples available

Synchronous HTTP

Every pattern uses the same core fields: text, locale, and mode.

Endpoint

POST /api/v2/translate

Best for

Short content and direct backend actions.

Success

200 OK

Streaming

The response uses Content-Type: text/event-stream.

Endpoint

POST /api/v2/translate/stream

Best for

Progressive interfaces and longer content.

json
{
  "text": "Source content in the selected language.",
  "locale": "en",
  "mode": "easy-language"
}
text
event: meta
data: {"requestId":"req_stream_001","locale":"en","mode":"easy-language"}

event: delta
data: {"delta":"Complete result."}

event: done
data: {"usage":{"inputCharacters":42,"cacheHit":false}}

The stream emits one meta event, one or more delta events, and a final done event.

The meta event contains the request identifier, locale, and mode.

Each delta contains a part of the result, and done contains the usage information.

After done, the connection closes.

Async job with polling

Send a unique Idempotency-Key header when creating a job.

Create endpoint

POST /api/v2/jobs

Status endpoint

GET /api/v2/jobs/{id}

json
{
  "text": "Source content in the selected language.",
  "locale": "fr",
  "mode": "simple-language",
  "delivery": {
    "type": "polling"
  }
}
json
{
  "jobId": "job_poll_001",
  "status": "queued"
}
json
{
  "jobId": "job_poll_001",
  "status": "completed",
  "locale": "fr",
  "mode": "simple-language",
  "output": {
    "text": "Simplified content in French."
  }
}

Jobs remain available for seven days.

Poll at a reasonable interval until the status is completed or failed.

Async job with webhook

Create and verify a webhook endpoint in the Simple8 application first. Then reference its endpoint ID in the job.

Create endpoint

POST /api/v2/jobs

json
{
  "text": "Source content in the selected language.",
  "locale": "de",
  "mode": "easy-language",
  "delivery": {
    "type": "webhook",
    "endpointId": "00000000-0000-4000-8000-000000000000"
  }
}
json
{
  "id": "evt_01",
  "type": "job.completed",
  "createdAt": "2026-08-06T12:00:00.000Z",
  "data": {
    "jobId": "job_hook_001",
    "status": "completed"
  }
}

Simple8 sends a Simple8-Signature header with a timestamp and an HMAC SHA-256 signature.

Verify the signature against the raw request body with the signing secret shown once when the endpoint is created.

Return any 2xx status after accepting the event.

Failed deliveries are retried up to 50 times over seven days, and recent attempts are visible in the application.

Receivers must tolerate duplicate delivery because retries can deliver the same event more than once.

Batch processing

Send between 1 and 50 items with a combined maximum of 500,000 characters.

Create endpoint

POST /api/v2/batches

Status endpoint

GET /api/v2/batches/{id}

Each item uses the same text, locale, and mode fields as a synchronous request.

Choose polling or a verified webhook endpoint for delivery and send a unique Idempotency-Key header.