# Create Bot POST https://api.meetstream.ai/api/v1/bots/create_bot Content-Type: application/json This endpoint supports 20 different payload variations. Use the dropdown above the code panel to explore configurations for various use cases. Reference: https://docs.meetstream.ai/api-reference/ap-is/bot-endpoints/create-bot ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: Meetstream API version: 1.0.0 paths: /api/v1/bots/create_bot: post: operationId: create-bot summary: Create Bot description: >- This endpoint supports 20 different payload variations. Use the dropdown above the code panel to explore configurations for various use cases. tags: - subpackage_bots parameters: - name: Authorization in: header description: 'Format: Token ' required: true schema: type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/BotResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateBotRequest' servers: - url: https://api.meetstream.ai components: schemas: CreateBotRequestSocketConnectionUrl: type: object properties: websocket_url: type: string description: WebSocket URL for two-way audio/data bridge connection. title: CreateBotRequestSocketConnectionUrl CreateBotRequestLiveAudioRequired: type: object properties: websocket_url: type: string description: WebSocket URL to stream live audio output from the meeting. title: CreateBotRequestLiveAudioRequired CreateBotRequestLiveVideoRequired: type: object properties: websocket_url: type: string description: WebSocket URL to stream live video output from the meeting. title: CreateBotRequestLiveVideoRequired CreateBotRequestLiveTranscriptionRequired: type: object properties: webhook_url: type: string description: Webhook URL to receive live transcription events. title: CreateBotRequestLiveTranscriptionRequired AutomaticLeaveConfig: type: object properties: waiting_room_timeout: type: integer description: Seconds to wait in a waiting room before leaving. everyone_left_timeout: type: integer description: Seconds to stay in the call after everyone else leaves. voice_inactivity_timeout: type: integer description: Seconds to wait if no audio is detected. in_call_recording_timeout: type: integer description: Maximum seconds to stay in call while recording. recording_permission_denied_timeout: type: integer description: Seconds to wait if recording permission is denied (Zoom only). title: AutomaticLeaveConfig RecordingConfigRetention: type: object properties: type: type: string hours: type: integer title: RecordingConfigRetention RecordingConfigTranscriptProvider: type: object properties: deepgram: type: object additionalProperties: description: Any type assemblyai: type: object additionalProperties: description: Any type jigsawstack: type: object additionalProperties: description: Any type meeting_captions: type: object additionalProperties: description: Any type deepgram_streaming: type: object additionalProperties: description: Any type assemblyai_streaming: type: object additionalProperties: description: Any type description: Transcription provider config. Use one provider key per request. title: RecordingConfigTranscriptProvider RecordingConfigTranscript: type: object properties: provider: $ref: '#/components/schemas/RecordingConfigTranscriptProvider' description: Transcription provider config. Use one provider key per request. title: RecordingConfigTranscript RecordingConfigRealtimeEndpointsItems: type: object properties: type: type: string url: type: string events: type: array items: type: string title: RecordingConfigRealtimeEndpointsItems RecordingConfig: type: object properties: retention: $ref: '#/components/schemas/RecordingConfigRetention' transcript: $ref: '#/components/schemas/RecordingConfigTranscript' realtime_endpoints: type: array items: $ref: '#/components/schemas/RecordingConfigRealtimeEndpointsItems' title: RecordingConfig CreateBotRequest: type: object properties: meeting_link: type: string description: The URL of the Google Meet, Zoom, or Teams meeting. bot_name: type: string description: The display name the bot will use in the meeting. video_required: type: boolean default: true description: Whether the bot should record video. bot_message: type: string description: An initial message for the bot to post in the meeting chat. bot_image_url: type: string description: URL for the bot's profile picture or avatar. callback_url: type: string description: A URL to receive webhook event callbacks. join_at: type: string format: date-time description: ISO 8601 datetime to schedule the bot to join the meeting. agent_config_id: type: string description: The ID of the agent configuration to enable agentic features. custom_attributes: type: object additionalProperties: description: Any type description: Arbitrary key-value metadata attached to the bot. socket_connection_url: $ref: '#/components/schemas/CreateBotRequestSocketConnectionUrl' description: WebSocket URL for two-way audio/data bridge connection. live_audio_required: $ref: '#/components/schemas/CreateBotRequestLiveAudioRequired' description: WebSocket URL to stream live audio output from the meeting. live_video_required: $ref: '#/components/schemas/CreateBotRequestLiveVideoRequired' description: WebSocket URL to stream live video output from the meeting. live_transcription_required: $ref: '#/components/schemas/CreateBotRequestLiveTranscriptionRequired' description: Webhook URL to receive live transcription events. automatic_leave: $ref: '#/components/schemas/AutomaticLeaveConfig' recording_config: $ref: '#/components/schemas/RecordingConfig' required: - meeting_link - bot_name title: CreateBotRequest BotResponse: type: object properties: bot_id: type: string transcript_id: type: - string - 'null' meeting_url: type: string status: type: string title: BotResponse securitySchemes: TokenAuth: type: apiKey in: header name: Authorization description: 'Format: Token ' ``` ## SDK Code Examples ```python Basic Bot (Video Recording) import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Basic Bot (Video Recording) const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Basic Bot (Video Recording) package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Basic Bot (Video Recording) require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true\n}" response = http.request(request) puts response.read_body ``` ```java Basic Bot (Video Recording) import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true\n}") .asString(); ``` ```php Basic Bot (Video Recording) request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Basic Bot (Video Recording) using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Basic Bot (Video Recording) import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Webhook import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": False, "callback_url": "https://your-server.com/webhook" } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Webhook const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":false,"callback_url":"https://your-server.com/webhook"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Webhook package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": false,\n \"callback_url\": \"https://your-server.com/webhook\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Webhook require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": false,\n \"callback_url\": \"https://your-server.com/webhook\"\n}" response = http.request(request) puts response.read_body ``` ```java Webhook import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": false,\n \"callback_url\": \"https://your-server.com/webhook\"\n}") .asString(); ``` ```php Webhook request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": false, "callback_url": "https://your-server.com/webhook" }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Webhook using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": false,\n \"callback_url\": \"https://your-server.com/webhook\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Webhook import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": false, "callback_url": "https://your-server.com/webhook" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Custom Attributes import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Custom Attributes const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"custom_attributes":{"tag":"Meetstream","sample":"testing","user":"your-user-id"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Custom Attributes package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Custom Attributes require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Custom Attributes import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n }\n}") .asString(); ``` ```php Bot with Custom Attributes request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Custom Attributes using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Custom Attributes import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "custom_attributes": [ "tag": "Meetstream", "sample": "testing", "user": "your-user-id" ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Automatic Leave Config import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "automatic_leave": { "waiting_room_timeout": 600, "everyone_left_timeout": 300, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Automatic Leave Config const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"automatic_leave":{"waiting_room_timeout":600,"everyone_left_timeout":300,"voice_inactivity_timeout":100,"in_call_recording_timeout":14400,"recording_permission_denied_timeout":60}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Automatic Leave Config package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"automatic_leave\": {\n \"waiting_room_timeout\": 600,\n \"everyone_left_timeout\": 300,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Automatic Leave Config require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"automatic_leave\": {\n \"waiting_room_timeout\": 600,\n \"everyone_left_timeout\": 300,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Automatic Leave Config import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"automatic_leave\": {\n \"waiting_room_timeout\": 600,\n \"everyone_left_timeout\": 300,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n }\n}") .asString(); ``` ```php Bot with Automatic Leave Config request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "automatic_leave": { "waiting_room_timeout": 600, "everyone_left_timeout": 300, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Automatic Leave Config using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"automatic_leave\": {\n \"waiting_room_timeout\": 600,\n \"everyone_left_timeout\": 300,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Automatic Leave Config import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "automatic_leave": [ "waiting_room_timeout": 600, "everyone_left_timeout": 300, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Participants Notification import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "recording_config": { "realtime_endpoints": [ { "type": "webhook", "url": "https://your-server.com/webhook", "events": ["participant_events.join", "participant_events.leave"] } ] } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Participants Notification const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"recording_config":{"realtime_endpoints":[{"type":"webhook","url":"https://your-server.com/webhook","events":["participant_events.join","participant_events.leave"]}]}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Participants Notification package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"realtime_endpoints\": [\n {\n \"type\": \"webhook\",\n \"url\": \"https://your-server.com/webhook\",\n \"events\": [\n \"participant_events.join\",\n \"participant_events.leave\"\n ]\n }\n ]\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Participants Notification require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"realtime_endpoints\": [\n {\n \"type\": \"webhook\",\n \"url\": \"https://your-server.com/webhook\",\n \"events\": [\n \"participant_events.join\",\n \"participant_events.leave\"\n ]\n }\n ]\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Participants Notification import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"realtime_endpoints\": [\n {\n \"type\": \"webhook\",\n \"url\": \"https://your-server.com/webhook\",\n \"events\": [\n \"participant_events.join\",\n \"participant_events.leave\"\n ]\n }\n ]\n }\n}") .asString(); ``` ```php Bot with Participants Notification request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": { "realtime_endpoints": [ { "type": "webhook", "url": "https://your-server.com/webhook", "events": [ "participant_events.join", "participant_events.leave" ] } ] } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Participants Notification using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"realtime_endpoints\": [\n {\n \"type\": \"webhook\",\n \"url\": \"https://your-server.com/webhook\",\n \"events\": [\n \"participant_events.join\",\n \"participant_events.leave\"\n ]\n }\n ]\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Participants Notification import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": ["realtime_endpoints": [ [ "type": "webhook", "url": "https://your-server.com/webhook", "events": ["participant_events.join", "participant_events.leave"] ] ]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Auto Delete Config import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "callback_url": "https://your-server.com/webhook", "recording_config": { "retention": { "type": "timed", "hours": 24 } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Auto Delete Config const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"callback_url":"https://your-server.com/webhook","recording_config":{"retention":{"type":"timed","hours":24}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Auto Delete Config package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"callback_url\": \"https://your-server.com/webhook\",\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Auto Delete Config require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"callback_url\": \"https://your-server.com/webhook\",\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Auto Delete Config import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"callback_url\": \"https://your-server.com/webhook\",\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}") .asString(); ``` ```php Bot with Auto Delete Config request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "callback_url": "https://your-server.com/webhook", "recording_config": { "retention": { "type": "timed", "hours": 24 } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Auto Delete Config using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"callback_url\": \"https://your-server.com/webhook\",\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Auto Delete Config import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "callback_url": "https://your-server.com/webhook", "recording_config": ["retention": [ "type": "timed", "hours": 24 ]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Schedule Bot import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "join_at": "2026-12-20T20:00:00+05:30" } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Schedule Bot const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"join_at":"2026-12-20T20:00:00+05:30"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Schedule Bot package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"join_at\": \"2026-12-20T20:00:00+05:30\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Schedule Bot require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"join_at\": \"2026-12-20T20:00:00+05:30\"\n}" response = http.request(request) puts response.read_body ``` ```java Schedule Bot import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"join_at\": \"2026-12-20T20:00:00+05:30\"\n}") .asString(); ``` ```php Schedule Bot request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "join_at": "2026-12-20T20:00:00+05:30" }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Schedule Bot using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"join_at\": \"2026-12-20T20:00:00+05:30\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Schedule Bot import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "join_at": "2026-12-20T20:00:00+05:30" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Image import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png" } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Image const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"bot_image_url":"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Image package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Image require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\"\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Image import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\"\n}") .asString(); ``` ```php Bot with Image request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png" }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Image using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Image import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Initial Message in Chat import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "bot_message": "Hey Everyone :wave:, I'm a speaking agent" } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Initial Message in Chat const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"bot_message":"Hey Everyone :wave:, I\'m a speaking agent"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Initial Message in Chat package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Initial Message in Chat require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\"\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Initial Message in Chat import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\"\n}") .asString(); ``` ```php Bot with Initial Message in Chat request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave:, I\'m a speaking agent" }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Initial Message in Chat using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Initial Message in Chat import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave:, I'm a speaking agent" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — Deepgram import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "recording_config": { "transcript": { "provider": { "deepgram": { "model": "nova-3", "language": "en", "punctuate": True, "smart_format": True, "diarize": True, "paragraphs": True, "numerals": True, "filler_words": False, "keywords": ["MeetStream", "recording", "transcript"], "utterances": True, "utt_split": 0.8, "detect_language": False, "search": ["MeetStream", "recording"], "tag": ["custom"] } } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — Deepgram const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"recording_config":{"transcript":{"provider":{"deepgram":{"model":"nova-3","language":"en","punctuate":true,"smart_format":true,"diarize":true,"paragraphs":true,"numerals":true,"filler_words":false,"keywords":["MeetStream","recording","transcript"],"utterances":true,"utt_split":0.8,"detect_language":false,"search":["MeetStream","recording"],"tag":["custom"]}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — Deepgram package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram\": {\n \"model\": \"nova-3\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"diarize\": true,\n \"paragraphs\": true,\n \"numerals\": true,\n \"filler_words\": false,\n \"keywords\": [\n \"MeetStream\",\n \"recording\",\n \"transcript\"\n ],\n \"utterances\": true,\n \"utt_split\": 0.8,\n \"detect_language\": false,\n \"search\": [\n \"MeetStream\",\n \"recording\"\n ],\n \"tag\": [\n \"custom\"\n ]\n }\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — Deepgram require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram\": {\n \"model\": \"nova-3\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"diarize\": true,\n \"paragraphs\": true,\n \"numerals\": true,\n \"filler_words\": false,\n \"keywords\": [\n \"MeetStream\",\n \"recording\",\n \"transcript\"\n ],\n \"utterances\": true,\n \"utt_split\": 0.8,\n \"detect_language\": false,\n \"search\": [\n \"MeetStream\",\n \"recording\"\n ],\n \"tag\": [\n \"custom\"\n ]\n }\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — Deepgram import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram\": {\n \"model\": \"nova-3\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"diarize\": true,\n \"paragraphs\": true,\n \"numerals\": true,\n \"filler_words\": false,\n \"keywords\": [\n \"MeetStream\",\n \"recording\",\n \"transcript\"\n ],\n \"utterances\": true,\n \"utt_split\": 0.8,\n \"detect_language\": false,\n \"search\": [\n \"MeetStream\",\n \"recording\"\n ],\n \"tag\": [\n \"custom\"\n ]\n }\n }\n }\n }\n}") .asString(); ``` ```php Transcription — Deepgram request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": { "transcript": { "provider": { "deepgram": { "model": "nova-3", "language": "en", "punctuate": true, "smart_format": true, "diarize": true, "paragraphs": true, "numerals": true, "filler_words": false, "keywords": [ "MeetStream", "recording", "transcript" ], "utterances": true, "utt_split": 0.8, "detect_language": false, "search": [ "MeetStream", "recording" ], "tag": [ "custom" ] } } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — Deepgram using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram\": {\n \"model\": \"nova-3\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"diarize\": true,\n \"paragraphs\": true,\n \"numerals\": true,\n \"filler_words\": false,\n \"keywords\": [\n \"MeetStream\",\n \"recording\",\n \"transcript\"\n ],\n \"utterances\": true,\n \"utt_split\": 0.8,\n \"detect_language\": false,\n \"search\": [\n \"MeetStream\",\n \"recording\"\n ],\n \"tag\": [\n \"custom\"\n ]\n }\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — Deepgram import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": ["transcript": ["provider": ["deepgram": [ "model": "nova-3", "language": "en", "punctuate": true, "smart_format": true, "diarize": true, "paragraphs": true, "numerals": true, "filler_words": false, "keywords": ["MeetStream", "recording", "transcript"], "utterances": true, "utt_split": 0.8, "detect_language": false, "search": ["MeetStream", "recording"], "tag": ["custom"] ]]]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — AssemblyAI import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "recording_config": { "transcript": { "provider": { "assemblyai": { "speech_models": ["universal-2"], "language_code": "en_us", "speaker_labels": True, "punctuate": True, "format_text": True, "filter_profanity": False, "redact_pii": False, "keyterms_prompt": ["MeetStream"], "auto_chapters": False, "entity_detection": False } } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — AssemblyAI const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"recording_config":{"transcript":{"provider":{"assemblyai":{"speech_models":["universal-2"],"language_code":"en_us","speaker_labels":true,"punctuate":true,"format_text":true,"filter_profanity":false,"redact_pii":false,"keyterms_prompt":["MeetStream"],"auto_chapters":false,"entity_detection":false}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — AssemblyAI package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai\": {\n \"speech_models\": [\n \"universal-2\"\n ],\n \"language_code\": \"en_us\",\n \"speaker_labels\": true,\n \"punctuate\": true,\n \"format_text\": true,\n \"filter_profanity\": false,\n \"redact_pii\": false,\n \"keyterms_prompt\": [\n \"MeetStream\"\n ],\n \"auto_chapters\": false,\n \"entity_detection\": false\n }\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — AssemblyAI require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai\": {\n \"speech_models\": [\n \"universal-2\"\n ],\n \"language_code\": \"en_us\",\n \"speaker_labels\": true,\n \"punctuate\": true,\n \"format_text\": true,\n \"filter_profanity\": false,\n \"redact_pii\": false,\n \"keyterms_prompt\": [\n \"MeetStream\"\n ],\n \"auto_chapters\": false,\n \"entity_detection\": false\n }\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — AssemblyAI import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai\": {\n \"speech_models\": [\n \"universal-2\"\n ],\n \"language_code\": \"en_us\",\n \"speaker_labels\": true,\n \"punctuate\": true,\n \"format_text\": true,\n \"filter_profanity\": false,\n \"redact_pii\": false,\n \"keyterms_prompt\": [\n \"MeetStream\"\n ],\n \"auto_chapters\": false,\n \"entity_detection\": false\n }\n }\n }\n }\n}") .asString(); ``` ```php Transcription — AssemblyAI request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": { "transcript": { "provider": { "assemblyai": { "speech_models": [ "universal-2" ], "language_code": "en_us", "speaker_labels": true, "punctuate": true, "format_text": true, "filter_profanity": false, "redact_pii": false, "keyterms_prompt": [ "MeetStream" ], "auto_chapters": false, "entity_detection": false } } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — AssemblyAI using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai\": {\n \"speech_models\": [\n \"universal-2\"\n ],\n \"language_code\": \"en_us\",\n \"speaker_labels\": true,\n \"punctuate\": true,\n \"format_text\": true,\n \"filter_profanity\": false,\n \"redact_pii\": false,\n \"keyterms_prompt\": [\n \"MeetStream\"\n ],\n \"auto_chapters\": false,\n \"entity_detection\": false\n }\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — AssemblyAI import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "recording_config": ["transcript": ["provider": ["assemblyai": [ "speech_models": ["universal-2"], "language_code": "en_us", "speaker_labels": true, "punctuate": true, "format_text": true, "filter_profanity": false, "redact_pii": false, "keyterms_prompt": ["MeetStream"], "auto_chapters": false, "entity_detection": false ]]]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — Jigsaw import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "bot_message": "Hey Everyone, I'm Checking Jigsawstack transcript", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" }, "automatic_leave": { "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 }, "recording_config": { "retention": { "type": "timed", "hours": 24 }, "transcript": { "provider": { "jigsawstack": { "language": "auto", "translate": False, "by_speaker": True } } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — Jigsaw const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"bot_message":"Hey Everyone, I\'m Checking Jigsawstack transcript","bot_image_url":"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png","custom_attributes":{"tag":"Meetstream","sample":"testing","user":"your-user-id"},"automatic_leave":{"waiting_room_timeout":100,"everyone_left_timeout":100,"voice_inactivity_timeout":100,"in_call_recording_timeout":14400,"recording_permission_denied_timeout":60},"recording_config":{"retention":{"type":"timed","hours":24},"transcript":{"provider":{"jigsawstack":{"language":"auto","translate":false,"by_speaker":true}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — Jigsaw package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone, I'm Checking Jigsawstack transcript\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n },\n \"transcript\": {\n \"provider\": {\n \"jigsawstack\": {\n \"language\": \"auto\",\n \"translate\": false,\n \"by_speaker\": true\n }\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — Jigsaw require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone, I'm Checking Jigsawstack transcript\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n },\n \"transcript\": {\n \"provider\": {\n \"jigsawstack\": {\n \"language\": \"auto\",\n \"translate\": false,\n \"by_speaker\": true\n }\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — Jigsaw import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone, I'm Checking Jigsawstack transcript\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n },\n \"transcript\": {\n \"provider\": {\n \"jigsawstack\": {\n \"language\": \"auto\",\n \"translate\": false,\n \"by_speaker\": true\n }\n }\n }\n }\n}") .asString(); ``` ```php Transcription — Jigsaw request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone, I\'m Checking Jigsawstack transcript", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" }, "automatic_leave": { "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 }, "recording_config": { "retention": { "type": "timed", "hours": 24 }, "transcript": { "provider": { "jigsawstack": { "language": "auto", "translate": false, "by_speaker": true } } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — Jigsaw using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone, I'm Checking Jigsawstack transcript\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n },\n \"transcript\": {\n \"provider\": {\n \"jigsawstack\": {\n \"language\": \"auto\",\n \"translate\": false,\n \"by_speaker\": true\n }\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — Jigsaw import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone, I'm Checking Jigsawstack transcript", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "custom_attributes": [ "tag": "Meetstream", "sample": "testing", "user": "your-user-id" ], "automatic_leave": [ "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 ], "recording_config": [ "retention": [ "type": "timed", "hours": 24 ], "transcript": ["provider": ["jigsawstack": [ "language": "auto", "translate": false, "by_speaker": true ]]] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — Captions import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "meeting_captions": {} } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — Captions const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"live_transcription_required":{"webhook_url":"https://your-server.com/webhook"},"recording_config":{"transcript":{"provider":{"meeting_captions":{}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — Captions package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"meeting_captions\": {}\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — Captions require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"meeting_captions\": {}\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — Captions import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"meeting_captions\": {}\n }\n }\n }\n}") .asString(); ``` ```php Transcription — Captions request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "meeting_captions": {} } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — Captions using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"meeting_captions\": {}\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — Captions import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": ["webhook_url": "https://your-server.com/webhook"], "recording_config": ["transcript": ["provider": ["meeting_captions": []]]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — AssemblyAI Streaming import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "assemblyai_streaming": { "transcription_mode": "raw", "sample_rate": 48000, "speech_model": "universal-streaming-english", "format_turns": False, "encoding": "pcm_s16le", "vad_threshold": "0.4", "end_of_turn_confidence_threshold": "0.4", "inactivity_timeout": 300, "min_end_of_turn_silence_when_confident": "400", "max_turn_silence": "1280" } } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — AssemblyAI Streaming const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"live_transcription_required":{"webhook_url":"https://your-server.com/webhook"},"recording_config":{"transcript":{"provider":{"assemblyai_streaming":{"transcription_mode":"raw","sample_rate":48000,"speech_model":"universal-streaming-english","format_turns":false,"encoding":"pcm_s16le","vad_threshold":"0.4","end_of_turn_confidence_threshold":"0.4","inactivity_timeout":300,"min_end_of_turn_silence_when_confident":"400","max_turn_silence":"1280"}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — AssemblyAI Streaming package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai_streaming\": {\n \"transcription_mode\": \"raw\",\n \"sample_rate\": 48000,\n \"speech_model\": \"universal-streaming-english\",\n \"format_turns\": false,\n \"encoding\": \"pcm_s16le\",\n \"vad_threshold\": \"0.4\",\n \"end_of_turn_confidence_threshold\": \"0.4\",\n \"inactivity_timeout\": 300,\n \"min_end_of_turn_silence_when_confident\": \"400\",\n \"max_turn_silence\": \"1280\"\n }\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — AssemblyAI Streaming require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai_streaming\": {\n \"transcription_mode\": \"raw\",\n \"sample_rate\": 48000,\n \"speech_model\": \"universal-streaming-english\",\n \"format_turns\": false,\n \"encoding\": \"pcm_s16le\",\n \"vad_threshold\": \"0.4\",\n \"end_of_turn_confidence_threshold\": \"0.4\",\n \"inactivity_timeout\": 300,\n \"min_end_of_turn_silence_when_confident\": \"400\",\n \"max_turn_silence\": \"1280\"\n }\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — AssemblyAI Streaming import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai_streaming\": {\n \"transcription_mode\": \"raw\",\n \"sample_rate\": 48000,\n \"speech_model\": \"universal-streaming-english\",\n \"format_turns\": false,\n \"encoding\": \"pcm_s16le\",\n \"vad_threshold\": \"0.4\",\n \"end_of_turn_confidence_threshold\": \"0.4\",\n \"inactivity_timeout\": 300,\n \"min_end_of_turn_silence_when_confident\": \"400\",\n \"max_turn_silence\": \"1280\"\n }\n }\n }\n }\n}") .asString(); ``` ```php Transcription — AssemblyAI Streaming request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "assemblyai_streaming": { "transcription_mode": "raw", "sample_rate": 48000, "speech_model": "universal-streaming-english", "format_turns": false, "encoding": "pcm_s16le", "vad_threshold": "0.4", "end_of_turn_confidence_threshold": "0.4", "inactivity_timeout": 300, "min_end_of_turn_silence_when_confident": "400", "max_turn_silence": "1280" } } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — AssemblyAI Streaming using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"assemblyai_streaming\": {\n \"transcription_mode\": \"raw\",\n \"sample_rate\": 48000,\n \"speech_model\": \"universal-streaming-english\",\n \"format_turns\": false,\n \"encoding\": \"pcm_s16le\",\n \"vad_threshold\": \"0.4\",\n \"end_of_turn_confidence_threshold\": \"0.4\",\n \"inactivity_timeout\": 300,\n \"min_end_of_turn_silence_when_confident\": \"400\",\n \"max_turn_silence\": \"1280\"\n }\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — AssemblyAI Streaming import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": ["webhook_url": "https://your-server.com/webhook"], "recording_config": ["transcript": ["provider": ["assemblyai_streaming": [ "transcription_mode": "raw", "sample_rate": 48000, "speech_model": "universal-streaming-english", "format_turns": false, "encoding": "pcm_s16le", "vad_threshold": "0.4", "end_of_turn_confidence_threshold": "0.4", "inactivity_timeout": 300, "min_end_of_turn_silence_when_confident": "400", "max_turn_silence": "1280" ]]]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Transcription — Deepgram Streaming import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "deepgram_streaming": { "transcription_mode": "sentence", "model": "nova-2", "language": "en", "punctuate": True, "smart_format": True, "endpointing": 300, "vad_events": True, "utterance_end_ms": 1000, "encoding": "linear16", "channels": 1 } } } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Transcription — Deepgram Streaming const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"live_transcription_required":{"webhook_url":"https://your-server.com/webhook"},"recording_config":{"transcript":{"provider":{"deepgram_streaming":{"transcription_mode":"sentence","model":"nova-2","language":"en","punctuate":true,"smart_format":true,"endpointing":300,"vad_events":true,"utterance_end_ms":1000,"encoding":"linear16","channels":1}}}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Transcription — Deepgram Streaming package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram_streaming\": {\n \"transcription_mode\": \"sentence\",\n \"model\": \"nova-2\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"endpointing\": 300,\n \"vad_events\": true,\n \"utterance_end_ms\": 1000,\n \"encoding\": \"linear16\",\n \"channels\": 1\n }\n }\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Transcription — Deepgram Streaming require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram_streaming\": {\n \"transcription_mode\": \"sentence\",\n \"model\": \"nova-2\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"endpointing\": 300,\n \"vad_events\": true,\n \"utterance_end_ms\": 1000,\n \"encoding\": \"linear16\",\n \"channels\": 1\n }\n }\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java Transcription — Deepgram Streaming import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram_streaming\": {\n \"transcription_mode\": \"sentence\",\n \"model\": \"nova-2\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"endpointing\": 300,\n \"vad_events\": true,\n \"utterance_end_ms\": 1000,\n \"encoding\": \"linear16\",\n \"channels\": 1\n }\n }\n }\n }\n}") .asString(); ``` ```php Transcription — Deepgram Streaming request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": { "webhook_url": "https://your-server.com/webhook" }, "recording_config": { "transcript": { "provider": { "deepgram_streaming": { "transcription_mode": "sentence", "model": "nova-2", "language": "en", "punctuate": true, "smart_format": true, "endpointing": 300, "vad_events": true, "utterance_end_ms": 1000, "encoding": "linear16", "channels": 1 } } } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Transcription — Deepgram Streaming using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"live_transcription_required\": {\n \"webhook_url\": \"https://your-server.com/webhook\"\n },\n \"recording_config\": {\n \"transcript\": {\n \"provider\": {\n \"deepgram_streaming\": {\n \"transcription_mode\": \"sentence\",\n \"model\": \"nova-2\",\n \"language\": \"en\",\n \"punctuate\": true,\n \"smart_format\": true,\n \"endpointing\": 300,\n \"vad_events\": true,\n \"utterance_end_ms\": 1000,\n \"encoding\": \"linear16\",\n \"channels\": 1\n }\n }\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Transcription — Deepgram Streaming import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "live_transcription_required": ["webhook_url": "https://your-server.com/webhook"], "recording_config": ["transcript": ["provider": ["deepgram_streaming": [ "transcription_mode": "sentence", "model": "nova-2", "language": "en", "punctuate": true, "smart_format": true, "endpointing": 300, "vad_events": true, "utterance_end_ms": 1000, "encoding": "linear16", "channels": 1 ]]]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Audio Streaming (Two Way) import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" }, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Audio Streaming (Two Way) const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"socket_connection_url":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge"},"live_audio_required":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Audio Streaming (Two Way) package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Audio Streaming (Two Way) require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Audio Streaming (Two Way) import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}") .asString(); ``` ```php Bot with Audio Streaming (Two Way) request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" }, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Audio Streaming (Two Way) using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Audio Streaming (Two Way) import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "socket_connection_url": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge"], "live_audio_required": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Dynamic Messaging import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": True, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Dynamic Messaging const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Grok Agent","video_required":true,"socket_connection_url":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Dynamic Messaging package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Dynamic Messaging require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Dynamic Messaging import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n }\n}") .asString(); ``` ```php Bot with Dynamic Messaging request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": true, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Dynamic Messaging using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Dynamic Messaging import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": true, "socket_connection_url": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge"] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Bot with Live Audio Streaming import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": True, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Bot with Live Audio Streaming const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Grok Agent","video_required":true,"live_audio_required":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Bot with Live Audio Streaming package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Bot with Live Audio Streaming require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java Bot with Live Audio Streaming import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}") .asString(); ``` ```php Bot with Live Audio Streaming request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": true, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Bot with Live Audio Streaming using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Grok Agent\",\n \"video_required\": true,\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Bot with Live Audio Streaming import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Grok Agent", "video_required": true, "live_audio_required": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Video Streaming import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "bot_message": "Hey Everyone :wave:, I'm a speaking agent", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" }, "live_video_required": { "websocket_url": "wss://your-server.com/video-stream" } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Video Streaming const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"bot_message":"Hey Everyone :wave:, I\'m a speaking agent","bot_image_url":"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png","live_audio_required":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"},"live_video_required":{"websocket_url":"wss://your-server.com/video-stream"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Video Streaming package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"live_video_required\": {\n \"websocket_url\": \"wss://your-server.com/video-stream\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Video Streaming require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"live_video_required\": {\n \"websocket_url\": \"wss://your-server.com/video-stream\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java Video Streaming import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"live_video_required\": {\n \"websocket_url\": \"wss://your-server.com/video-stream\"\n }\n}") .asString(); ``` ```php Video Streaming request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave:, I\'m a speaking agent", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" }, "live_video_required": { "websocket_url": "wss://your-server.com/video-stream" } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Video Streaming using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave:, I'm a speaking agent\",\n \"bot_image_url\": \"https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png\",\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"live_video_required\": {\n \"websocket_url\": \"wss://your-server.com/video-stream\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Video Streaming import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave:, I'm a speaking agent", "bot_image_url": "https://blog.meetstream.ai/wp-content/uploads/2025/08/Zoom-BG-Image.png", "live_audio_required": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"], "live_video_required": ["websocket_url": "wss://your-server.com/video-stream"] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python MIA (Meetstream Infrastructure Agent) import requests url = "https://api.meetstream.ai/api/v1/bots/create_bot" payload = { "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": True, "bot_message": "Hey Everyone :wave , I'm a speaking agent", "bot_image_url": "https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg", "agent_config_id": "your-agent-config-id", "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" }, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" }, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" }, "automatic_leave": { "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 }, "recording_config": { "retention": { "type": "timed", "hours": 24 } } } headers = { "Authorization": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript MIA (Meetstream Infrastructure Agent) const url = 'https://api.meetstream.ai/api/v1/bots/create_bot'; const options = { method: 'POST', headers: {Authorization: '', 'Content-Type': 'application/json'}, body: '{"meeting_link":"https://meet.google.com/zcs-xwyv-hvi","bot_name":"Meetstream Agent","video_required":true,"bot_message":"Hey Everyone :wave , I\'m a speaking agent","bot_image_url":"https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg","agent_config_id":"your-agent-config-id","custom_attributes":{"tag":"Meetstream","sample":"testing","user":"your-user-id"},"socket_connection_url":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge"},"live_audio_required":{"websocket_url":"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"},"automatic_leave":{"waiting_room_timeout":100,"everyone_left_timeout":100,"voice_inactivity_timeout":100,"in_call_recording_timeout":14400,"recording_permission_denied_timeout":60},"recording_config":{"retention":{"type":"timed","hours":24}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go MIA (Meetstream Infrastructure Agent) package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.meetstream.ai/api/v1/bots/create_bot" payload := strings.NewReader("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave , I'm a speaking agent\",\n \"bot_image_url\": \"https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg\",\n \"agent_config_id\": \"your-agent-config-id\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby MIA (Meetstream Infrastructure Agent) require 'uri' require 'net/http' url = URI("https://api.meetstream.ai/api/v1/bots/create_bot") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave , I'm a speaking agent\",\n \"bot_image_url\": \"https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg\",\n \"agent_config_id\": \"your-agent-config-id\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java MIA (Meetstream Infrastructure Agent) import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.meetstream.ai/api/v1/bots/create_bot") .header("Authorization", "") .header("Content-Type", "application/json") .body("{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave , I'm a speaking agent\",\n \"bot_image_url\": \"https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg\",\n \"agent_config_id\": \"your-agent-config-id\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}") .asString(); ``` ```php MIA (Meetstream Infrastructure Agent) request('POST', 'https://api.meetstream.ai/api/v1/bots/create_bot', [ 'body' => '{ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave , I\'m a speaking agent", "bot_image_url": "https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg", "agent_config_id": "your-agent-config-id", "custom_attributes": { "tag": "Meetstream", "sample": "testing", "user": "your-user-id" }, "socket_connection_url": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge" }, "live_audio_required": { "websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio" }, "automatic_leave": { "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 }, "recording_config": { "retention": { "type": "timed", "hours": 24 } } }', 'headers' => [ 'Authorization' => '', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp MIA (Meetstream Infrastructure Agent) using RestSharp; var client = new RestClient("https://api.meetstream.ai/api/v1/bots/create_bot"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"meeting_link\": \"https://meet.google.com/zcs-xwyv-hvi\",\n \"bot_name\": \"Meetstream Agent\",\n \"video_required\": true,\n \"bot_message\": \"Hey Everyone :wave , I'm a speaking agent\",\n \"bot_image_url\": \"https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg\",\n \"agent_config_id\": \"your-agent-config-id\",\n \"custom_attributes\": {\n \"tag\": \"Meetstream\",\n \"sample\": \"testing\",\n \"user\": \"your-user-id\"\n },\n \"socket_connection_url\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge\"\n },\n \"live_audio_required\": {\n \"websocket_url\": \"wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio\"\n },\n \"automatic_leave\": {\n \"waiting_room_timeout\": 100,\n \"everyone_left_timeout\": 100,\n \"voice_inactivity_timeout\": 100,\n \"in_call_recording_timeout\": 14400,\n \"recording_permission_denied_timeout\": 60\n },\n \"recording_config\": {\n \"retention\": {\n \"type\": \"timed\",\n \"hours\": 24\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift MIA (Meetstream Infrastructure Agent) import Foundation let headers = [ "Authorization": "", "Content-Type": "application/json" ] let parameters = [ "meeting_link": "https://meet.google.com/zcs-xwyv-hvi", "bot_name": "Meetstream Agent", "video_required": true, "bot_message": "Hey Everyone :wave , I'm a speaking agent", "bot_image_url": "https://www.malwarebytes.com/wp-content/uploads/sites/2/2024/08/Grok_logo.jpg", "agent_config_id": "your-agent-config-id", "custom_attributes": [ "tag": "Meetstream", "sample": "testing", "user": "your-user-id" ], "socket_connection_url": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge"], "live_audio_required": ["websocket_url": "wss://agent-meetstream-prd-main.meetstream.ai/bridge/audio"], "automatic_leave": [ "waiting_room_timeout": 100, "everyone_left_timeout": 100, "voice_inactivity_timeout": 100, "in_call_recording_timeout": 14400, "recording_permission_denied_timeout": 60 ], "recording_config": ["retention": [ "type": "timed", "hours": 24 ]] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.meetstream.ai/api/v1/bots/create_bot")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```