curl --request POST \
--url http://localhost:6699/api/v1/search/transcript \
--header 'Content-Type: application/json' \
--header 'X-License-Key: <api-key>' \
--data '
{
"query": "hello world",
"cache_dir": "<string>",
"max_results": 50,
"media_paths": [
"<string>"
],
"search_all": true,
"speaker": "Anna",
"speaker_name": "Anna"
}
'import requests
url = "http://localhost:6699/api/v1/search/transcript"
payload = {
"query": "hello world",
"cache_dir": "<string>",
"max_results": 50,
"media_paths": ["<string>"],
"search_all": True,
"speaker": "Anna",
"speaker_name": "Anna"
}
headers = {
"X-License-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-License-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'hello world',
cache_dir: '<string>',
max_results: 50,
media_paths: ['<string>'],
search_all: true,
speaker: 'Anna',
speaker_name: 'Anna'
})
};
fetch('http://localhost:6699/api/v1/search/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "6699",
CURLOPT_URL => "http://localhost:6699/api/v1/search/transcript",
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([
'query' => 'hello world',
'cache_dir' => '<string>',
'max_results' => 50,
'media_paths' => [
'<string>'
],
'search_all' => true,
'speaker' => 'Anna',
'speaker_name' => 'Anna'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-License-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 := "http://localhost:6699/api/v1/search/transcript"
payload := strings.NewReader("{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-License-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("http://localhost:6699/api/v1/search/transcript")
.header("X-License-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:6699/api/v1/search/transcript")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["X-License-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}"
response = http.request(request)
puts response.read_body{
"matches": [
{
"hash_str": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"text": "<string>",
"start_timestamp": "<string>",
"end_timestamp": "<string>",
"media_path": "<string>",
"speaker": "SPEAKER_00",
"speaker_name": "Anna",
"speakers": [
"<string>"
]
}
]
}Search transcriptions by text
Searches through loaded speech transcriptions for segments containing the query string.
Uses case-insensitive substring matching. Transcriptions must be loaded into memory first
(via /analysis-data/load or /analysis-data/load-transcriptions).
Optionally filter to transcript segments assigned to a named speaker by passing
speaker or speaker_name. Speaker filtering uses transcript speaker names,
not face-clustering person names.
curl --request POST \
--url http://localhost:6699/api/v1/search/transcript \
--header 'Content-Type: application/json' \
--header 'X-License-Key: <api-key>' \
--data '
{
"query": "hello world",
"cache_dir": "<string>",
"max_results": 50,
"media_paths": [
"<string>"
],
"search_all": true,
"speaker": "Anna",
"speaker_name": "Anna"
}
'import requests
url = "http://localhost:6699/api/v1/search/transcript"
payload = {
"query": "hello world",
"cache_dir": "<string>",
"max_results": 50,
"media_paths": ["<string>"],
"search_all": True,
"speaker": "Anna",
"speaker_name": "Anna"
}
headers = {
"X-License-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-License-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'hello world',
cache_dir: '<string>',
max_results: 50,
media_paths: ['<string>'],
search_all: true,
speaker: 'Anna',
speaker_name: 'Anna'
})
};
fetch('http://localhost:6699/api/v1/search/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "6699",
CURLOPT_URL => "http://localhost:6699/api/v1/search/transcript",
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([
'query' => 'hello world',
'cache_dir' => '<string>',
'max_results' => 50,
'media_paths' => [
'<string>'
],
'search_all' => true,
'speaker' => 'Anna',
'speaker_name' => 'Anna'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-License-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 := "http://localhost:6699/api/v1/search/transcript"
payload := strings.NewReader("{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-License-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("http://localhost:6699/api/v1/search/transcript")
.header("X-License-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:6699/api/v1/search/transcript")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["X-License-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"hello world\",\n \"cache_dir\": \"<string>\",\n \"max_results\": 50,\n \"media_paths\": [\n \"<string>\"\n ],\n \"search_all\": true,\n \"speaker\": \"Anna\",\n \"speaker_name\": \"Anna\"\n}"
response = http.request(request)
puts response.read_body{
"matches": [
{
"hash_str": "<string>",
"start_seconds": 123,
"end_seconds": 123,
"text": "<string>",
"start_timestamp": "<string>",
"end_timestamp": "<string>",
"media_path": "<string>",
"speaker": "SPEAKER_00",
"speaker_name": "Anna",
"speakers": [
"<string>"
]
}
]
}Authorizations
Jumper Pro license key passed via header
Body
Text to search for (case-insensitive substring match)
"hello world"
Restrict search to these files (ignored if search_all is true)
Search across all loaded transcriptions
Optional named transcript speaker to search within. Matches speaker display names assigned in transcript speaker metadata.
"Anna"
Alias for speaker.
"Anna"
Response
Matching transcript segments
Show child attributes
Show child attributes
Was this page helpful?

