Leave third party meeting platform
curl --request POST \
--url https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"meeting_bot_id": "meeting-bot-abc123"
}
'import requests
url = "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting"
payload = { "meeting_bot_id": "meeting-bot-abc123" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({meeting_bot_id: 'meeting-bot-abc123'})
};
fetch('https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'meeting_bot_id' => 'meeting-bot-abc123'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting"
payload := strings.NewReader("{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}"
response = http.request(request)
puts response.read_body{
"status": "left"
}{
"detail": "meeting_bot_id is required"
}{
"detail": "Invalid API key"
}{
"detail": "Failed to leave meeting"
}{
"detail": "Could not leave the meeting."
}{
"detail": "Meeting service is not configured"
}{
"detail": "Request timed out"
}Meeting platforms
Leave third party meeting platform
Remove your LemonSlice avatar from a third party meeting platform (Zoom, Google Meet, Microsoft Teams, or Webex)
This feature works only with LiveKit-based self-managed sessions. We recommend using our LiveKit plugin rather than calling this endpoint directly.
This endpoint should only be used to leave third party meeting platforms. Do not use it for regular LiveKit sessions.
POST
/
liveai
/
sessions
/
{session_id}
/
leave-meeting
Leave third party meeting platform
curl --request POST \
--url https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"meeting_bot_id": "meeting-bot-abc123"
}
'import requests
url = "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting"
payload = { "meeting_bot_id": "meeting-bot-abc123" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({meeting_bot_id: 'meeting-bot-abc123'})
};
fetch('https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'meeting_bot_id' => 'meeting-bot-abc123'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting"
payload := strings.NewReader("{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://lemonslice.com/api/liveai/sessions/{session_id}/leave-meeting")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meeting_bot_id\": \"meeting-bot-abc123\"\n}"
response = http.request(request)
puts response.read_body{
"status": "left"
}{
"detail": "meeting_bot_id is required"
}{
"detail": "Invalid API key"
}{
"detail": "Failed to leave meeting"
}{
"detail": "Could not leave the meeting."
}{
"detail": "Meeting service is not configured"
}{
"detail": "Request timed out"
}Authorizations
Your LemonSlice API token.
Path Parameters
The ID of the LemonSlice session associated with the third party meeting platform.
Body
application/json
The third party meeting platform ID returned by the join-meeting endpoint.
Example:
"meeting-bot-abc123"
Response
Avatar removed from the third party meeting platform.
Confirmation that the avatar has left the third party meeting platform.
Allowed value:
"left"⌘I

