curl --request GET \
--url https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio \
--header 'chariotai-api-key: <api-key>'import requests
url = "https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio"
headers = {"chariotai-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'chariotai-api-key': '<api-key>'}};
fetch('https://api.chariot.in/v1/forced-alignment/{alignment_id}/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.chariot.in/v1/forced-alignment/{alignment_id}/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 => [
"chariotai-api-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"
"net/http"
"io"
)
func main() {
url := "https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("chariotai-api-key", "<api-key>")
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.chariot.in/v1/forced-alignment/{alignment_id}/audio")
.header("chariotai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["chariotai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"alignment_id": "6f1c2d9e-3b7a-4f0e-9a51-2c8d4e7b1a90",
"url": "https://storage.example.com/original.mp3?signature=REDACTED",
"url_expires_at": "2026-11-02T10:15:00Z",
"content_expires_at": null
}Get alignment audio
A short-lived signed link to the audio sent with an alignment.
curl --request GET \
--url https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio \
--header 'chariotai-api-key: <api-key>'import requests
url = "https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio"
headers = {"chariotai-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'chariotai-api-key': '<api-key>'}};
fetch('https://api.chariot.in/v1/forced-alignment/{alignment_id}/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.chariot.in/v1/forced-alignment/{alignment_id}/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 => [
"chariotai-api-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"
"net/http"
"io"
)
func main() {
url := "https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("chariotai-api-key", "<api-key>")
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.chariot.in/v1/forced-alignment/{alignment_id}/audio")
.header("chariotai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chariot.in/v1/forced-alignment/{alignment_id}/audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["chariotai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"alignment_id": "6f1c2d9e-3b7a-4f0e-9a51-2c8d4e7b1a90",
"url": "https://storage.example.com/original.mp3?signature=REDACTED",
"url_expires_at": "2026-11-02T10:15:00Z",
"content_expires_at": null
}Authorizations
Your Chariot API key, generated from the dashboard. Send it in the chariotai-api-key header on every request.
Path Parameters
The alignment's id.
Query Parameters
When true, respond with 302 and a Location header pointing to the signed link instead of JSON.
Response
A signed link to the audio.
A signed link to the audio sent with an alignment.
Signed link to the audio, in the format it was uploaded in. Anyone with the link can download the audio until it expires, so do not log, cache, or share it.
When this link stops working: about 15 minutes after the request, and never later than content_expires_at. Request a fresh link after it expires.
When the audio itself expires under your workspace's data retention setting. null means it is kept until deleted.