curl --request GET \
--url https://api-public.skipcall.app/v1/calls/{id}/recording/audio \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-public.skipcall.app/v1/calls/{id}/recording/audio"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-public.skipcall.app/v1/calls/{id}/recording/audio', 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-public.skipcall.app/v1/calls/{id}/recording/audio",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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-public.skipcall.app/v1/calls/{id}/recording/audio"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-public.skipcall.app/v1/calls/{id}/recording/audio")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-public.skipcall.app/v1/calls/{id}/recording/audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or revoked API key",
"status": 401
}
}Stream the audio of a call recording
Streams the audio of the call recording, authenticated with the same API key as every other endpoint (no public or pre-signed link). Defaults to mp3 (audio/mpeg); ?format=wav returns audio/wav and any other value falls back to mp3. Served inline unless ?download=true, which sets Content-Disposition: attachment. Limited to 10 requests per minute. Returns 403 RECORDING_DISABLED when call recording is disabled for the workspace of the call. Returns 404 if the call does not exist, is outside the API key scope, has no recording, or its audio is no longer available.
curl --request GET \
--url https://api-public.skipcall.app/v1/calls/{id}/recording/audio \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-public.skipcall.app/v1/calls/{id}/recording/audio"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-public.skipcall.app/v1/calls/{id}/recording/audio', 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-public.skipcall.app/v1/calls/{id}/recording/audio",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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-public.skipcall.app/v1/calls/{id}/recording/audio"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-public.skipcall.app/v1/calls/{id}/recording/audio")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-public.skipcall.app/v1/calls/{id}/recording/audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or revoked API key",
"status": 401
}
}Authorizations
Enter your API Key (sk_live_xxx or sk_test_xxx)
Path Parameters
Call UUID
Query Parameters
Set to true to receive the file as an attachment instead of inline.
true, false Audio format (default: mp3). Any other value falls back to mp3.
mp3, wav Response
Audio stream, with Content-Disposition: inline|attachment; filename="recording-<callId>.mp3|wav"
The response is of type file.