{"service":"transcription","version":"1.0.0-staged","mount":"/toll/transcribe","request":{"content_type":"multipart/form-data","fields":{"file":"required, exactly one file part — the audio bytes; format is sniffed from the bytes, never trusted from filename or part Content-Type","language":"optional ISO 639-1 two-letter hint (lowercase shape); absent = upstream auto-detection","model":"optional; allowlist only (whisper-large-v3); absent = pinned default"},"unknown_fields":"refused free (unknown_field), including any url or caller-supplied duration field"},"accounting_rule":"You pay for the seconds of audio you submit, prorated from $0.005 per minute. Your parsed duration is rounded UP to the next whole second; the charge is that many seconds at $0.005/60 per second, rounded UP to the next whole currency unit (USDC micro-unit or lamport) because currency units are integers. The free preflight states your exact billed seconds and exact charge before you pay. Nothing else is rounded, ever.","delivery_shape":{"text":"string (empty string is a valid delivery — silence is audio)","language":"upstream-reported value or null","language_status":"reported | not_returned","model":"the model actually called","duration_seconds_reported":"upstream-reported duration or null","duration_billed_seconds":"integer seconds billed (D4)","billed":{"usd":"number","usdc_units":"integer","sol_lamports":"integer"},"segments":"[{start, end, text}] filtered passthrough or null","segments_status":"reported | not_returned","cross_check":"ok | not_available","fingerprint":"sha256 of audio bytes + canonical options","settle_ref":"opaque reference"},"preflight_shape":{"servable":"{servable:true, format, duration_ms, duration_billed_seconds, price:{usd, usdc_units, sol_lamports}, caps, fingerprint, valid_for_seconds:300}","refusal":"{servable:false, reason_class, detail} — malformed-class requests return a real HTTP 400"},"errors":["malformed_request","unknown_field","model_not_allowed","language_invalid","size_over_cap","duration_over_cap","empty_audio","format_mismatch","format_not_supported","unsupported_variant","video_track_not_supported","duration_unverifiable","duration_inconsistent","audio_truncated","rate_capped","concurrency_capped","not_configured","not_found","method_not_allowed"],"caps_disclosure":"Rate windows and concurrency slots are in-memory, isolate-local, best-effort abuse brakes — not billing inputs.","kv_prefix":"trn:"}