NAV
shell ruby python javascript

Introduction

Welcome to the Vatis Tech API!

You can use our API to automatically submit your file to be transcribed by our AI models, to view existing transcripts or export them in various formats.

If you have any questions, please write to us at founders@vatis.tech.

With best wishes for success,
Vatis Tech Team

Authentication

To test the API key, use this code:

curl GET 'https://vatis.tech/api/v1/status' \
-H 'Authorization: Bearer **your_api_key_here**' \
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/status")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/status"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/status", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Make sure to replace **your_api_key_here** with your API key.

The above command returns:

Vatis Tech API is up.

Vatis Tech uses API keys to allow access to our API. To get your API key, log into your account and go to the account section.

Authorization: Bearer **your_api_key_here**

Upload

Using a signed url

curl GET 'https://vatis.tech/api/v1/files/new?name=your_file.flac' \
-H 'Authorization: Bearer ***your_api_key_here***'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/new?name=your_file.flac")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer ***your_api_key_here***"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/new?name=your_file.flac"

payload = {}
headers = {
  'Authorization': 'Bearer ***your_api_key_here***'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ***your_api_key_here***");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/new?name=your_file.flac", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The above command returns JSON structured like this:

{
  "uploadUrl": "https://storage.googleapis.com/vatis-tech-bucket-euro/xxxx-xxxx?X-Goog-Signature=yyyyy....",
  "fileUid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e"
}

Get a signed URL to upload your file to our GCS bucket. After the upload is completed, you can use the returned fileUid to start the transcription process for your file.

HTTP Request

GET https://www.vatis.tech/api/v1/files/new?name=your_file.flac

Query Parameters

Parameter Default Description
name false (required) The name of the uploading file

Upload a file to cloud storage

Sample upload to a GCS bucket.

curl POST 'https://uploadUrl...' --form '=@/your_file.flac'
require "uri"
require "net/http"

url = URI("https://uploadUrl...")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
form_data = [['', File.open('/your_file.flac')]]
request.set_form form_data, 'multipart/form-data'
response = https.request(request)
puts response.read_body
import requests

url = "https://uploadUrl..."

payload = {}
files = [
  ('', open('/your_file.flac','rb'))
]
headers= {}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))
var formdata = new FormData();
formdata.append("", fileInput.files[0], "your_file.flac");

var requestOptions = {
  method: 'POST',
  body: formdata,
  redirect: 'follow'
};

fetch("https://uploadUrl...", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

If you want more information about GCS signed URLs check here

Transcriptions

Transcribe by UID

curl POST 'https://vatis.tech/api/v1/files/transcribe/uid' \
--header 'Authorization: Bearer **your_api_key_here**' \
--data-raw '{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "language": "ro_RO",
    "name": "your_file.flac",
    "success_url": "https://your-success-url.com?format=PLAIN_TEXT&uid=${uid}",
    "fail_url": "https://your-fail-url.com?uid=${uid}"
}'
require "uri"
require "net/http"

url = URI("http://vatis.tech:8080/api/v1/files/transcribe/uid")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"
request.body = "{\
                  \"uid\": \"adf956bc-2c8e-4ade-9ec9-4297551b42bb\",\ 
                  \"language\": \"ro_RO\",\
                  \"name\": \"your_file.mp4\",\
                  \"success_url\": \"https://your-success-url.com?format=JSON&uid=${uid}\",\
                  \"fail_url\": \"https://your-fail-url.com?uid=${uid}\"\
                }"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/transcribe/uid"

payload = """
    {
          \"uid\": \"adf956bc-2c8e-4ade-9ec9-4297551b42bb\",
          \"language\": \"ro_RO\",
          \"name\": \"your_file.mp4\",
          \"success_url\": \"https://your-success-url.com?format=JSON&uid=${uid}\",
          \"fail_url\": \"https://your-fail-url.com?uid=${uid}\"
    }
"""

headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
    "uid":"adf956bc-2c8e-4ade-9ec9-4297551b42bb",
    "language":"ro_RO",
    "name":"your_file.mp4",
    "success_url":"https://your-success-url.com?format=JSON&uid=${uid}",
    "fail_url":"https://your-fail-url.com?uid=${uid}"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/transcribe/uid", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "discriminator": "TRANSCRIPTED_FILE",
    "name": "your_file.flac",
    "secondsDuration": 240,
    "language": "ro_RO",
    "createdDate": "2020-09-05T09:02:02.978931Z",
    "status": "NOT_TRANSCRIPTED"
}

Transcribe a file by passing the UID obtained at upload to our GCS bucket.

HTTP Request

POST https://www.vatis.tech/api/v1/files/transcribe/uid?transcribe=[true|false]

Query Parameters

Parameter Type Default Description
transcribe boolean true Specify if the transcription process should be automatically initiated after the upload.
parent UUID Root folder The identifier of the parent folder of this file
speakers int 1 The speakers count in the audio
model UUID Default model The model used for transcription. It can be used to specify a custom model

Body Attributes

Attribute Type Default Description
uid string (required) Uid obtained at upload to our GCS bucket.
language string (required) Language code of your file. Full list here.
name string (required) Uploaded file name.
success_url string (required) The success url where you would like to be notified when the transcript is ready.
fail_url string None The fail url where you would like to be notified if the transcription process has failed.

Response Attributes

Attribute Type Description
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
secondsDuration integer Duration of the file in seconds.
language string Language code of the file. Full list here.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.
curl POST 'https://vatis.tech/api/v1/files/transcribe/link' \
--header 'Authorization: Bearer **your_api_key_here**' \
--data-raw '{
    "url": "https://your_url/to/your_file.mp4",
    "language": "ro_RO",
    "name": "your_file.flac",
    "success_url": "https://your-success-url.com?format=PLAIN_TEXT&uid=${uid}",
    "fail_url": "https://your-fail-url.com?uid=${uid}"
}'
require "uri"
require "net/http"

url = URI("http://vatis.tech:8080/api/v1/files/transcribe/uid")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"
request.body = "{\
                  \"url\": \"https://your_url/to/your_file.mp4\",\ 
                  \"language\": \"ro_RO\",\
                  \"name\": \"your_file.mp4\",\
                  \"success_url\": \"https://your-success-url.com?format=JSON&uid=${uid}\",\
                  \"fail_url\": \"https://your-fail-url.com?uid=${uid}\"\
                }"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/transcribe/uid"

payload = """
    {
          \"url\": \"https://your_url/to/your_file.mp4\",
          \"language\": \"ro_RO\",
          \"name\": \"your_file.mp4\",
          \"success_url\": \"https://your-success-url.com?format=JSON&uid=${uid}\",
          \"fail_url\": \"https://your-fail-url.com?uid=${uid}\"
    }
"""

headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var raw = JSON.stringify({
    "url":"https://your_url/to/your_file.mp4",
    "language":"ro_RO",
    "name":"your_file.mp4",
    "success_url":"https://your-success-url.com?format=JSON&uid=${uid}",
    "fail_url":"https://your-fail-url.com?uid=${uid}"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/transcribe/link", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "discriminator": "TRANSCRIPTED_FILE",
    "name": "your_file.flac",
    "secondsDuration": 240,
    "language": "ro_RO",
    "createdDate": "2020-09-05T10:18:25.549374Z",
    "status": "NOT_TRANSCRIPTED"
}

Transcribe a file by passing a public link. Our backend will download the file from that link in order to transcribe it.

HTTP Request

POST https://www.vatis.tech/api/v1/files/transcribe/link?transcribe=[true|false]

Query Parameters

Parameter Type Default Description
transcribe boolean true Specify if the transcription process should be automatically initiated after the upload.
parent UUID Root folder The identifier of the parent folder of this file
speakers int 1 The speakers count in the audio
model UUID Default model The model used for transcription. It can be used to specify a custom model

Body Attributes

Attribute Type Default Description
url string (required) Public link to your file.
language string (required) Language code of your file. Full list here.
name string (required) The file name
media_type string <generated> File media type. Full list here
success_url string (required) The success url where you would like to be notified when the transcript is ready.
fail_url string None The fail url where you would like to be notified if the transcribe process failed.

Response Attributes

Attribute Type Description
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
secondsDuration integer Duration of the file in seconds.
language string Language code of the file. Full list here.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.

Transcribe by file

curl POST 'https://vatis.tech/api/v1/files/transcribe/file' \
--header 'Authorization: Bearer **your_api_key_here**' \
--form 'file=@/your_file.flac' \
--form 'language=ro_RO' \
--form 'success_url=https://your-success-url.com?format=PLAIN_TEXT&uid=${uid}' \
--form 'fail_url=https://your-fail-url.com?uid=${uid}'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/transcribe/file")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"
form_data = [
                ['file', File.open('/path/to/your_file.mp4')],
                ['language', 'ro_RO'],
                ['success_url', 'https://your-success-url.com?format=JSON&uid=${uid}'],
                ['fail_url', 'https://your-fail-url.com?uid=${uid}']
            ]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/transcribe/file"

payload = {
  'language': 'ro_RO',
  'success_url': 'https://your-success-url.com?format=PLAIN_TEXT&uid=${uid}',
  'fail_url': 'https://your-fail-url.com?uid=${uid}'
}
files = [
  ('file', open('/path/to/your_file.mp4','rb'))
]
headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var formdata = new FormData();
formdata.append("file", fileInput.files[0], "/path/to/your_file.mp4");
formdata.append("language", "ro_RO");
formdata.append("success_url", "https://your-success-url.com?format=PLAIN_TEXT&uid=${uid}");
formdata.append("fail_url", "https://your-fail-url.com?uid=${uid}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/transcribe/file", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "discriminator": "TRANSCRIPTED_FILE",
    "name": "your_file.flac",
    "secondsDuration": 240,
    "language": "ro_RO",
    "createdDate": "2020-09-05T10:30:51.759652Z",
    "status": "NOT_TRANSCRIPTED"
}

Transcribe a file by uploading it directly to our servers.

HTTP Request

POST https://www.vatis.tech/api/v1/files/transcribe/file?transcribe=[true|false]

Query Parameters

Parameter Type Default Description
file binary (required) The binary file.
language string (required) Language code of your file. Full list here.
success_url string (required) The success url where you would like to be notified when the transcript is ready.
fail_url string None The fail url where you would like to be notified if the transcribe process failed.
transcribe boolean true Specify if the transcription process should be automatically initiated after the upload.
parent UUID Root folder The identifier of the parent folder of this file
speakers int 1 The speakers count in the audio
model UUID Default model The model used for transcription. It can be used to specify a custom model

Response Attributes

Attribute Type Description
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
secondsDuration integer Duration of the file in seconds.
language string Language code of the file. Full list here.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.

Notify urls

Vatis Tech offers support for automatic notifications when a transcription job either succeeded or failed.

Success url

Will be called when the transcript for a file it's ready.

HTTP Request

This request will be made by our server to your success_url.

POST https://your-success-url.com?format=type&uid=${uid}

Query Parameters

Parameter Type Default Description
format string JSON One of the following values: PLAIN_TEXT, JSON

Body responses

Response type Description Example
PLAIN_TEXT The transcript it's represented by a simple text. This is a plain text transcript example.
JSON The transcript will contain details like words with timestamps, speakers, file info. Check here.

Fail url

Will be called when the transcript generation for a file failed.

HTTP Request

This request will be made by our servers to your fail_url.

POST https://your-fail-url.com?uid=${uid}

Responses

Response type Description
PLAIN_TEXT Will contain the error message.

Files

Get file info

curl GET 'https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e' \
--header 'Authorization: Bearer **your_api_key_here**' \
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "discriminator": "TRANSCRIPTED_FILE",
    "name": "your_file.flac",
    "status": "TRANSCRIPTED",
    "secondsDuration": 240,
    "createdDate": "2020-09-05T10:50:02.931382Z",
    "language": "ro_RO"
}

Get information about a file.

HTTP Request

GET https://www.vatis.tech/api/v1/files/{uid}

Query Parameters

Parameter Type Default Description
UID string None (required) File uid.

Response Attributes

Attribute Type Description
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
secondsDuration integer Duration of the file in seconds.
language string Language code of the file. Full list here.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.

Delete a file

curl DELETE 'https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e' \
--header 'Authorization: Bearer **your_api_key_here**' \
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Delete a file by uid.

HTTP Request

DELETE https://www.vatis.tech/api/v1/files/{uid}

Query Parameters

Parameter Type Default Description
uid string None (required) File uid.

List all files

curl GET 'https://vatis.tech/api/v1/files' \
--header 'Authorization: Bearer **your_api_key_here**'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/files"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**',
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/files", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "content": [
        {
            "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
            "discriminator": "TRANSCRIPTED_FILE",
            "name": "your_file.flac",
            "secondsDuration": 240,
            "language": "ro_RO",
            "createdDate": "2020-09-05T10:44:39.896873Z",
            "status": "TRANSCRIPTED"
        },
        {
          "...": "..."
        },
        {
            "uid": "cd72d918-f31c-4b29-85ce-39df4ce88bea",
            "discriminator": "TRANSCRIPTED_FILE",
            "name": "your_file_2.flac",
            "secondsDuration": 180,
            "language": "ro_RO",
            "createdDate": "2020-09-05T09:02:18.435951Z",
            "status": "TRANSCRIPTING"
        }
    ],
    "pageable": {
        "sort": {
            "sorted": true,
            "unsorted": false,
            "empty": false
        },
        "offset": 0,
        "pageNumber": 0,
        "pageSize": 10,
        "paged": true,
        "unpaged": false
    },
    "totalElements": 7,
    "totalPages": 1,
    "last": true,
    "first": true,
    "numberOfElements": 7,
    "number": 0,
    "sort": {
        "sorted": true,
        "unsorted": false,
        "empty": false
    },
    "size": 10,
    "empty": false
}

Retrieve a list of files

Response Attributes

Attribute Type Description
content JSON array Files array.
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
secondsDuration integer Duration of the file in seconds.
language string Language code of the file. Full list here.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.

HTTP Request

GET https://www.vatis.tech/api/v1/files?page=xx&size=yy

Query Parameters

Parameter Default Description
page 0 Page number.
size 10 Page size.

Retrieve a transcript

curl GET 'https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e' \
--header 'Authorization: Bearer **your_api_key_here**'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**"'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a JSON structured like this:

{
    "uid": "35dc963f-4107-4699-a4a0-0f8ea0fcbb6e",
    "discriminator": "TRANSCRIPTED_FILE",
    "name": "your_file.flac",
    "guests": null,
    "link": "https://temp-public-link.com/",
    "mediaType": "SUPPORTED",
    "status": "TRANSCRIPTED",
    "data": {
        "words": [
           {
                "startTime": 4,
                "endTime": 5,
                "word": "ar",
                "speaker": "1"
            },
            {
                "startTime": 5,
                "endTime": 5,
                "word": "putea",
                "speaker": "1"
            },
            {
                "startTime": 5,
                "endTime": 6,
                "word": "să",
                "speaker": "1"
            },
            {
                "startTime": 6,
                "endTime": 6,
                "word": "vină",
                "speaker": "1"
            },
            {
                "startTime": 6,
                "endTime": 7,
                "word": "câteva",
                "speaker": "1"
            },
            {
                "startTime": 7,
                "endTime": 7,
                "word": "ploi",
                "speaker": "1"
            },
            {
                "startTime": 7,
                "endTime": 8,
                "word": "trecătoare",
                "speaker": "1"
            }
        ],
        "rating": null
    },
    "secondsDuration": 120,
    "createdDate": "2020-09-05T10:44:39.896873Z",
    "language": "ro_RO",
    "speakers": 1
}

Retrieve a transcript for a file by file uid.

HTTP Request

GET https://www.vatis.tech/api/v1/transcripts/{uid}

Query Parameters

Parameter Default Description
uid None (required) File uid.

Response Attributes

Attribute Type Description
uid string File uid.
discriminator string Type of file. Can be one of: TRANSCRIPTED_FILE, VATIS_TRANSCRIBED_FILE.
name string File name.
mediaType string Media format for this file. Full values list here.
status string Transcription status for this file. Can be one of: NOT_TRANSCRIPTED, TRANSCRIPTING, TRANSCRIPTED.
startTime integer Start time of the word in seconds.
endTime integer End time of the word in seconds.
word string Transcribed word.
speaker string Speaker identifier (This feature may not be always supported).
secondsDuration integer Duration of the file in seconds.
createdDate date File created date without timezone (e.g. 2020-09-05T09:02:02.978931Z).
language string Language code of the file. Full list here.

Export

Retrieve an export

curl GET 'https://vatis.tech/api/v1/download/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/docx' \
--header 'Authorization: Bearer **your_api_key_here**' 
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/download/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/docx")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"

response = http.request(request)
puts response.read_body
import requests

url = "https://vatis.tech/api/v1/download/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/docx"

payload = {}
headers = {
  'Authorization': 'Bearer **your_api_key_here**'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key_here**");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://vatis.tech/api/v1/download/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/docx", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

The command above returns a binary file

Retrieve an export for a file by uid.

HTTP Request

GET https://www.vatis.tech/api/v1/download/{uid}/{type}

Query Parameters

Parameter Default Description
uid None (required) File uid.
type None One of the following values: srt, pdf, docx

Languages

We support the following languages codes:

Code Language
en_GB English (United Kingdom)
en_US English (United States)
ro_RO Romanian (Romanian)
de_DE German (Germany)
fr_FR French (France)
it_IT Italian (Italy)
es_ES Spanish (Spain)
ca_ES Catalan (Spain)
nl_NL Dutch (Netherlands)
pt_PT Portuguese (Portugal)
pl_PL Polish (Poland)
pt_BR Portuguese (Brazil)
ru_RU Russian (Russia)

Media types

We support the following media types:

Format Type Value
mp3 Audio MP3
flac Audio FLAC
ogg Audio OGG
wav Audio WAV
wma Audio WMA
aiff Audio AIFF
aac Audio AAC
m4a Audio M4A
mp4 Video MP4
mpeg Video MPEG_VIDEO
wmv Video WMV
avi Video AVI
flv Video FLV
webm Video WEBM
ts Video TS
asf Video ASF
mkv Video MKV