curl --request GET \
--url https://api.aircaps.com/v1/transcripts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aircaps.com/v1/transcripts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aircaps.com/v1/transcripts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "tr_01k6z3m4q8w7e5r2t1y0u9i8o7",
"object": "transcript",
"status": "completed",
"created_at": "2026-10-06T18:01:02.123Z",
"started_at": "2026-10-06T18:01:02.456Z",
"completed_at": "2026-10-06T18:01:31.789Z",
"audio_url": null,
"file_id": "file_01k6z3m4q8w7e5r2t1y0u9i8o7",
"language_code": "en",
"model": "a5s-async-v1",
"audio_duration": 3600.512,
"metadata": {
"meeting_id": 42
},
"webhook_url": "https://example.com/hooks/aircaps",
"webhook_status_code": 200,
"error": null,
"text": "hey good afternoon everybody ...",
"speakers": [
{
"id": "speaker_0",
"speaking_time": 1402.11
},
{
"id": "speaker_1",
"speaking_time": 988.4
}
],
"utterances": [
{
"speaker": "speaker_0",
"start": 0.48,
"end": 6.12,
"text": "hey good afternoon everybody ...",
"words": [
{
"text": "hey",
"start": 0.48,
"end": 0.71,
"speaker": "speaker_0"
}
]
}
],
"words": [
{
"text": "hey",
"start": 0.48,
"end": 0.71,
"speaker": "speaker_0"
}
]
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "invalid API key",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "permission_error",
"code": "account_disabled",
"message": "this account is disabled",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "invalid_request_error",
"code": "not_found",
"message": "transcript not found",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "internal error",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}Get a transcript
Status and, once completed, the result.
curl --request GET \
--url https://api.aircaps.com/v1/transcripts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aircaps.com/v1/transcripts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aircaps.com/v1/transcripts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "tr_01k6z3m4q8w7e5r2t1y0u9i8o7",
"object": "transcript",
"status": "completed",
"created_at": "2026-10-06T18:01:02.123Z",
"started_at": "2026-10-06T18:01:02.456Z",
"completed_at": "2026-10-06T18:01:31.789Z",
"audio_url": null,
"file_id": "file_01k6z3m4q8w7e5r2t1y0u9i8o7",
"language_code": "en",
"model": "a5s-async-v1",
"audio_duration": 3600.512,
"metadata": {
"meeting_id": 42
},
"webhook_url": "https://example.com/hooks/aircaps",
"webhook_status_code": 200,
"error": null,
"text": "hey good afternoon everybody ...",
"speakers": [
{
"id": "speaker_0",
"speaking_time": 1402.11
},
{
"id": "speaker_1",
"speaking_time": 988.4
}
],
"utterances": [
{
"speaker": "speaker_0",
"start": 0.48,
"end": 6.12,
"text": "hey good afternoon everybody ...",
"words": [
{
"text": "hey",
"start": 0.48,
"end": 0.71,
"speaker": "speaker_0"
}
]
}
],
"words": [
{
"text": "hey",
"start": 0.48,
"end": 0.71,
"speaker": "speaker_0"
}
]
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "invalid API key",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "permission_error",
"code": "account_disabled",
"message": "this account is disabled",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "invalid_request_error",
"code": "not_found",
"message": "transcript not found",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "internal error",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}Authorizations
Your API key: Authorization: Bearer aircaps_sk_...
Path Parameters
Transcript ID.
"tr_01k6z3m4q8w7e5r2t1y0u9i8o7"
Response
The transcript.
Transcript ID.
"tr_01k6z3m4q8w7e5r2t1y0u9i8o7"
transcript "transcript"
queued: waiting for a processing slot. processing: being transcribed. completed: result fields present. error: see error.
queued, processing, completed, error When the transcript was created (UTC).
When processing started.
When the job finished (completed or error).
The submitted audio_url, if any.
The submitted file_id, if any.
Language of the transcript (normalised).
en a5s-async-v1 Audio duration in seconds, once known.
3600.512
Your metadata, echoed back.
Webhook target, if any.
HTTP status of the last webhook delivery.
Set when status is error.
Show child attributes
Show child attributes
Completed only. Full transcript: verbatim, lowercase, no punctuation.
Completed only.
Show child attributes
Show child attributes
Completed only. Speaker turns, in time order; overlapping speech overlaps.
Show child attributes
Show child attributes
Completed only. Every word, in time order.
Show child attributes
Show child attributes