Authentication and API keys
How do I get an API key? Create a free account and your API key will be available in the dashboard after sign-up. How do I authenticate my requests? Authentication works differently depending on the API type. For REST endpoints, pass your key in theX-API-Key header:
.env file, load it at runtime via python-dotenv or your environment’s secret manager, and ensure .env is in your .gitignore. The Quick start guide covers this setup in full.
Models and capabilities
What models are available?
What languages does transcription support? The Multilingual Transcription batch and streaming models support 100 languages with automatic language detection. Language is detected per-utterance, so code-switching within a single file is handled automatically. Multilingual Fast Transcription (batch) also transcribes any supported language — declare it with the optional
language parameter or let it be detected automatically. Multilingual Fast Transcription (streaming) covers 25 languages, always auto-identified, and reports each utterance’s language when detect_language=true. The English Fast Transcription model is English-only.
What optional enrichments are available on transcription? The Multilingual Transcription batch and streaming models support the following optional fields, configurable per request:
English Fast Transcription (batch) supports two independent opt-in flags, both defaulting to
false, and none of the other enrichments:
words times are in seconds, while utterances times are in milliseconds; both are measured from the start of the file. See English Fast Transcription (batch) for the full response shape.
English Fast Transcription (streaming) has one optional enrichment of its own:
The
speaker index is stable only within one connection, so it cannot be matched across calls. See English Fast Transcription (streaming).
What’s the difference between PII/PHI tagging and PII/PHI redaction?
These are two separate capabilities with different outputs:
- PII/PHI tagging (
pii_phi_tagging=trueon Multilingual Transcription batch or streaming) — identifies PII/PHI spans in the transcript and wraps them with tags. The original text content is preserved. Use this when downstream systems need to detect or handle sensitive spans while retaining the full transcript. - PII/PHI redaction (PII/PHI Redaction APIs) — replaces each detected PII/PHI span with an empty marker tag (e.g.
<pii:name></pii:name>,<pii:ssn></pii:ssn>,<phi></phi>) in the transcript and silences the corresponding audio ranges in the returned MP3. Use this when the audio itself must be clean — for example, recordings that will be shared, archived, or reviewed by parties who should not hear sensitive information.
confidence score mean? Confidence represents how certain the model is in its verdict, on a scale of 0 to 1. A frame with verdict: "synthetic" and confidence: 0.97 means the model is highly confident that segment contains AI-generated speech. A no-content verdict indicates the frame is silent or contains no usable audio — these frames are not sent through the model and always return confidence: 1.0.
Audio formats and file requirements
What audio formats are supported? The accepted set differs per endpoint, and each capability page lists its own in full. Deepfake Detection, Music & Speech Detection, AI Music Detection, Language Detection, and English Fast Transcription accept 96 file extensions in batch. All of those except Language Detection, which is batch-only, accept 79 container formats plus 22 raw formats in streaming. The remaining batch endpoints accept AAC, AIFF, FLAC, MOV, MP3, MP4, OGG, Opus, WAV, and WebM, and the remaining streaming endpoints accept 7 container formats plus 20 raw formats. Streaming endpoints split into two groups. Transcription, Redaction, and Velma Triage auto-detect self-describing containers, soaudio_format is optional. Deepfake Detection, Music & Speech Detection, AI Music Detection, and English Fast Transcription require audio_format on every connection, including containers, and omitting it closes the connection with 1003.
Raw PCM, mu-law, and A-law formats are headerless everywhere they are accepted, so they always require sample_rate and num_channels alongside audio_format.
Is there a file size limit? 100 MB for all batch endpoints.
Is there a minimum audio length? For deepfake detection, audio must be at least 0.5 seconds. Files shorter than this are rejected with a 422. For transcription, very short clips may return empty or minimal results.
What is the recommended audio length for deepfake detection? 4–60 seconds is the recommended range. Files shorter than one full 4-second analysis window are padded before inference. Leading and trailing silence is trimmed automatically — frame timestamps reflect positions in the original file.
Pricing and billing
How is usage billed? Billing is credit-based and priced per hour of audio processed. Prices range from $0.01/hour to $1.25/hour depending on the model. Review pricing for all models here: platform.modulate.ai/pricing Is there a free tier? Yes. Free credits are included when you create an account — no credit card required to get started. Where can I monitor my usage? Real-time usage and billing details are in the Usage dashboard.Rate limits
What rate limits apply? Concurrency is capped per model: the number of simultaneous in-flight requests or active WebSocket connections against one endpoint. The default is 3. Credits are tracked separately and are not a rate limit. What happens when I hit the concurrency cap? REST endpoints return429. WebSocket connections close with code 4030. The Usage dashboard shows current usage.
Can the cap be increased? Contact support@modulate.ai with the model and expected traffic.
Streaming (WebSocket)
How do I signal the end of my audio stream? Send an empty text frame ("") on the open connection. The server will drain any buffered audio, deliver outstanding results, send a done message, then close the connection cleanly.
What does the done message look like?
Multilingual Transcription streaming done
Multilingual Transcription streaming done
Deepfake streaming done
Deepfake streaming done
partial_results=true, the server emits partial_utterance messages while speech is in progress, before the utterance is finalized. Each partial replaces the previous one — the final utterance message supersedes all preceding partials for that segment. With the deepfake signal enabled, a partial may also carry an interim deepfake_score (null until a value is available). Emotion and accent labels arrive on the finalized utterance only. Useful for live caption rendering where low perceived latency matters.
What WebSocket close codes should I handle?
WebSocket close code reference
WebSocket close code reference
Errors
What does a503 response mean? The inference server is temporarily overloaded. Wait a moment and retry. For production workloads, implement exponential backoff with jitter rather than an immediate retry loop.
What does a 504 response mean? The request timed out — batch processing has a 60-second limit. This is uncommon for typical audio lengths. If you see it consistently on files within the recommended size range, contact support@modulate.ai.
My file was rejected with 422. Why? The audio is too short for analysis. Deepfake detection requires a minimum of 0.5 seconds. Check the actual duration of your file — empty or near-silent files sometimes report a longer duration than their usable content.
Privacy and data
Does Modulate sell the audio I send through the API? No. Modulate does not sell personal data, including audio submitted through the API. Audio processed via the platform is used to deliver the service and to improve Modulate’s models. See the training question below for details. Is my audio used to train Modulate’s AI models? It depends on your account type:- Self-service (pay-as-you-go) customers are automatically enrolled in the Model Improvement Program as a condition of using the platform. An opt-out option is available by contacting sales@modulate.ai. Audio you submit may be used to train and improve Modulate’s models.
- Enterprise customers (annual commitment): whether you participate in the Model Improvement Program depends on your service tier and is confirmed in your Order Form. Participation may affect your per-credit rate. Contact your account representative or sales@modulate.ai to discuss options.
- Providing required privacy notices to your end users before collecting audio
- Obtaining any necessary consents for recording and analysis
- Establishing a lawful basis for processing under applicable data protection laws
- Complying with audio recording laws in your jurisdiction (wiretapping statutes, consent-to-record requirements, biometric data regulations)
- Responding to your end users’ data rights requests (access, deletion, correction)
This section summarizes the terms most relevant to API users. The Velma Terms govern if this FAQ and the Terms conflict. For complete information, including cookie practices, third-party data sharing, and regional rights, see Modulate’s full Privacy Policy and the Velma Services Privacy Addendum.