[{"data":1,"prerenderedAt":839},["ShallowReactive",2],{"navigation":3,"\u002Frealtime\u002Fconnection-lifecycle":224,"\u002Frealtime\u002Fconnection-lifecycle-surround":834},[4,24,60,88,120,152,196],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Start","\u002Fstart","1.start\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Overview",{"title":12,"path":13,"stem":14},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F2.quickstart",{"title":16,"path":17,"stem":18},"Authentication","\u002Fstart\u002Fauthentication","1.start\u002F3.authentication",{"title":20,"path":21,"stem":22},"Choose an API","\u002Fstart\u002Fchoose-an-api","1.start\u002F5.choose-an-api","i-lucide-rocket",{"title":25,"path":26,"stem":27,"children":28,"icon":59},"Realtime","\u002Frealtime","2.realtime\u002F1.index",[29,31,35,39,43,47,51,55],{"title":30,"path":26,"stem":27},"Realtime Overview",{"title":32,"path":33,"stem":34},"Realtime Quickstart","\u002Frealtime\u002Fquickstart","2.realtime\u002F2.quickstart",{"title":36,"path":37,"stem":38},"Connection Lifecycle","\u002Frealtime\u002Fconnection-lifecycle","2.realtime\u002F3.connection-lifecycle",{"title":40,"path":41,"stem":42},"Audio Input","\u002Frealtime\u002Faudio-input","2.realtime\u002F4.audio-input",{"title":44,"path":45,"stem":46},"Transcript Lifecycle","\u002Frealtime\u002Ftranscript-lifecycle","2.realtime\u002F5.transcript-lifecycle",{"title":48,"path":49,"stem":50},"Realtime Translation","\u002Frealtime\u002Frealtime-translation","2.realtime\u002F6.realtime-translation",{"title":52,"path":53,"stem":54},"Session Configuration","\u002Frealtime\u002Fsession-configuration","2.realtime\u002F7.session-configuration",{"title":56,"path":57,"stem":58},"Handling Interruptions & Silence","\u002Frealtime\u002Finterruptions-silence","2.realtime\u002F8.interruptions-silence","i-lucide-radio",{"title":61,"path":62,"stem":63,"children":64,"icon":87},"Recorded","\u002Frecorded","3.recorded\u002F1.index",[65,67,71,75,79,83],{"title":66,"path":62,"stem":63},"Recorded Overview",{"title":68,"path":69,"stem":70},"Transcribe Audio","\u002Frecorded\u002Ftranscribe-audio","3.recorded\u002F2.transcribe-audio",{"title":72,"path":73,"stem":74},"Timestamps & Speakers","\u002Frecorded\u002Ftimestamps-speakers","3.recorded\u002F3.timestamps-speakers",{"title":76,"path":77,"stem":78},"Subtitles","\u002Frecorded\u002Fsubtitles","3.recorded\u002F4.subtitles",{"title":80,"path":81,"stem":82},"Recorded Translation","\u002Frecorded\u002Ftranslation","3.recorded\u002F5.translation",{"title":84,"path":85,"stem":86},"Structured Results","\u002Frecorded\u002Fstructured-results","3.recorded\u002F6.structured-results","i-lucide-file-audio",{"title":89,"path":90,"stem":91,"children":92,"icon":119},"Concepts","\u002Fconcepts","4.concepts\u002F1.index",[93,95,99,103,107,111,115],{"title":94,"path":90,"stem":91},"Voice Context Layer",{"title":96,"path":97,"stem":98},"Stable vs. Partial Text","\u002Fconcepts\u002Fstable-vs-partial-text","4.concepts\u002F2.stable-vs-partial-text",{"title":100,"path":101,"stem":102},"StableStream","\u002Fconcepts\u002Fstablestream","4.concepts\u002F3.stablestream",{"title":104,"path":105,"stem":106},"Context-Aware Processing","\u002Fconcepts\u002Fcontext-aware-processing","4.concepts\u002F4.context-aware-processing",{"title":108,"path":109,"stem":110},"Understanding Latency","\u002Fconcepts\u002Flatency","4.concepts\u002F5.latency",{"title":112,"path":113,"stem":114},"Live Translation","\u002Fconcepts\u002Flive-translation","4.concepts\u002F6.live-translation",{"title":116,"path":117,"stem":118},"Trinity Engine","\u002Fconcepts\u002Ftrinity-engine","4.concepts\u002F7.trinity-engine","i-lucide-brain",{"title":121,"path":122,"stem":123,"children":124,"icon":151},"Guides","\u002Fguides","5.guides\u002F1.index",[125,127,131,135,139,143,147],{"title":126,"path":122,"stem":123},"Browser Live Captions",{"title":128,"path":129,"stem":130},"Server-side Streaming","\u002Fguides\u002Fserver-side-streaming","5.guides\u002F2.server-side-streaming",{"title":132,"path":133,"stem":134},"Build a Stable Caption UI","\u002Fguides\u002Fstable-caption-ui","5.guides\u002F3.stable-caption-ui",{"title":136,"path":137,"stem":138},"Build Live Translation","\u002Fguides\u002Flive-translation","5.guides\u002F4.live-translation",{"title":140,"path":141,"stem":142},"Save a Transcript","\u002Fguides\u002Fsave-transcript","5.guides\u002F5.save-transcript",{"title":144,"path":145,"stem":146},"Reconnect a Live Session","\u002Fguides\u002Freconnection","5.guides\u002F6.reconnection",{"title":148,"path":149,"stem":150},"Client-VAD speech segments","\u002Fguides\u002Fclient-vad-segments","5.guides\u002F7.client-vad-segments","i-lucide-book-open",{"title":153,"path":154,"stem":155,"children":156,"icon":195},"Reference","\u002Fapi-reference","6.api-reference\u002F1.index",[157,159,163,167,171,175,179,183,187,191],{"title":158,"path":154,"stem":155},"API Reference Overview",{"title":160,"path":161,"stem":162},"Admin API","\u002Fapi-reference\u002Fadmin","6.api-reference\u002F10.admin",{"title":164,"path":165,"stem":166},"Realtime API","\u002Fapi-reference\u002Frealtime-api","6.api-reference\u002F2.realtime-api",{"title":168,"path":169,"stem":170},"Client Messages","\u002Fapi-reference\u002Fclient-messages","6.api-reference\u002F3.client-messages",{"title":172,"path":173,"stem":174},"Server Events","\u002Fapi-reference\u002Fserver-events","6.api-reference\u002F4.server-events",{"title":176,"path":177,"stem":178},"Segment Transcription API","\u002Fapi-reference\u002Fsegment-transcription","6.api-reference\u002F5.segment-transcription",{"title":180,"path":181,"stem":182},"Batch Transcription Jobs","\u002Fapi-reference\u002Fbatch-jobs","6.api-reference\u002F6.batch-jobs",{"title":184,"path":185,"stem":186},"Languages & Models","\u002Fapi-reference\u002Flanguages","6.api-reference\u002F7.languages",{"title":188,"path":189,"stem":190},"Errors","\u002Fapi-reference\u002Ferrors","6.api-reference\u002F8.errors",{"title":192,"path":193,"stem":194},"Rate Limits","\u002Fapi-reference\u002Frate-limits","6.api-reference\u002F9.rate-limits","i-lucide-code",{"title":197,"path":198,"stem":199,"children":200,"icon":223},"Production","\u002Fproduction","7.production\u002F1.index",[201,203,207,211,215,219],{"title":202,"path":198,"stem":199},"Production Checklist",{"title":204,"path":205,"stem":206},"Reconnection & Retries","\u002Fproduction\u002Freconnection-retries","7.production\u002F2.reconnection-retries",{"title":208,"path":209,"stem":210},"Latency Best Practices","\u002Fproduction\u002Flatency-best-practices","7.production\u002F3.latency-best-practices",{"title":212,"path":213,"stem":214},"Security & Privacy","\u002Fproduction\u002Fsecurity-privacy","7.production\u002F4.security-privacy",{"title":216,"path":217,"stem":218},"Data Retention","\u002Fproduction\u002Fdata-retention","7.production\u002F5.data-retention",{"title":220,"path":221,"stem":222},"Changelog","\u002Fproduction\u002Fchangelog","7.production\u002F6.changelog","i-lucide-server",{"id":225,"title":36,"body":226,"description":826,"draft":827,"extension":828,"links":829,"meta":830,"navigation":831,"path":37,"seo":832,"status":829,"stem":38,"__hash__":833},"docs\u002F2.realtime\u002F3.connection-lifecycle.md",{"type":227,"value":228,"toc":811},"minimark",[229,233,238,249,253,256,274,277,302,306,309,470,474,481,527,534,538,541,559,563,569,572,576,581,588,592,735,739,742,750,754,779,786,790,807],[230,231,232],"p",{},"The full lifecycle of a realtime WebSocket connection.",[234,235,237],"h2",{"id":236},"stages","Stages",[239,240,245],"pre",{"className":241,"code":243,"language":244},[242],"language-text","1. Connect → 2. session.created → 3. Configure (optional) → 4. Stream audio\n                                                           ↓\n6. Close\u002FReconnect ← 5. Receive events ←\n","text",[246,247,243],"code",{"__ignoreMap":248},"",[234,250,252],{"id":251},"_1-connect","1. Connect",[230,254,255],{},"WebSocket handshake:",[257,258,259,267],"ul",{},[260,261,262,263,266],"li",{},"Server-side: ",[246,264,265],{},"Authorization: Bearer sk-..."," header",[260,268,269,270,273],{},"Browser: ",[246,271,272],{},"?access_token=rt_..."," query parameter",[230,275,276],{},"Conditions checked on connect:",[257,278,279,282,289,299],{},[260,280,281],{},"WebSocket upgrade required (else 426)",[260,283,284,285,288],{},"Gateway enabled (else 503 ",[246,286,287],{},"gateway_disabled",")",[260,290,291,292,295,296,288],{},"Circuit breaker closed (else 503 ",[246,293,294],{},"upstream_unavailable"," + ",[246,297,298],{},"Retry-After",[260,300,301],{},"Connection quota passes (concurrent + rate)",[234,303,305],{"id":304},"_2-sessioncreated","2. session.created",[230,307,308],{},"Received immediately on connect:",[239,310,314],{"className":311,"code":312,"language":313,"meta":248,"style":248},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"type\": \"session.created\",\n  \"session_id\": \"sess_...\",\n  \"limits\": {\n    \"max_concurrent_utterances\": 2,\n    \"max_session_seconds\": 900,\n    \"idle_timeout_seconds\": 60,\n    \"remaining_audio_seconds\": 3600\n  }\n}\n","json",[246,315,316,325,353,374,389,409,426,443,458,464],{"__ignoreMap":248},[317,318,321],"span",{"class":319,"line":320},"line",1,[317,322,324],{"class":323},"sMK4o","{\n",[317,326,328,331,335,338,341,344,348,350],{"class":319,"line":327},2,[317,329,330],{"class":323},"  \"",[317,332,334],{"class":333},"spNyl","type",[317,336,337],{"class":323},"\"",[317,339,340],{"class":323},":",[317,342,343],{"class":323}," \"",[317,345,347],{"class":346},"sfazB","session.created",[317,349,337],{"class":323},[317,351,352],{"class":323},",\n",[317,354,356,358,361,363,365,367,370,372],{"class":319,"line":355},3,[317,357,330],{"class":323},[317,359,360],{"class":333},"session_id",[317,362,337],{"class":323},[317,364,340],{"class":323},[317,366,343],{"class":323},[317,368,369],{"class":346},"sess_...",[317,371,337],{"class":323},[317,373,352],{"class":323},[317,375,377,379,382,384,386],{"class":319,"line":376},4,[317,378,330],{"class":323},[317,380,381],{"class":333},"limits",[317,383,337],{"class":323},[317,385,340],{"class":323},[317,387,388],{"class":323}," {\n",[317,390,392,395,399,401,403,407],{"class":319,"line":391},5,[317,393,394],{"class":323},"    \"",[317,396,398],{"class":397},"sBMFI","max_concurrent_utterances",[317,400,337],{"class":323},[317,402,340],{"class":323},[317,404,406],{"class":405},"sbssI"," 2",[317,408,352],{"class":323},[317,410,412,414,417,419,421,424],{"class":319,"line":411},6,[317,413,394],{"class":323},[317,415,416],{"class":397},"max_session_seconds",[317,418,337],{"class":323},[317,420,340],{"class":323},[317,422,423],{"class":405}," 900",[317,425,352],{"class":323},[317,427,429,431,434,436,438,441],{"class":319,"line":428},7,[317,430,394],{"class":323},[317,432,433],{"class":397},"idle_timeout_seconds",[317,435,337],{"class":323},[317,437,340],{"class":323},[317,439,440],{"class":405}," 60",[317,442,352],{"class":323},[317,444,446,448,451,453,455],{"class":319,"line":445},8,[317,447,394],{"class":323},[317,449,450],{"class":397},"remaining_audio_seconds",[317,452,337],{"class":323},[317,454,340],{"class":323},[317,456,457],{"class":405}," 3600\n",[317,459,461],{"class":319,"line":460},9,[317,462,463],{"class":323},"  }\n",[317,465,467],{"class":319,"line":466},10,[317,468,469],{"class":323},"}\n",[234,471,473],{"id":472},"_3-configure-optional","3. Configure (optional)",[230,475,476,477,480],{},"Send ",[246,478,479],{},"session.update"," to set parameters:",[239,482,484],{"className":311,"code":483,"language":313,"meta":248,"style":248},"{ \"type\": \"session.update\", \"language\": \"zh\" }\n",[246,485,486],{"__ignoreMap":248},[317,487,488,491,493,495,497,499,501,503,505,508,510,513,515,517,519,522,524],{"class":319,"line":320},[317,489,490],{"class":323},"{",[317,492,343],{"class":323},[317,494,334],{"class":333},[317,496,337],{"class":323},[317,498,340],{"class":323},[317,500,343],{"class":323},[317,502,479],{"class":346},[317,504,337],{"class":323},[317,506,507],{"class":323},",",[317,509,343],{"class":323},[317,511,512],{"class":333},"language",[317,514,337],{"class":323},[317,516,340],{"class":323},[317,518,343],{"class":323},[317,520,521],{"class":346},"zh",[317,523,337],{"class":323},[317,525,526],{"class":323}," }\n",[230,528,529,530,533],{},"Receive ",[246,531,532],{},"session.updated"," confirmation.",[234,535,537],{"id":536},"_4-stream-audio","4. Stream audio",[230,539,540],{},"Continuously send PCM16LE audio frames:",[257,542,543,550,553],{},[260,544,545,546,549],{},"Text frames: ",[246,547,548],{},"input_audio_buffer.append"," (base64)",[260,551,552],{},"Binary frames: raw PCM data",[260,554,555,556],{},"End of speech segment: ",[246,557,558],{},"input_audio_buffer.flush",[234,560,562],{"id":561},"_5-receive-events","5. Receive events",[239,564,567],{"className":565,"code":566,"language":244},[242],"input_audio_buffer.speech_started\n  → input_audio_buffer.speech_stopped\n  → conversation.item.input_audio_transcription.completed\n",[246,568,566],{"__ignoreMap":248},[230,570,571],{},"This cycle repeats for each speech segment.",[234,573,575],{"id":574},"_6-close-reconnect","6. Close \u002F Reconnect",[577,578,580],"h3",{"id":579},"normal-close","Normal close",[230,582,583,584,587],{},"Client calls ",[246,585,586],{},"ws.close()",". Server flushes final meter data.",[577,589,591],{"id":590},"timeout-close","Timeout close",[593,594,595,612],"table",{},[596,597,598],"thead",{},[599,600,601,605,609],"tr",{},[602,603,604],"th",{},"Close code",[602,606,608],{"align":607},"right","Cause \u002F close reason",[602,610,611],{},"Trigger",[613,614,615,631,646,660,672,685,699,711,723],"tbody",{},[599,616,617,621,626],{},[618,619,620],"td",{},"4408",[618,622,623],{"align":607},[246,624,625],{},"idle_timeout",[618,627,628,629],{},"No audio received within ",[246,630,433],{},[599,632,633,636,641],{},[618,634,635],{},"1008",[618,637,638],{"align":607},[246,639,640],{},"session_duration_limit",[618,642,643,644],{},"Exceeded ",[246,645,416],{},[599,647,648,650,655],{},[618,649,635],{},[618,651,652],{"align":607},[246,653,654],{},"session_audio_limit",[618,656,643,657],{},[246,658,659],{},"max_audio_seconds_per_session",[599,661,662,664,669],{},[618,663,635],{},[618,665,666],{"align":607},[246,667,668],{},"audio_quota_exhausted",[618,670,671],{},"Billing-window audio budget exhausted",[599,673,674,677,682],{},[618,675,676],{},"1009",[618,678,679],{"align":607},[246,680,681],{},"frame_too_large",[618,683,684],{},"Single frame exceeds 1 MiB",[599,686,687,690,696],{},[618,688,689],{},"1011",[618,691,692,695],{"align":607},[246,693,694],{},"client_error"," \u002F internal error",[618,697,698],{},"Client socket error or unexpected gateway failure",[599,700,701,704,708],{},[618,702,703],{},"1013",[618,705,706],{"align":607},[246,707,294],{},[618,709,710],{},"Circuit breaker open",[599,712,713,715,720],{},[618,714,703],{},[618,716,717],{"align":607},[246,718,719],{},"upstream_backpressure",[618,721,722],{},"Upstream is not draining fast enough",[599,724,725,727,732],{},[618,726,703],{},[618,728,729],{"align":607},[246,730,731],{},"client_backpressure",[618,733,734],{},"Client is not reading events fast enough",[234,736,738],{"id":737},"idle-timeout","Idle timeout",[230,740,741],{},"To avoid idle timeout, either:",[257,743,744,747],{},[260,745,746],{},"Send silent frames to keep the connection alive",[260,748,749],{},"Or close explicitly and reconnect when needed",[234,751,753],{"id":752},"recommended-reconnect-design","Recommended reconnect design",[755,756,757,764,767,770,773],"ol",{},[260,758,759,760,763],{},"Listen for ",[246,761,762],{},"close"," events, decide reconnect based on close code",[260,765,766],{},"4408 (idle) and 1008 (duration limit): reconnect directly",[260,768,769],{},"1013 (upstream): exponential backoff before reconnect",[260,771,772],{},"1000 (normal): do not reconnect",[260,774,775,776,778],{},"After reconnect, re-send ",[246,777,479],{}," to restore configuration",[230,780,781,782,785],{},"See ",[783,784,144],"a",{"href":145}," for a detailed guide.",[234,787,789],{"id":788},"related","Related",[257,791,792,797,802],{},[260,793,794,796],{},[783,795,164],{"href":165}," — endpoint reference",[260,798,799,801],{},[783,800,204],{"href":205}," — retry strategies",[260,803,804,806],{},[783,805,192],{"href":193}," — plan timeout parameters",[808,809,810],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":248,"searchDepth":320,"depth":327,"links":812},[813,814,815,816,817,818,819,823,824,825],{"id":236,"depth":327,"text":237},{"id":251,"depth":327,"text":252},{"id":304,"depth":327,"text":305},{"id":472,"depth":327,"text":473},{"id":536,"depth":327,"text":537},{"id":561,"depth":327,"text":562},{"id":574,"depth":327,"text":575,"children":820},[821,822],{"id":579,"depth":355,"text":580},{"id":590,"depth":355,"text":591},{"id":737,"depth":327,"text":738},{"id":752,"depth":327,"text":753},{"id":788,"depth":327,"text":789},"Connect → configure → stream audio → receive events → close\u002Freconnect.",false,"md",null,{},true,{"title":36,"description":826},"VLfVNNwxkU8GVKSY6paVyTQAiMWjqT14OPVK1Y-NDEw",[835,837],{"title":32,"path":33,"stem":34,"description":836,"children":-1},"Minimal runnable WebSocket examples.",{"title":40,"path":41,"stem":42,"description":838,"children":-1},"PCM format, sample rate, channels, chunk size, and latency tradeoffs.",1789433610550]