Documentation

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

Comparez les réponses directes, Streaming, les commandes de fond et Webhooks. Toutes les variantes utilisent du texte, du code vocabulaire et du mode.

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.

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}}

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}

json
{
  "text": "Source content in the selected language.",
  "locale": "fr",
  "mode": "simple-language",
  "delivery": {
    "type": "polling"
  }
}
json
{
  "jobId": "job_poll_001",
  "status": "queued",
  "expiresAt": "2026-09-03T12:00:00.000Z"
}
json
{
  "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

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 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.

json
{
  "items": [
    {
      "text": "First source text.",
      "locale": "en",
      "mode": "simple-language"
    },
    {
      "text": "Second source text.",
      "locale": "de",
      "mode": "easy-language"
    }
  ],
  "delivery": {
    "type": "polling"
  }
}
json
{
  "batchId": "batch_001",
  "status": "queued",
  "itemCount": 2
}
json
{
  "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.

Commencez à utiliser Simple8 gratuitement.

Créez votre compte gratuit et utilisez jusqu'à 15 000 caractères gratuitement chaque mois.