Poll a transcript job
curl --request GET \
--url https://app.bestvideotranscriptapi.com/v1/transcript/{jobId} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.bestvideotranscriptapi.com/v1/transcript/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.bestvideotranscriptapi.com/v1/transcript/{jobId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": "queued",
"content": [
{
"text": "<string>",
"offset": 123,
"duration": 123,
"lang": "<string>"
}
],
"lang": "<string>",
"availableLangs": [
"<string>"
],
"platform": "<string>",
"note": "<string>",
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}API Reference
Poll a transcript job
Reads a job returned by GET /v1/transcript. Always 200 for your own job, including a failed one; check status.
GET
/
v1
/
transcript
/
{jobId}
Poll a transcript job
curl --request GET \
--url https://app.bestvideotranscriptapi.com/v1/transcript/{jobId} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.bestvideotranscriptapi.com/v1/transcript/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.bestvideotranscriptapi.com/v1/transcript/{jobId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": "queued",
"content": [
{
"text": "<string>",
"offset": 123,
"duration": 123,
"lang": "<string>"
}
],
"lang": "<string>",
"availableLangs": [
"<string>"
],
"platform": "<string>",
"note": "<string>",
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "<string>",
"requestId": "<string>",
"availableLangs": [
"<string>"
],
"durationSeconds": 123,
"maxDurationSeconds": 123,
"sizeBytes": 123,
"maxSizeBytes": 123,
"aiMinutesNeeded": 123,
"aiMinutesRemaining": 123,
"refillsAt": "2023-11-07T05:31:56Z",
"billingUrl": "<string>"
}
}Authorizations
apiKeybearer
Path Parameters
Pattern:
^run_[a-z0-9]+$Query Parameters
true returns content as one string instead of timed segments.
Available options:
true, false Response
The job. queued or active have only status; completed adds the transcript; failed adds error.