Generates a temporary link to download the recording
curl --request POST \
--url https://api.meetgeek.ai/v1/meetings/{meetingId}/download \
--header 'Authorization: <api-key>'import requests
url = "https://api.meetgeek.ai/v1/meetings/{meetingId}/download"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://api.meetgeek.ai/v1/meetings/{meetingId}/download', 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://api.meetgeek.ai/v1/meetings/{meetingId}/download",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <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"
"net/http"
"io"
)
func main() {
url := "https://api.meetgeek.ai/v1/meetings/{meetingId}/download"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meetgeek.ai/v1/meetings/{meetingId}/download")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetgeek.ai/v1/meetings/{meetingId}/download")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"download_link": "https://media.meetgeek.ai/api/download?token=jQzYmM1NTAtM2NmMi00MmNhLW",
"expires_in": 14400
}{
"message": "bad request",
"reason": "missing api key"
}{
"message": "unauthorized"
}{
"message": "you do not have access to view this meeting"
}{
"message": "meeting not found"
}{
"message": "target resource is no longer available"
}{
"message": "quota limit reached",
"unit": "day"
}{
"message": "internal server error"
}API Reference
Download recording
Retrieves a temporary download link for a specific meeting recording
POST
/
v1
/
meetings
/
{meetingId}
/
download
Generates a temporary link to download the recording
curl --request POST \
--url https://api.meetgeek.ai/v1/meetings/{meetingId}/download \
--header 'Authorization: <api-key>'import requests
url = "https://api.meetgeek.ai/v1/meetings/{meetingId}/download"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://api.meetgeek.ai/v1/meetings/{meetingId}/download', 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://api.meetgeek.ai/v1/meetings/{meetingId}/download",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <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"
"net/http"
"io"
)
func main() {
url := "https://api.meetgeek.ai/v1/meetings/{meetingId}/download"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meetgeek.ai/v1/meetings/{meetingId}/download")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetgeek.ai/v1/meetings/{meetingId}/download")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"download_link": "https://media.meetgeek.ai/api/download?token=jQzYmM1NTAtM2NmMi00MmNhLW",
"expires_in": 14400
}{
"message": "bad request",
"reason": "missing api key"
}{
"message": "unauthorized"
}{
"message": "you do not have access to view this meeting"
}{
"message": "meeting not found"
}{
"message": "target resource is no longer available"
}{
"message": "quota limit reached",
"unit": "day"
}{
"message": "internal server error"
}This feature is available starting with the Pro plan.
The download link is valid for up to 4 hours from the time of generation.
Within that 4-hour window, repeated requests for the same recording will return the same download link.
A maximum of 5 simultaneous downloads is allowed per meeting id. Additional requests will be denied until active downloads complete.
Please only share the download link only with people or automations you trust, as anyone possessing the link will be able to download the meeting recording.
Authorizations
Type "Bearer" followed by a space and a token
Path Parameters
Meeting ID
Response
OK
A publicly accessible URL that includes a secure token. Accessing this link will immediately initiate the file download.
Example:
"https://media.meetgeek.ai/api/download?token=jQzYmM1NTAtM2NmMi00MmNhLW"
The number of seconds remaining until the download link expires and becomes invalid.
Example:
14400