S8

simple8

Demo

Easy Read: See every API setting in action.

simple8 transforms complex content into structured Easy Read for people who need stronger language support. Compare Plain Language and Easy Read, complete and condensed output, optional quality hints and all four delivery patterns with live request and response examples.

Easy Read

simple8 transforms complex content into structured Easy Read for people who need stronger language support.

DIN-conformant German output

German plain-language output from simple8 conforms to DIN ISO 24495-1 and DIN 8581-1. German Easy Read output conforms to DIN SPEC 33429.

CMS, API and a one-line website widget

Integrate simple8 with WordPress, TYPO3, Drupal, Storyblok, and many other systems, connect it through the API, or add the website widget with one line of JavaScript.

Hosted and operated in Germany

simple8 is hosted and operated entirely in Germany. Hosting and data processing comply with the GDPR.

99.9% monthly availability SLA

simple8 provides a 99.9% monthly availability SLA for the production API.

Interactive example

Request and response change with each setting.

Here you can directly see how simple language, easy language, complete or condensed answers and optional quality information work together.

Input

Source text and settings

240 / 1000 characters

Mode

Output detail

API request

{
  "text": "To speed up processing, users must first check their personal information after registering successfully, update it if necessary and then confirm the process online. After confirmation, they will receive a message explaining the next steps.",
  "locale": "en",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": false
  }
}

Output

Easy Read

Completed940 ms

After sending, the streamed translation will appear here.

API response

{
  "requestId": "simple8_case_01",
  "cacheStatus": "hit",
  "durationMs": 940,
  "locale": "en",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": false
  },
  "output": {
    "text": "Log in. Check your information. Correct any inaccurate information online. Confirm the process digitally. You will then receive a message. The message contains the next steps."
  }
}

Four API architectures

All four patterns solve the same technical task, but with different transport logic.

The choice depends on whether the result is needed immediately, whether progress should be visible and whether the calling system can actively wait, poll or be notified via event.

01

Synchronous HTTP request

A request goes in and the finished response comes back in the same HTTP connection.

Suitable for

Direct actions in the user interface, short texts and low latency

02

One request + streaming response

A request starts processing, the response comes back step by step as a stream.

Suitable for

Longer content, progressive UI, visible processing progress

03

Async job + polling

The first request creates a job, then the client queries the status repeatedly.

Suitable for

Batch processing, backends, longer jobs without a persistent open connection

04

Async job + webhook

The first request creates a job, the completion message comes back later via a webhook.

Suitable for

CMS workflows, event architecture, reliable system-to-system integration

The four patterns

Concept, technical implementation and concrete examples for each architecture.

01

Synchronous HTTP request

A request goes in and the finished response comes back in the same HTTP connection.

Output API

The calling system sends a request and actively waits for the result. `mode` and `settings` are passed in the same request and directly determine the form of the response.

We send individual form texts directly to simple8 and immediately receive the appropriate language version for the selected mode.

API

  • A `POST /api/translate` with text, language mode and settings is typical.
  • If successful, the API directly returns `200 OK` with the simplified text.
  • If `qualityHints=false`, the response does not contain additional quality hints.
POST /api/translate
{
  "text": "Für die Beantragung des Personalausweises bringen Sie bitte Ihren alten Ausweis oder Reisepass sowie ein aktuelles Lichtbild mit.",
  "mode": "simple-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": false
  }
}

200 OK
{
  "requestId": "req_sync_001",
  "cacheStatus": "miss",
  "durationMs": 980,
  "mode": "simple-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": false
  },
  "output": {
    "text": "Wenn Sie einen Personalausweis beantragen, bringen Sie bitte Ihren alten Ausweis oder Reisepass und ein aktuelles Foto mit."
  }
}

02

One request + streaming response

A request starts processing, the response comes back step by step as a stream.

Output API

The client only starts one request, but does not remain blind until the end. Instead of a single final response, they receive ongoing status or content updates over the same connection.

Our editorial team should see which version is currently being created and, if necessary, immediately receive the quality information.

API

  • The request contains the same technical options as in the synchronous pattern: `mode`, `rewriteScope` and optionally `qualityHints`.
  • The client processes events such as `status`, `delta` and `completed` without issuing new requests.
  • If `qualityHints` is active, the final `completed` message may contain additional quality hints.
POST /api/translate/stream
{
  "text": "Nach der Beantragung des Personalausweises erhalten Sie ein Schreiben, sobald das Dokument in der Behörde zur Abholung bereitliegt.",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": true
  }
}

event: status
data: {"state":"processing","mode":"easy-language"}

event: delta
data: {"chunk":"Nach dem Antrag bekommen Sie ein Schreiben.\n"}

event: delta
data: {"chunk":"Dann wissen Sie: Ihr Ausweis liegt bereit.\n"}

event: completed
data: {
  "requestId": "req_stream_001",
  "cacheStatus": "miss",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "complete",
    "qualityHints": true
  },
  "output": {
    "text": "Nach dem Antrag bekommen Sie ein Schreiben.\nDann wissen Sie: Ihr Ausweis liegt bereit.",
    "qualityHints": [
      "Die Ausgabe nutzt sehr kurze Sätze mit klarer Reihenfolge."
    ]
  }
}

03

Async job + polling

The first request creates a job, then the client queries the status repeatedly.

Output API

The actual processing is decoupled from the first HTTP call. The calling system immediately receives a job ID and later controls itself when it queries the status again.

Our backend collects a lot of texts and later specifically asks which mode variant is ready.

API

  • A `POST` creates a job and saves the selected combination of mode and settings.
  • The client polls `GET /api/jobs/{id}` at intervals until `queued`, `running`, `completed` or `failed` is reported.
  • Polling is well suited when condensed or analyzed versions are classified into larger batch flows.
POST /api/jobs
{
  "text": "Für die Beantragung des Personalausweises müssen Sie persönlich im Bürgeramt vorsprechen. Minderjährige brauchen die Zustimmung der Sorgeberechtigten.",
  "mode": "simple-language",
  "settings": {
    "rewriteScope": "condensed",
    "qualityHints": true
  }
}

202 Accepted
{
  "jobId": "job_poll_001",
  "status": "queued"
}

GET /api/jobs/job_poll_001
{
  "jobId": "job_poll_001",
  "status": "completed",
  "mode": "simple-language",
  "settings": {
    "rewriteScope": "condensed",
    "qualityHints": true
  },
  "output": {
    "text": "Für den Personalausweis müssen Sie persönlich ins Bürgeramt gehen.",
    "qualityHints": [
      "Die Ausgabe konzentriert sich auf die wichtigsten Aussagen und lässt Nebendetails weg."
    ]
  }
}

04

Async job + webhook

The first request creates a job, the completion message comes back later via a webhook.

Output API

Here too, processing is started asynchronously. Unlike polling, the client does not query the status repeatedly, but is actively notified as soon as a result or error is available.

Our CMS decides for each content whether simple language or easy language is used and only saves the finished version after the webhook.

API

  • In addition to the technical data, the start request also transmits mode, settings and `webhookUrl`.
  • Upon completion, the API sends a signed `POST` event to the target system.
  • Webhook flows are particularly useful when feeding different output modes into publishing or release processes.
POST /api/jobs
{
  "text": "Wenn Sie Ihren Personalausweis beantragen, können Gebühren anfallen. Bitte bringen Sie die erforderlichen Unterlagen vollständig zum Termin mit.",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "condensed",
    "qualityHints": false
  },
  "webhookUrl": "https://cms.example.com/webhooks/simple8"
}

202 Accepted
{
  "jobId": "job_hook_001",
  "status": "queued"
}

POST https://cms.example.com/webhooks/simple8
simple8-signature: sha256=...

{
  "event": "job.completed",
  "jobId": "job_hook_001",
  "mode": "easy-language",
  "settings": {
    "rewriteScope": "condensed",
    "qualityHints": false
  },
  "output": {
    "text": "Für den Personalausweis können Gebühren anfallen.\nBringen Sie bitte alle nötigen Unterlagen mit."
  }
}