Record Session Replay Urls
curl --request POST \
--url https://api.ontora.com/v1/interview/session/{session_id}/recordings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"posthog_recording_url": "<string>"
}
'import requests
url = "https://api.ontora.com/v1/interview/session/{session_id}/recordings"
payload = { "posthog_recording_url": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({posthog_recording_url: '<string>'})
};
fetch('https://api.ontora.com/v1/interview/session/{session_id}/recordings', 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.ontora.com/v1/interview/session/{session_id}/recordings",
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([
'posthog_recording_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.ontora.com/v1/interview/session/{session_id}/recordings"
payload := strings.NewReader("{\n \"posthog_recording_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.ontora.com/v1/interview/session/{session_id}/recordings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"posthog_recording_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ontora.com/v1/interview/session/{session_id}/recordings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"posthog_recording_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"posthog_recording_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}interview-realtime
Record Session Replay Urls
Store the PostHog replay URL captured by the interviewee’s browser.
Called once by the interview session page after the conversation exists and the
replay SDK has bootstrapped. Authenticated by the booking token already used by
other /v1/interview/session/{id}/* endpoints. Idempotent: a column that is
already populated will not be overwritten, so an accidental re-call does not
clobber a real recording with a later, less interesting one.
POST
/
v1
/
interview
/
session
/
{session_id}
/
recordings
Record Session Replay Urls
curl --request POST \
--url https://api.ontora.com/v1/interview/session/{session_id}/recordings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"posthog_recording_url": "<string>"
}
'import requests
url = "https://api.ontora.com/v1/interview/session/{session_id}/recordings"
payload = { "posthog_recording_url": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({posthog_recording_url: '<string>'})
};
fetch('https://api.ontora.com/v1/interview/session/{session_id}/recordings', 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.ontora.com/v1/interview/session/{session_id}/recordings",
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([
'posthog_recording_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.ontora.com/v1/interview/session/{session_id}/recordings"
payload := strings.NewReader("{\n \"posthog_recording_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.ontora.com/v1/interview/session/{session_id}/recordings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"posthog_recording_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ontora.com/v1/interview/session/{session_id}/recordings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"posthog_recording_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"posthog_recording_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
ClerkJWTWorkspaceApiKey
Clerk-issued RS256 JWT.
Path Parameters
Query Parameters
Body
application/json
Replay URL captured by the interviewee's browser for admin debugging.
Response
Successful Response
Was this page helpful?
⌘I