Transcribe meeting
🎙️ Start a Meeting Transcription
Initiate a transcription for a Google Meet, Microsoft Teams, or Zoom meeting. The bot will join the meeting instantly.
Endpoint
POST https://api.tor.app/developer/transcription/meeting
Headers
- Authorization (string, required): Bearer token with your API key (e.g.,
Authorization: Bearer your_api_key
).
POST Body Parameters
- meetingUrl (string, required): The meeting link for Google Meet, Microsoft Teams, or Zoom (e.g.,
https://meet.google.com/xqu-ouwe-yve
). - meeting_bot_name (string, optional): Custom bot name for Teams or Zoom meetings. Not configurable for Google Meet.
- meeting_language (string, optional): Language for transcription (e.g.,
en-US
). Default: platform default. - summary_template_id (string, optional): ID of the summary template to apply to the transcription. Default: none.
Responses
200 OK
{
"success": true,
"message": "Successfully added meeting url. Bot is joining the meeting.",
"order_id": "de248567f812cd65527972e4496081d8386969c6fceccc4334bfb8b9c2182985003c61ac29a9f9f1579ea9c6e8ffc78ea0c939f72f101a8de0ea6492b29d603b"
}
403 Forbidden
{
"error": true,
"message": "Invalid or missing authorization header"
}
Returned if the Authorization
header is missing or contains an invalid API key.
406 Not Acceptable
{
"error": true,
"message": "Meeting link is invalid"
}
Returned if the meetingUrl
is invalid or if the user's account has insufficient minutes (0 or less). In the latter case, the message will prompt the user to add credits.
Notes
- The bot joins the meeting instantly upon a successful request.
- Save the
order_id
to track the transcription process. - Transcription is automatically generated after the meeting ends and the recording is available.
- To check the meeting status, use the Get Meeting API (external link).
- Only Google Meet, Microsoft Teams, and Zoom meetings are supported.
- Insufficient minutes will result in a 406 error, and an invalid/missing API key will result in a 403 error.
import json
import requests
api_key = "your_api_key"
url = "https://api.tor.app/developer/transcription/meeting"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"meetingUrl": "your_meeting_url"
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())
const axios = require('axios');
const api_key = "your_api_key";
const url = "https://api.tor.app/developer/transcription/meeting";
const headers = {
"Authorization": `Bearer ${api_key}`,
"Content-Type": "application/json"
};
const data = {
meetingUrl: "your_meeting_url"
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error(error.response.status);
console.error(error.response.data);
});
import okhttp3.*;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) throws Exception {
String api_key = "your_api_key";
String url = "https://api.tor.app/developer/transcription/meeting";
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.get("application/json; charset=utf-8");
JSONObject json = new JSONObject();
json.put("meetingUrl", "your_meeting_url");
RequestBody body = RequestBody.create(json.toString(), JSON);
Request request = new Request.Builder()
.url(url)
.header("Authorization", "Bearer " + api_key)
.header("Content-Type", "application/json")
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.code());
System.out.println(response.body().string());
}
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string api_key = "your_api_key";
string url = "https://api.tor.app/developer/transcription/meeting";
using HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {api_key}");
var data = new { meetingUrl = "your_meeting_url" };
string json = JsonSerializer.Serialize(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(url, content);
Console.WriteLine((int)response.StatusCode);
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
api_key := "your_api_key"
url := "https://api.tor.app/developer/transcription/meeting"
data := map[string]string{"meetingUrl": "your_meeting_url"}
jsonData, _ := json.Marshal(data)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer "+api_key)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
require 'net/http'
require 'json'
require 'uri'
api_key = "your_api_key"
url = URI("https://api.tor.app/developer/transcription/meeting")
data = { meetingUrl: "your_meeting_url" }
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer #{api_key}"
request["Content-Type"] = "application/json"
request.body = data.to_json
response = http.request(request)
puts response.code
puts response.body
<?php
$api_key = "your_api_key";
$url = "https://api.tor.app/developer/transcription/meeting";
$data = [
"meetingUrl" => "your_meeting_url"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $api_key",
"Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status . "\n";
echo $response . "\n";
curl_close($ch);
?>
import okhttp3.*
import org.json.JSONObject
import java.io.IOException
fun main() {
val api_key = "your_api_key"
val url = "https://api.tor.app/developer/transcription/meeting"
val client = OkHttpClient()
val JSON = MediaType.get("application/json; charset=utf-8")
val json = JSONObject().put("meetingUrl", "your_meeting_url")
val body = RequestBody.create(JSON, json.toString())
val request = Request.Builder()
.url(url)
.header("Authorization", "Bearer $api_key")
.header("Content-Type", "application/json")
.post(body)
.build()
client.newCall(request).execute().use { response ->
println(response.code)
println(response.body?.string())
}
}
import Foundation
let api_key = "your_api_key"
let url = URL(string: "https://api.tor.app/developer/transcription/meeting")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer \(api_key)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let data = ["meetingUrl": "your_meeting_url"]
let jsonData = try! JSONSerialization.data(withJSONObject: data)
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let httpResponse = response as? HTTPURLResponse {
print(httpResponse.statusCode)
}
if let data = data, let string = String(data: data, encoding: .utf8) {
print(string)
}
}
task.resume()
import 'dart:convert';
import 'dart:io';
void main() async {
final api_key = "your_api_key";
final url = Uri.parse("https://api.tor.app/developer/transcription/meeting");
final client = HttpClient();
final data = {"meetingUrl": "your_meeting_url"};
final jsonData = jsonEncode(data);
final request = await client.postUrl(url);
request.headers.set("Authorization", "Bearer $api_key");
request.headers.set("Content-Type", "application/json");
request.write(utf8.encode(jsonData));
final response = await request.close();
print(response.statusCode);
final responseBody = await response.transform(utf8.decoder).join();
print(responseBody);
}
Updated 10 days ago