Upload a recording
curl --request POST \
--url https://api.example.com/v1/uploads \
--header 'Content-Type: application/json' \
--cookie __Secure-better-auth.session_token= \
--data '
{
"kind": "audio",
"bytes": 8388608
}
'import requests
url = "https://api.example.com/v1/uploads"
payload = {
"kind": "audio",
"bytes": 8388608
}
headers = {
"cookie": "__Secure-better-auth.session_token=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: '__Secure-better-auth.session_token=',
'Content-Type': 'application/json'
},
body: JSON.stringify({kind: 'audio', bytes: 8388608})
};
fetch('https://api.example.com/v1/uploads', 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.example.com/v1/uploads",
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([
'kind' => 'audio',
'bytes' => 8388608
]),
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
CURLOPT_HTTPHEADER => [
"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.example.com/v1/uploads"
payload := strings.NewReader("{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Secure-better-auth.session_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.example.com/v1/uploads")
.header("cookie", "__Secure-better-auth.session_token=")
.header("Content-Type", "application/json")
.body("{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/uploads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
request["Content-Type"] = 'application/json'
request.body = "{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}"
response = http.request(request)
puts response.read_body{
"uploadId": "<string>",
"url": "<string>"
}{
"code": "<string>",
"details": {}
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "Forbidden",
"statusCode": 403
}{
"code": "request.timeout",
"correlationId": "<string>"
}{
"code": "request.timeout",
"correlationId": "<string>"
}Conversation
Upload a recording
A presigned PUT for one recording from Perguntar, valid for 300 seconds and only with exactly this contentType and bytes (at most 16 MiB). The bytes go straight to storage, never through this API; the uploadId then goes to POST /v1/conversation/messages.
POST
/
v1
/
uploads
Upload a recording
curl --request POST \
--url https://api.example.com/v1/uploads \
--header 'Content-Type: application/json' \
--cookie __Secure-better-auth.session_token= \
--data '
{
"kind": "audio",
"bytes": 8388608
}
'import requests
url = "https://api.example.com/v1/uploads"
payload = {
"kind": "audio",
"bytes": 8388608
}
headers = {
"cookie": "__Secure-better-auth.session_token=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: '__Secure-better-auth.session_token=',
'Content-Type': 'application/json'
},
body: JSON.stringify({kind: 'audio', bytes: 8388608})
};
fetch('https://api.example.com/v1/uploads', 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.example.com/v1/uploads",
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([
'kind' => 'audio',
'bytes' => 8388608
]),
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
CURLOPT_HTTPHEADER => [
"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.example.com/v1/uploads"
payload := strings.NewReader("{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Secure-better-auth.session_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.example.com/v1/uploads")
.header("cookie", "__Secure-better-auth.session_token=")
.header("Content-Type", "application/json")
.body("{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/uploads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
request["Content-Type"] = 'application/json'
request.body = "{\n \"kind\": \"audio\",\n \"bytes\": 8388608\n}"
response = http.request(request)
puts response.read_body{
"uploadId": "<string>",
"url": "<string>"
}{
"code": "<string>",
"details": {}
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "Forbidden",
"statusCode": 403
}{
"code": "request.timeout",
"correlationId": "<string>"
}{
"code": "request.timeout",
"correlationId": "<string>"
}Authorizations
The session cookie set when you sign in to the web app.
Body
application/json