Comparez les réponses directes, Streaming, les commandes de fond et Webhooks. Toutes les variantes utilisent du texte, du code vocabulaire et du mode.
Choisissez comment votre système reçoit le résultat.
{
"text": "Contenu source complexe dans la langue sélectionnée.",
"locale": "fr",
"mode": "simple-language"
}Exemples de SDK et cURL disponibles
HTTP synchrone
Point de terminaison
POST /api/v2/translate
Idéal pour
Les textes courts dont les résultats sont immédiatement nécessaires.
Succès
200 OK
Diffusion en continu
La réponse utilise Content-Type : text/event-stream.
Point de terminaison
POST /api/v2/translate/stream
Idéal pour
Pour des contenus plus longs dont le résultat doit être affiché étape par étape.
{
"text": "Source content in the selected language.",
"locale": "en",
"mode": "easy-language"
}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}}Le flux commence par meta, puis un ou plusieurs morceaux de texte suivent en delta.
Le premier événement contient l'ID de la demande, le code de langue et le mode.
Chaque delta contient une partie du résultat et done contient les informations d'utilisation.
Une fois terminé, la connexion se ferme.
Travail asynchrone avec sondage
Envoyez un en-tête Idempotency-Key unique lors de la création d’un travail. Pour les nouvelles tentatives, utilisez la même clé, sans espaces au début ni à la fin, de 1 à 255 caractères. La première création renvoie 202 et une répétition renvoie 200.
Créer un point de terminaison
POST /api/v2/jobs
Point de terminaison d'état
GET /api/v2/jobs/{id}
{
"text": "Source content in the selected language.",
"locale": "fr",
"mode": "simple-language",
"delivery": {
"type": "polling"
}
}{
"jobId": "job_poll_001",
"status": "queued",
"expiresAt": "2026-09-03T12:00:00.000Z"
}{
"jobId": "job_poll_001",
"status": "completed",
"locale": "fr",
"mode": "simple-language",
"output": "Simplified content in French.",
"expiresAt": "2026-09-03T12:00:00.000Z"
}Les emplois restent disponibles pendant sept jours.
Une tâche passe par les états queued, processing, completed ou failed. Les tâches en échec incluent error.code. Les réponses de création et de statut incluent expiresAt.
Recherchez d'abord le statut après une seconde. Augmentez progressivement la distance pour un traitement plus long.
Travail asynchrone avec webhook
Créez et vérifiez d'abord un point de terminaison webhook dans l'application Simple8. Référencez ensuite son ID de point de terminaison dans le travail.
Créer un point de terminaison
POST /api/v2/jobs
{
"text": "Source content in the selected language.",
"locale": "de",
"mode": "easy-language",
"delivery": {
"type": "webhook",
"endpointId": "00000000-0000-4000-8000-000000000000"
}
}{
"id": "evt_01",
"type": "job.completed",
"createdAt": "2026-08-06T12:00:00.000Z",
"data": {
"jobId": "job_hook_001",
"status": "completed"
}
}Simple8 envoie Simple8-Signature au format t=<timestamp>,v1=<signature>. <timestamp> est un horodatage Unix exprimé en secondes. La signature est la sortie hexadécimale en minuscules d'un HMAC SHA-256 calculé sur <timestamp>.<raw request body>.
Vérifiez la signature par rapport à la demande inchangée. Vous verrez la clé de signature secrète une fois lors de la création du point de terminaison.
Renvoyez HTTP 200 ou 201 dès que votre système accepte l’événement.
Répétitions: en cas d'erreur, Simple8 tente de répéter la livraison dans les sept jours jusqu'à 50 fois.
Double événement: Traiter chaque ID d'événement une seule fois, car une répétition peut envoyer le même événements à nouveau.
Traitement par lots
Envoyez entre 1 et 50 éléments avec un maximum combiné de 25 000 caractères.
Créer un point de terminaison
POST /api/v2/batches
Point de terminaison d'état
GET /api/v2/batches/{id}
Chaque élément utilise les mêmes champs de texte, de paramètres régionaux et de mode qu'une requête synchrone.
Choisissez une interrogation ou un point de terminaison de webhook vérifié pour la livraison et envoyez un en-tête Idempotency-Key unique.
{
"items": [
{
"text": "First source text.",
"locale": "en",
"mode": "simple-language"
},
{
"text": "Second source text.",
"locale": "de",
"mode": "easy-language"
}
],
"delivery": {
"type": "polling"
}
}{
"batchId": "batch_001",
"status": "queued",
"itemCount": 2
}{
"batchId": "batch_001",
"status": "completed",
"itemCount": 2,
"items": [
{
"jobId": "job_001",
"status": "completed",
"locale": "en",
"mode": "simple-language",
"output": "First result."
},
{
"jobId": "job_002",
"status": "failed",
"locale": "de",
"mode": "easy-language",
"error": {
"code": "processing_failed"
}
}
]
}La création d’un lot renvoie HTTP 202 la première fois et HTTP 200 lors d’une répétition idempotente. Les événements webhook sont job.completed, job.failed, batch.completed et batch.failed. Les payloads des webhooks terminés contiennent uniquement des identifiants et le statut. Consultez l’endpoint de statut de la tâche ou du lot pour obtenir le résultat.