Stored data

Base URL https://api.suisse-speech.ch/v1 · X-API-Key

No content is stored

Synthesised audio and transcripts are processed in memory and not stored: identical texts are synthesised again each time. Every response reports cache: "miss" (the field and the X-Suisse-Cache header stay for compatibility), and POST /tts/prewarm stores nothing: its phrases come back skipped, and nothing is synthesised or billed. The one exception is a key for which you have asked us in writing to keep audio of fixed prompts (below).

Keeping audio of fixed prompts (per key, on request)

Fixed prompts (a greeting, a hold message, a handover, a goodbye) can be kept for an API key, so that they play back without synthesis delay and sound identical on every call. This is off for every key and is enabled by us, per API key, on your written instruction naming the key and the longest time audio may be kept (at most 30 days). GET /capabilities (cache.enabled) and GET /tts/cache tell you whether it is enabled for the key you call with.

On such a key, POST /tts, POST /jobs, POST /tts/prewarm and session.start of the realtime stream take cache: "use" (serve the kept rendering of exactly this request, or render it and keep it), "refresh" (render anew and replace it) or "off" (read nothing, keep nothing), and cache_ttl_s (from 60 seconds to the key’s maximum). Without cache the key’s default applies, normally off. On a key without it, both fields are ignored and responses report "miss", as before. Keep audio only for fixed text: dynamic text with personal data belongs on "off".

A kept rendering is identified by the exact text and markup, the model, the voice, the language and dialect, the speed and the style; one rendering serves every audio format. Answers report cache as hit, partial, miss, refresh or off, with cache_expires_at and cache_entry (ce_…) in the JSON envelope and X-Suisse-Cache-Expires on the audio. On the realtime stream, segment.done carries the same fields and session.complete counts the passages.

curl -H "X-API-Key: $SUISSE_SPEECH_KEY" https://api.suisse-speech.ch/v1/tts/cache                 # counts and expiries, never texts
curl -X DELETE -H "X-API-Key: $SUISSE_SPEECH_KEY" https://api.suisse-speech.ch/v1/tts/cache/ce_…  # one rendering
curl -X DELETE -H "X-API-Key: $SUISSE_SPEECH_KEY" https://api.suisse-speech.ch/v1/tts/cache       # everything the key keeps

A deletion takes effect at once. Kept audio is also deleted when it expires, when the live key is rolled or a key is revoked, and when keeping audio is switched off for the key. It is kept per key and never shared between keys or accounts, encrypted at rest (AES-256), identified by a one-way hash (the text itself is not stored), only on our servers in Switzerland, and in no backup. Every second delivered is billed as before, whether rendered or served from the cache; GET /v1/usage reports the share served from the cache in cached_seconds.

Batch jobs keep their result only until it is collected (48 hours at most); the text of a synthesis job and the vocabulary of a recognition job are removed as soon as the job ends. An uploaded recording is deleted once its job finishes.

What is kept

Content-free metadata, for billing and security, for twelve months: when a request was made, which service and mode, language, dialect, voice and audio format it used, its length in seconds and characters, and whether it succeeded. That is what GET /v1/usage and the console show.

Our web server’s access log records the address a request came from, without its content. A ?api_key= in a WebSocket URL is masked in that log.

Our service log, kept for about two weeks to run and support the service, holds numbers per recognition stream. Where we switch it on for an account to diagnose its service, it also holds, per recognition result, when the result left, its language code, its number of words, the times of its first and last word, and its Swiss German detection result (variety, confidence, decided, source). Never the text, never audio.

Where processing takes place

Our API servers run in a data centre in Switzerland. Speech recognition runs in the European Union. Parts of speech synthesis are handled by specialised processing partners outside Switzerland and the EU, including the USA; they receive only what a request needs. Your content is not used to train models. See Security and our privacy policy; a data processing agreement is available for companies.