### Install Optional Plugin Example Source: https://github.com/videosdk-live/agents/blob/main/README.md Installs an example optional plugin, the Turn Detector plugin, using pip. Other plugins for Realtime, LLM, STT, TTS, VAD, Avatar, and SIP are also available. ```bash # Example: Install the Turn Detector plugin pip install videosdk-plugins-turn-detector ``` -------------------------------- ### Run VideoSDK AI Agent Project Source: https://github.com/videosdk-live/agents/blob/main/README.md Executes the main Python script to start the AI Voice Agent. Assumes .env file is configured and dependencies are installed. ```bash python main.py ``` -------------------------------- ### Install VideoSDK Google Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-google/README.md Installs the VideoSDK Google Plugin using pip. This command requires Python and pip to be installed on your system. ```bash pip install videosdk-plugins-google ``` -------------------------------- ### Install VideoSDK AI Agent Package Source: https://github.com/videosdk-live/agents/blob/main/README.md Installs the core VideoSDK AI Agent package using pip. ```bash pip install videosdk-agents ``` -------------------------------- ### Install VideoSDK OpenAI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-openai/README.md Installs the VideoSDK OpenAI plugin using pip for integration with the Agent Framework. ```bash pip install videosdk-plugins-openai ``` -------------------------------- ### Install VideoSDK Neuphonic Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-neuphonic/README.md Installs the VideoSDK Neuphonic Plugin using pip. This command requires Python and pip to be installed on your system. ```bash pip install videosdk-plugins-neuphonic ``` -------------------------------- ### Install VideoSDK Silero Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-silero/README.md Installs the VideoSDK Silero Plugin using pip. This command is typically run in a terminal or command prompt. ```bash pip install videosdk-plugins-silero ``` -------------------------------- ### Install Resemble Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-resemble/README.md Installs the VideoSDK Resemble Plugin using pip. This command adds the necessary package to your Python environment. ```bash pip install videosdk-plugins-resemble ``` -------------------------------- ### Setup Gemini Realtime Pipeline with VideoSDK Source: https://github.com/videosdk-live/agents/blob/main/README.md Initializes a GeminiRealtime model and creates a RealTimePipeline for AI agent integration. Requires API key and configuration for voice and response modalities. ```python from videosdk.plugins.google import GeminiRealtime, GeminiLiveConfig from videosdk.agents import RealTimePipeline, JobContext async def start_session(context: JobContext): # Initialize the AI model model = GeminiRealtime( model="gemini-2.0-flash-live-001", # When GOOGLE_API_KEY is set in .env - DON'T pass api_key parameter api_key="AKZSXXXXXXXXXXXXXXXXXXXX", config=GeminiLiveConfig( voice="Leda", # Puck, Charon, Kore, Fenrir, Aoede, Leda, Orus, and Zephyr. response_modalities=["AUDIO"] ) ) pipeline = RealTimePipeline(model=model) # Continue to the next steps... ``` -------------------------------- ### Install VideoSDK Groq Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-groq/README.md Installs the VideoSDK Groq Plugin using pip. This package provides TTS services from Groq for the Agent Framework. ```bash pip install videosdk-plugins-groq ``` -------------------------------- ### Start VideoSDK Agent Session Source: https://github.com/videosdk-live/agents/blob/main/README.md Creates an AgentSession, connects to a meeting using JobContext, starts the session, and handles cleanup. Requires meeting ID and auth token. ```python import asyncio from videosdk.agents import AgentSession, WorkerJob, RoomOptions, JobContext async def start_session(context: JobContext): # ... previous setup code ... # Create the agent session session = AgentSession( agent=VoiceAgent(), pipeline=pipeline ) try: await context.connect() # Start the session await session.start() # Keep the session running until manually terminated await asyncio.Event().wait() finally: # Clean up resources when done await session.close() await context.shutdown() def make_context() -> JobContext: room_options = RoomOptions( room_id="", # Replace it with your actual meetingID auth_token = "", # When VIDEOSDK_AUTH_TOKEN is set in .env - DON'T include videosdk_auth name="Test Agent", playground=True, vision: True # Only available when using the Google Gemini Live API ) return JobContext(room_options=room_options) if __name__ == "__main__": job = WorkerJob(entrypoint=start_session, jobctx=make_context) job.start() ``` -------------------------------- ### Install SmallestAI Plugin (Bash) Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-smallestai/README.md Installs the SmallestAI plugin for the VideoSDK Agent Framework using pip. This command requires Python and pip to be installed and configured on your system. ```bash pip install videosdk-plugins-smallestai ``` -------------------------------- ### Install VideoSDK Cartesia Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-cartesia/README.md Installs the VideoSDK Cartesia Plugin using pip. This command requires a Python environment with pip installed. It fetches and installs the necessary packages for the Cartesia agent framework integration. ```bash pip install videosdk-plugins-cartesia ``` -------------------------------- ### Install VideoSDK Anthropic Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-anthropic/README.md Installs the VideoSDK Anthropic Plugin using pip. This command requires Python and pip to be installed and configured on your system. ```bash pip install videosdk-plugins-anthropic ``` -------------------------------- ### Install VideoSDK AWS Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-aws/README.md Installs the VideoSDK AWS Plugin using pip. Requires Python 3.12+ and configured AWS credentials. ```bash pip install videosdk-plugins-aws ``` -------------------------------- ### Install VideoSDK Turn Detector Plugin (Bash) Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-turn-detector/README.md This snippet shows how to install the VideoSDK Turn Detector plugin using pip. It requires Python and pip to be installed. ```bash pip install videosdk-plugins-turn-detector ``` -------------------------------- ### Install VideoSDK ElevenLabs Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-elevenlabs/README.md Installs the VideoSDK ElevenLabs plugin using pip. This command is essential for integrating the plugin into your Python environment. ```bash pip install videosdk-plugins-elevenlabs ``` -------------------------------- ### Install and Test TTS Plugin Locally Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Instructions for installing a developed VideoSDK Agent plugin in editable mode and running a local test script to verify its functionality. ```bash # Install your plugin in editable mode from its root directory pip install -e . # Create a test script (e.g., test_my_plugin.py) # and run it to verify functionality. python test_my_plugin.py ``` -------------------------------- ### AI Voice Agent Demo Projects Source: https://github.com/videosdk-live/agents/blob/main/README.md Provides links to example projects demonstrating the VideoSDK AI Agents framework in action. These demos showcase practical use cases such as hospital appointment booking, flight and hotel inquiries, AI avatar interactions, and conversational flow with turn detection. ```APIDOC Demo: AI Telephony Agent Description: Hospital appointment booking via a voice-enabled agent. Link: https://github.com/videosdk-community/ai-telephony-demo Demo: A2A MCP Agent Description: Ask about available flights & hotels and send email with booking info. Link: https://github.com/videosdk-community/a2a-mcp-agent Demo: AI Avatar Description: Answering queries about current weather conditions using an avatar. Link: https://github.com/videosdk-community/ai-avatar-demo Demo: Conversational Flow Agent Description: E-commerce scenario with turn detection when interrupting the voice agent. Link: https://github.com/videosdk-community/ai-agent-demo/tree/conversational-flow ``` -------------------------------- ### Markdown README for Plugin Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Standard README file for a VideoSDK agent plugin, detailing its purpose, implemented features, and API key setup instructions. ```Markdown # VideoSDK - {Your Service} Plugin This plugin integrates {Your Service} with the VideoSDK Agent Framework. **Implemented Features:** - [x] STT - [ ] LLM - [ ] TTS **API Key Setup:** Set the `{YOUR_SERVICE}_API_KEY` environment variable. ``` -------------------------------- ### Install VideoSDK SIP Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-sip/README.md Installs the VideoSDK Agent SIP Plugin using pip. This plugin enables integration between SIP providers and VideoSDK Agents for conversational AI. ```bash pip install videosdk-plugins-sip ``` -------------------------------- ### Install VideoSDK Sarvam AI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-sarvamai/README.md Installs the VideoSDK Sarvam AI plugin using pip. This command is used to add the necessary libraries to your Python environment. ```bash pip install videosdk-plugins-sarvamai ``` -------------------------------- ### Install VideoSDK Agents Package Source: https://github.com/videosdk-live/agents/blob/main/videosdk-agents/README.md Installs the VideoSDK Agents Python library using pip. This command is essential for setting up the development environment to use the agents framework. ```bash pip install videosdk-agents ``` -------------------------------- ### Install HumeAI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-humeai/README.md Installs the VideoSDK HumeAI plugin using pip. This package provides TTS services from HumeAI for the Agent Framework. ```bash pip install videosdk-plugins-humeai ``` -------------------------------- ### Install Simli Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-simli/README.md Installs the Simli plugin for VideoSDK Agents using pip. This package enables the integration of Simli's Virtual AI Avatar. ```bash pip install videosdk-plugins-simli ``` -------------------------------- ### Install VideoSDK Rime AI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-rime/README.md Installs the VideoSDK Rime AI Plugin using pip. This command adds the necessary package to your Python environment for integration with the Agent Framework. ```bash pip install videosdk-plugins-rime ``` -------------------------------- ### VideoSDK Agent Usage Example Source: https://github.com/videosdk-live/agents/blob/main/videosdk-agents/README.md Demonstrates the core usage of the VideoSDK Agents framework in Python. It shows how to define a custom agent, configure an OpenAI Realtime model, set up a RealTimePipeline, and manage the agent session within a job context, including connection and graceful shutdown. ```python import asyncio from videosdk.agents import Agent, AgentSession, RealTimePipeline, function_tool, WorkerJob, RoomOptions, JobContext from videosdk.plugins.openai import OpenAIRealtime, OpenAIRealtimeConfig from openai.types.beta.realtime.session import InputAudioTranscription, TurnDetection class MyVoiceAgent(Agent): def __init__(self): super().__init__( instructions="You are a helpful voice assistant that can answer questions and help with tasks.", ) async def on_enter(self) -> None: await self.session.say("How can i assist you today?") async def entrypoint(ctx: JobContext): print("Starting connection test...") print(f"Job context: {ctx}") model = OpenAIRealtime( model="gpt-4o-realtime-preview", config=OpenAIRealtimeConfig( modalities=["text", "audio"] ) ) pipeline = RealTimePipeline(model=model) session = AgentSession( agent=MyVoiceAgent(), pipeline=pipeline, context=ctx ) try: await ctx.connect() await session.start() print("Connection established. Press Ctrl+C to exit.") await asyncio.Event().wait() except KeyboardInterrupt: print("\nShutting down gracefully...") finally: await session.close() await ctx.shutdown() def make_context() -> JobContext: room_options = RoomOptions(room_id="", name="Sandbox Agent", playground=True) return JobContext( room_options=room_options ) if __name__ == "__main__": job = WorkerJob(job_func=entrypoint, jobctx=make_context()) job.start() ``` -------------------------------- ### Install Speechify Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-speechify/README.md Installs the VideoSDK Speechify Plugin using pip. This command is executed in a shell environment to add the plugin to your Python project. ```bash pip install videosdk-plugins-speechify ``` -------------------------------- ### Install VideoSDK Cerebras Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-cerebras/README.md Installs the VideoSDK Cerebras Plugin using pip. This package integrates LLM services from Cerebras into the Agent Framework. ```bash pip install videosdk-plugins-cerebras ``` -------------------------------- ### Install VideoSDK LMNT AI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-lmnt/README.md Installs the VideoSDK LMNT AI Plugin using pip. This package provides integration with LMNT's TTS services for the Agent Framework. ```bash pip install videosdk-plugins-lmnt ``` -------------------------------- ### Install VideoSDK InworldAI Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-inworldai/README.md Installs the VideoSDK InworldAI plugin using pip. This package enables the integration of InworldAI's Text-to-Speech (TTS) services within the VideoSDK agent framework. ```bash pip install videosdk-plugins-inworldai ``` -------------------------------- ### Install VideoSDK Deepgram Plugin Source: https://github.com/videosdk-live/agents/blob/main/videosdk-plugins/videosdk-plugins-deepgram/README.md Installs the VideoSDK Deepgram Plugin using pip. This package provides the necessary components to integrate Deepgram's Speech-to-Text services into your VideoSDK agent framework. ```bash pip install videosdk-plugins-deepgram ``` -------------------------------- ### Create Virtual Environment (Windows) Source: https://github.com/videosdk-live/agents/blob/main/README.md Sets up a Python virtual environment for the project on Windows systems. ```bash python -m venv venv venv\Scripts\activate ``` -------------------------------- ### Create Virtual Environment (macOS/Linux) Source: https://github.com/videosdk-live/agents/blob/main/README.md Sets up a Python virtual environment for the project on macOS or Linux systems. ```bash python3 -m venv venv source venv/bin/activate ``` -------------------------------- ### TOML Configuration for Plugin Packaging Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Defines project metadata, build system, dependencies, and versioning for a VideoSDK agent plugin using Hatchling. Essential for packaging and distribution. ```TOML [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "videosdk-plugins-{your-service}" dynamic = ["version"] description = "VideoSDK Agent Framework plugin for {Your Service}" readme = "README.md" license = "Apache-2.0" requires-python = ">=3.11" authors = [{ "name": "videosdk" }] dependencies = [ "videosdk-agents>=0.0.20", # Add any other required dependencies here, e.g., "openai>=1.0.0" ] [tool.hatch.version] path = "videosdk/plugins/{your-service}/version.py" [tool.hatch.build.targets.wheel] packages = ["videosdk"] ``` -------------------------------- ### VideoSDK AI Agents Overview Source: https://github.com/videosdk-live/agents/blob/main/README.md Provides a summary of the VideoSDK AI Agents framework, highlighting its capabilities in real-time communication, SIP integration, multi-model support, and conversational flow management. ```APIDOC Project: VideoSDK AI Agents Description: Open-source framework for developing real-time multimodal conversational AI agents. Key Features: - Real-time Communication (Audio/Video) - SIP & Telephony Integration - Virtual Avatars - Multi-Model Support (OpenAI, Gemini, AWS NovaSonic, etc.) - Cascading Pipeline for STT, LLM, TTS - Conversational Flow Management (Turn Detection, VAD) - Function Tools for extending capabilities - MCP Integration for external data sources - A2A Protocol for agent-to-agent interactions Architecture: - Links backend with VideoSDK platform for AI assistant interaction in real-time. Prerequisites: - VideoSDK authentication token - VideoSDK meeting ID - Python 3.12 or higher - Third-Party API Keys (e.g., OpenAI, ElevenLabs, Google Gemini) ``` -------------------------------- ### Python Plugin Initialization Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Makes plugin classes importable by exposing them in the `__all__` list. Imports specific STT, LLM, and TTS implementations. ```Python # Import and expose only the classes you have implemented from .stt import YourServiceSTT from .llm import YourServiceLLM from .tts import YourServiceTTS __all__ = [ 'YourServiceSTT', 'YourServiceLLM', 'YourServiceTTS' ] ``` -------------------------------- ### Implement Function Tools (External and Internal) Source: https://github.com/videosdk-live/agents/blob/main/README.md Demonstrates how to implement function tools for agents, including an external tool using aiohttp for weather data and an internal tool for horoscope retrieval. ```python import aiohttp # External Function Tools @function_tool def get_weather(latitude: str, longitude: str): print(f"Getting weather for {latitude}, {longitude}") url = f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}¤t=temperature_2m" async with aiohttp.ClientSession() as session: async with session.get(url) as response: if response.status == 200: data = await response.json() return { "temperature": data["current"]["temperature_2m"], "temperature_unit": "Celsius", } else: raise Exception( f"Failed to get weather data, status code: {response.status}" ) class VoiceAgent(Agent): # ... previous code ... # Internal Function Tools @function_tool async def get_horoscope(self, sign: str) -> dict: horoscopes = { "Aries": "Today is your lucky day!", "Taurus": "Focus on your goals today.", "Gemini": "Communication will be important today.", } return { "sign": sign, "horoscope": horoscopes.get(sign, "The stars are aligned for you today!"), } ``` -------------------------------- ### Python LLM Plugin Implementation Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Base class for Large Language Model plugins. Requires implementing the `chat` method to handle conversational AI interactions and stream responses. ```Python from typing import Any, AsyncIterator, List, Optional from videosdk.agents import LLM as BaseLLM, LLMResponse, ChatContext, ChatRole, FunctionTool class YourServiceLLM(BaseLLM): def __init__(self, api_key: str, **kwargs): super().__init__() self.api_key = api_key # Initialize your HTTP client here async def chat( self, messages: ChatContext, tools: Optional[List[FunctionTool]] = None, **kwargs: Any ) -> AsyncIterator[LLMResponse]: """ Process messages and yield responses in a stream. """ # 1. Format the 'messages' and 'tools' for your provider's API. # 2. Make a streaming API request. # 3. As you receive response chunks, yield LLMResponse objects. yield LLMResponse(content="Hello, world!", role=ChatRole.ASSISTANT) ``` -------------------------------- ### VideoSDK Create Room API Reference Source: https://github.com/videosdk-live/agents/blob/main/README.md Details the API endpoint for creating a VideoSDK meeting room, which is a prerequisite for integrating AI agents into video calls. ```APIDOC API: VideoSDK Realtime Communication Endpoint: Create Room API Purpose: Generates a unique meeting ID for initiating VideoSDK calls. This ID is essential for participants, including AI agents, to join a room. Usage: This API is typically called from your backend server to provision meeting rooms dynamically. Parameters: (Details not provided in the source text, but typically includes authentication credentials and optional room configuration.) Returns: A meeting ID and associated room details. Related APIs: - Joining a room - Managing participants ``` -------------------------------- ### Python STT Plugin Implementation Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Base class for Speech-to-Text plugins. Requires implementing `process_audio` for audio processing and `aclose` for resource cleanup. ```Python from typing import Optional from videosdk.agents import STT as BaseSTT, STTResponse, SpeechEventType, SpeechData class YourServiceSTT(BaseSTT): def __init__(self, api_key: str, **kwargs): super().__init__() self.api_key = api_key # Initialize your WebSocket client and other resources here async def process_audio(self, audio_frames: bytes, language: Optional[str] = None, **kwargs): """ Process incoming audio frames. The framework provides audio at 48kHz. Resample if your provider requires a different sample rate. """ # 1. Send audio to your service's WebSocket endpoint. # 2. Receive transcription data. # 3. Call self._transcript_callback(response) with STTResponse objects. pass async def aclose(self): """Clean up all resources, like closing WebSocket connections.""" # Your cleanup logic here ``` -------------------------------- ### AI Agent Supported Services Overview Source: https://github.com/videosdk-live/agents/blob/main/README.md Lists the categories of AI services supported by the VideoSDK Agents framework, including Real-time Models, Speech-to-Text (STT), Language Models (LLM), Text-to-Speech (TTS), Voice Activity Detection (VAD), Turn Detection, Virtual Avatar, and SIP Trunking. Each category details the specific providers and services available. ```APIDOC Category: Real-time Models Services: OpenAI, Gemini, AWSNovaSonic Category: Speech-to-Text (STT) Services: OpenAI, Google, Sarvam AI, Deepgram, Cartesia Category: Language Models (LLM) Services: OpenAI, Google, Sarvam AI, Anthropic, Cerebras Category: Text-to-Speech (TTS) Services: OpenAI, Google, AWS Polly, Sarvam AI, ElevenLabs, Cartesia, Resemble AI, Smallest AI, Speechify, InWorld, Neuphonic, Rime AI, Hume AI, Groq, LMNT AI Category: Voice Activity Detection (VAD) Services: SileroVAD Category: Turn Detection Model Services: Turn Detector Category: Virtual Avatar Services: Simli Category: SIP Trunking Services: Twilio ``` -------------------------------- ### Python Version File Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Specifies the version of the VideoSDK agent plugin. This file is referenced by the build system for packaging. ```Python __version__ = "0.0.1" ``` -------------------------------- ### Define Custom Voice Agent Source: https://github.com/videosdk-live/agents/blob/main/README.md Creates a custom voice agent by inheriting from the base Agent class, defining instructions, and registering external tools. ```python from videosdk.agents import Agent, function_tool # External Tool # async def get_weather(self, latitude: str, longitude: str): class VoiceAgent(Agent): def __init__(self): super().__init__( instructions="You are a helpful voice assistant that can answer questions and help with tasks.", tools=[get_weather] # You can register any external tool defined outside of this scope ) async def on_enter(self) -> None: """Called when the agent first joins the meeting""" await self.session.say("Hi there! How can I help you today?") ``` -------------------------------- ### Implement Custom TTS Plugin in Python Source: https://github.com/videosdk-live/agents/blob/main/BUILD_YOUR_OWN_PLUGIN.md Provides a Python class structure for a custom Text-to-Speech (TTS) plugin. It inherits from `videosdk.agents.TTS` and outlines the `__init__`, `synthesize`, and `interrupt` methods required for TTS functionality within the VideoSDK Agents framework. ```Python from typing import Any, AsyncIterator, Optional, Union from videosdk.agents import TTS as BaseTTS class YourServiceTTS(BaseTTS): def __init__(self, api_key: str, **kwargs): # Set the sample rate and channels your provider uses. super().__init__(sample_rate=24000, num_channels=1) self.api_key = api_key self.audio_track = None # This is set by the framework async def synthesize(self, text: Union[AsyncIterator[str], str], voice_id: Optional[str] = None, **kwargs: Any): """ Convert text to speech and stream the audio data. """ # 1. Make a streaming API request to your provider with the text. # 2. As you receive audio chunks, push them to the audio track. # if self.audio_track: # self.loop.create_task(self.audio_track.add_new_bytes(chunk)) pass async def interrupt(self): """Interrupt any ongoing audio synthesis.""" if self.audio_track: self.audio_track.interrupt() ``` -------------------------------- ### Create VideoSDK Meeting ID (cURL) Source: https://github.com/videosdk-live/agents/blob/main/README.md Generates a VideoSDK meeting ID by making a POST request to the VideoSDK Rooms API. Requires a JWT token for authorization. ```curl curl -X POST https://api.videosdk.live/v2/rooms \ -H "Authorization: YOUR_JWT_TOKEN_HERE" \ -H "Content-Type: application/json" ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.