Stream Your Real-time Voice & Video at Scale
VideoSDK and OpenAI Realtime API
Build scalable interacting live streaming experiences with VideoSDK's powerful APIs and cross-platform SDKs. Stream real-time audio and video communication between multiple hosts to unlimited viewers with virtually zero latency.
Build Voice Agents in Native Mobile and Web Applications with VideoSDK’s Privacy-First Global WebRTC Infrastructure.
1pip install videosdk-plugins-openai
Trusted by 300+ global business & tech leaders
Trusted by 300+ global business & tech leaders
Secure, Real-Time Voice Infrastructure Optimized for AI and Built for Developers

Real-Time Voice Infra for AI Applications
- Intelligent Routing with ultra-low latency using dynamic mesh and SFU fallback
- Last-Mile Tuning to handle jitter, packet loss, and weak networks
- Global Mesh Network delivering real-time coverage in 200+ regions
- Scalable Infrastructure optimized for AI voice agents at massive scale
Monitor, Measure & Improve Quality of Experience
- Real-time QoE metrics (MOS, RTT, jitter, packet loss) via WebRTC stats
- Custom thresholds & health checks using programmable pipelines
- Webhooks & REST APIs for CI/CD and DevOps alerts
- Live dashboards with session replay and trace logs


Privacy-First Architecture for Secure Voice AI
- Standards Compliant with SOC:2, GDPR, HIPAA, and ISO:27001
- Zero Data Storage and geo-fencing to prioritize privacy
- Secure Cloud Recordings for sensitive conversations
- Encrypted Transport for end-to-end client-to-server privacy
DEVELOPER-CENTRIC API
Build engaging live experiences effortlessly!
Low-latency Global Infrastructure
20+ Frameworks Supported
Secure JWT Authentication
Maintainance-free SDK
In-built state change events
1import VideoSDK from "@videosdk.live/js-sdk";
2
3// Configure authentication token
4VideoSDK.config("<Authentication-token>");
5
6// Initialize meeting
7const meeting = VideoSDK.initMeeting({
8 meetingId: "abc-pqr-xyz",
9 name: "John Doe",
10 micEnabled: true,
11 webcamEnabled: true,
12});1import 'package:flutter/material.dart';
2import 'package:videosdk/videosdk.dart';
3
4class MyApp extends StatelessWidget {
5 var token ="<Authentication-token>";
6 // create room
7 Room _room = VideoSDK.createRoom(
8 roomId: 'abc-pqr-xyz',
9 token: token,
10 displayName: "John Doe",
11 micEnabled: true,
12 camEnabled: true,
13 defaultCameraIndex: 1, // Index of MediaDevices will be used to set default camera
14 );
15 }
16}1import { MeetingProvider } from "@videosdk.live/react-sdk";
2
3const App = () => (
4 <MeetingProvider
5 config={{
6 meetingId: "abc-pqr-xyz",
7 name: "John Doe",
8 micEnabled: true,
9 webcamEnabled: true,
10 }}
11 token={"<Authentication-token>"}
12 >
13 // Meeting View
14 </MeetingProvider>
15);1import androidx.appcompat.app.AppCompatActivity;
2import android.os.Bundle;
3import live.videosdk.rtc.android.Meeting;
4import live.videosdk.rtc.android.VideoSDK;
5
6public class MainActivity extends AppCompatActivity {
7
8 @Override
9 protected void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState);
11 setContentView(R.layout.activity_main);
12 final String token = "<Authentication-token>";
13
14 VideoSDK.config(token);
15 Meeting meeting = VideoSDK.initMeeting(
16 MainActivity.this, "abc-pqr-xyz", "John Doe",
17 true, true, null, null, false, null
18 )
19 }
20}1import VideoSDKRTC
2class SessionViewController: UIViewController {
3 private var meeting: Meeting?
4
5 override func viewDidLoad() {
6 super.viewDidLoad()
7
8 // Configure authentication token got earlier
9 VideoSDK.config(token: <Authentication-token>)
10
11 // create a new meeting instance
12 meeting = VideoSDK.initMeeting(
13 meetingId: "abc-pqr-xyz", // required
14 participantName: "John Doe", // required
15 micEnabled: true, // optional, default: true
16 webcamEnabled: true // optional, default: true
17 )
18 }
19}1import asyncio
2from videosdk import MeetingConfig, VideoSDK
3
4loop = asyncio.get_event_loop()
5
6def main():
7 meeting_config = MeetingConfig(
8 meeting_id="abc-pqr-xyz",
9 name="John Doe",
10 mic_enabled=True,
11 webcam_enabled=True,
12 token=<VIDEOSDK_AUTH_TOKEN>
13 )
14
15 # Initialize the meeting
16 meeting = VideoSDK.init_meeting(**meeting_config)
17
18 # Join the meeting
19 meeting.join()
20
21if __name__ == '__main__':
22 main()
23 loop.run_forever()1using live.videosdk;
2
3Meeting meeting = Meeting.GetMeetingObject();
4meeting.Join("YOUR_TOKEN", "MEETING_ID", "John Doe", true, true);
5 
“I still remember when I was trying out the product and connected over discord with Arjun Kava, and he immediately responded. It is one of the things that we found less often. The team is super enthusiastic to make the product as next big thing. Easy integration is the beauty of it. Few lines of code and it's done.”
Ankur Chandra ,
Engineering Manager at Fynd
<2 week
Time to go live
>100k
Increase in engagement
Let’s build together
Start Building With Free $20 Balance | No credit card required to start.
