NAV Navbar Button
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**

Account

Get account details

curl --location --request GET 'https://vatis.tech/api/v1/account' \
--header 'Authorization: Bearer **your_api_key**'
require "uri"
require "net/http"

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

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_key**"

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

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

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

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

print(response.text)
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key**");

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

fetch("https://vatis.tech/api/v1/account", 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:

{
  "id": 2,
  "login": "test.user",
  "firstName": "test",
  "lastName": "user",
  "email": "test.user@mail.com",
  "imageUrl": null,
  "activated": true,
  "emailConfirmed": true,
  "langKey": "en_GB",
  "createdBy": "anonymousUser",
  "createdDate": "2020-01-01T00:00:00.000000Z",
  "lastModifiedBy": "test.user",
  "lastModifiedDate": "2020-01-01T00:00:00.000000Z",
  "authorities": ["ROLE_USER"],
  "currentWorkspace": {
    "id": 1,
    "name": "Personal workspace",
    "root": {
      "uid": "71a16472-3791-42b5-b476-90a43b92704c",
      "discriminator": "FOLDER",
      "name": "Personal workspace",
      "guests": null,
      "children": null
    },
    "members": null
  },
  "availableTranscriptSeconds": 10000,
  "ip": null,
  "apiKey": "**api_key**",
  "emailNotifications": false,
  "age": 20,
  "gender": "MALE",
  "pendingReviewCredits": 0,
  "approvedCredits": 0,
  "activeEditTimeSeconds": 0,
  "assumedEditTimeSeconds": 0,
  "activeValidateTimeSeconds": 0,
  "assumedValidateTimeSeconds": 0,
  "editedPhrases": 0,
  "correctEditedPhrases": 0,
  "wrongEditedPhrases": 0,
  "validatedPhrases": 0,
  "completedTutorials": [],
  "features": []
}

Get account details.

HTTP Request

GET https://vatis.tech/api/v1/account

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://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://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
model UUID Default model The model used for transcription. It can be used to specify a custom model
speaker_diarization bool false Enable speakers diarization flag
speakers_number int 1 The speakers count in the audio hint
multi_channels bool false Transcribe each audio channel separately. multi_channels and speaker_diarization can't be used simultaneously
disfluencies bool true Enable disfluencies flag
punctuation_capitalization bool false Add punctuation and capitalization flag
entities_recognition bool false Add entity tag on each word flag. Flags are listed here
numerals_conversion bool false Convert numerals flag. This automatically enables entities recognition.
find_replace bool false Apply find-replace rules

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 None 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.
hotwords list of strings None The list of words, phrases, or both from your custom vocabulary
hotwords_weight float None A value between 0.1 and 10.0 to control how much weight should be applied to your keywords/phrases

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, QUEUED.
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://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
model UUID Default model The model used for transcription. It can be used to specify a custom model
speaker_diarization bool false Enable speakers diarization flag
speakers_number int 1 The speakers count in the audio hint
multi_channels bool false Transcribe each audio channel separately. multi_channels and speaker_diarization can't be used simultaneously
disfluencies bool true Enable disfluencies flag
punctuation_capitalization bool false Add punctuation and capitalization flag
entities_recognition bool false Add entity tag on each word flag. Flags are listed here
numerals_conversion bool false Convert numerals flag. This automatically enables entities recognition.
find_replace bool false Apply find-replace rules

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 None 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.
hotwords list of strings None The list of words, phrases, or both from your custom vocabulary
hotwords_weight float None A value between 0.1 and 10.0 to control how much weight should be applied to your keywords/phrases

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, QUEUED.

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://vatis.tech/api/v1/files/transcribe/file?transcribe=[true|false]

Parameters

They can be passed either as query parameter or form data parameter

Parameter Type Default Description
file binary (required) The binary file.
language string (required) Language code of your file. Full list here.
success_url string None 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
model UUID Default model The model used for transcription. It can be used to specify a custom model
hotwords list of strings None The list of words, phrases, or both from your custom vocabulary
hotwords_weight float None A value between 0.1 and 10.0 to control how much weight should be applied to your keywords/phrases
speaker_diarization bool false Enable speakers diarization flag
speakers_number int 1 The speakers count in the audio hint
multi_channels bool false Transcribe each audio channel separately. multi_channels and speaker_diarization can't be used simultaneously
disfluencies bool true Enable disfluencies flag
punctuation_capitalization bool false Add punctuation and capitalization flag
entities_recognition bool false Add entity tag on each word flag. Flags are listed here
numerals_conversion bool false Convert numerals flag. This automatically enables entities recognition.
find_replace bool false Apply find-replace rules

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, QUEUED.

Start/restart transcription

curl POST 'https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/transcribe' \
--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/transcribe")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.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/transcribe"

payload = {}
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 requestOptions = {
  method: "POST",
  headers: myHeaders,
  redirect: "follow",
};

fetch(
  "https://vatis.tech/api/v1/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/transcribe",
  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
}

Trigger the transcription process for an already uploaded file.

HTTP Request

POST https://vatis.tech/api/v1/transcripts/{uid}/transcribe

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, QUEUED.
startTime double Start time of the word in seconds.
endTime double 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.

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://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, QUEUED.
startTime double Start time of the word in seconds.
endTime double 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.

Transcriptions V2

Retrieve the transcript versions

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/v2/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/v2/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/v2/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",
  "secondsDuration": 120,
  "createdDate": "2020-09-05T10:44:39.896873Z",
  "language": "ro_RO",
  "speakers": 1,
  "versions": ["raw", "original", "latest"]
}

Retrieve a transcript for a file by file uid.

HTTP Request

GET https://vatis.tech/api/v2/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, QUEUED.
startTime double Start time of the word in seconds.
endTime double End time of the word in seconds.
versions string Transcript in different states such as raw, latest, original or a snapshot in time
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.

Retrieve a transcript

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

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

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/v2/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/versions/latest"

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/v2/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e/versions/latest",
  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:

{
  "transcript": {
    "children": [
      {
        "type": "paragraph",
        "data-speaker": "1",
        "data-speaker-gender": null,
        "data-start": 4,
        "data-end": 7,
        "data-completed": false,
        "data-edited": false,
        "children": [
          {
            "data-start": 4,
            "data-end": 5,
            "data-text": "ar"
          },
          {
            "data-start": 5,
            "data-end": 5,
            "data-text": "putea"
          },
          {
            "data-start": 5,
            "data-end": 6,
            "data-text": "să"
          },
          {
            "data-start": 6,
            "data-end": 6,
            "data-text": "vină"
          },
          {
            "data-start": 6,
            "data-end": 7,
            "data-text": "câteva"
          },
          {
            "data-start": 7,
            "data-end": 7,
            "data-text": "ploi"
          },
          {
            "data-start": 7,
            "data-end": 8,
            "data-text": "trecătoare"
          }
        ]
      }
    ],
    "meta": null
  }
}

Retrieve a transcript for a file by file uid and its version.

HTTP Request

GET https://vatis.tech/api/v2/transcripts/{uid}/{version}

Query Parameters

Parameter Default Description
uid None (required) File uid.
version None (required) Transcript version such as: latest, raw, original, ...

Response Attributes

Attribute Type Description
transcript object Root node in which the transcript data and metadata will be found
type string Type of the node: paragraph
children array List of paragraphs or words
data-speaker string Speaker identifier (This feature may not be always supported).
data-speaker-gender string Speaker gender identifier (This feature may not be always supported).
data-start double Start time of the word in seconds.
data-end double End time of the word in seconds.
data-confidence double Confidence in the transcribed word
data-completed bool Flag that let us know if the editing for the word is completed
data-edited bool Flag that let us know if the word was modified

Update a transcript

curl PUT 'https://vatis.tech/api/v2/transcripts/35dc963f-4107-4699-a4a0-0f8ea0fcbb6e' \
--header 'Authorization: Bearer **your_api_key_here**' \
--data-raw '{
    "createVersion": false,
    "transcript": {
    "children": [
      {
        "type": "paragraph",
        "data-speaker": "1",
        "data-speaker-gender": null,
        "data-start": 4,
        "data-end": 7,
        "data-completed": false,
        "data-edited": false,
        "children": [
          {
            "data-start": 4,
            "data-end": 5,
            "data-text": "ar"
          },
          {
            "data-start": 5,
            "data-end": 5,
            "data-text": "putea"
          },
          {
            "data-start": 5,
            "data-end": 6,
            "data-text": "să"
          },
          {
            "data-start": 6,
            "data-end": 6,
            "data-text": "vină"
          },
          {
            "data-start": 6,
            "data-end": 7,
            "data-text": "câteva"
          },
          {
            "data-start": 7,
            "data-end": 7,
            "data-text": "ploi"
          },
          {
            "data-start": 7,
            "data-end": 8,
            "data-text": "trecătoare"
          }
        ]
      }
    ],
    "meta": null
  }
}'
require "uri"
require "net/http"

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

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Authorization"] = "Bearer **your_api_key_here**"
request.body = "{\
                    \"createVersion\": false,\
                    \"transcript\": {\
                    \"children\": [\
                      {\
                        \"type\": \"paragraph\",\
                        \"data-speaker\": \"1\",\
                        \"data-speaker-gender\": null,\
                        \"data-start\": 4,\
                        \"data-end\": 7,\
                        \"data-completed\": false,\
                        \"data-edited\": false,\
                        \"children\": [\
                          {\
                            \"data-start\": 4,\
                            \"data-end\": 5,\
                            \"data-text\": \"ar\"\
                          },\
                          {\
                            \"data-start\": 5,\
                            \"data-end\": 5,\
                            \"data-text\": \"putea\"\
                          },\
                          {\
                            \"data-start\": 5,\
                            \"data-end\": 6,\
                            \"data-text\": \"să\"\
                          },\
                          {\
                            \"data-start\": 6,\
                            \"data-end\": 6,\
                            \"data-text\": \"vină\"\
                          },\
                          {\
                            \"data-start\": 6,\
                            \"data-end\": 7,\
                            \"data-text\": \"câteva\"\
                          },\
                          {\
                            \"data-start\": 7,\
                            \"data-end\": 7,\
                            \"data-text\": \"ploi\"\
                          },\
                          {\
                            \"data-start\": 7,\
                            \"data-end\": 8,\
                            \"data-text\": \"trecătoare\"\
                          }\
                        ]\
                      }\
                    ],\
                    \"meta\": null\
                  }\
                }"

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

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

payload = """
    {
      \"createVersion\": false,
      \"transcript\": {
          \"children\": [{
              \"type\": \"paragraph\",
              \"data-speaker\": \"1\",
              \"data-speaker-gender\": null,
              \"data-start\": 4,
              \"data-end\": 7,
              \"data-completed\": false,
              \"data-edited\": false,
              \"children\": [
                  {
                      \"data-start\": 4,
                      \"data-end\": 5,
                      \"data-text\": \"ar\"
                  },
                  {
                      \"data-start\": 5,
                      \"data-end\": 5,
                      \"data-text\": \"putea\"
                  },
                  {
                      \"data-start\": 5,
                      \"data-end\": 6,
                      \"data-text\": \"să\"
                  },
                  {
                      \"data-start\": 6,
                      \"data-end\": 6,
                      \"data-text\": \"vină\"
                  },
                  {
                      \"data-start\": 6,
                      \"data-end\": 7,
                      \"data-text\": \"câteva\"
                  },
                  {
                      \"data-start\": 7,
                      \"data-end\": 7,
                      \"data-text\": \"ploi\"
                  },
                  {
                      \"data-start\": 7,
                      \"data-end\": 8,
                      \"data-text\": \"trecătoare\"
                  }
              ]
          }],
          \"meta\": null
      }
    }
"""

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

response = requests.request("PUT", 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({
  createVersion: false,
  transcript: {
    children: [
      {
        type: "paragraph",
        "data-speaker": "1",
        "data-speaker-gender": null,
        "data-start": 4,
        "data-end": 7,
        "data-completed": false,
        "data-edited": false,
        children: [
          {
            "data-start": 4,
            "data-end": 5,
            "data-text": "ar",
          },
          {
            "data-start": 5,
            "data-end": 5,
            "data-text": "putea",
          },
          {
            "data-start": 5,
            "data-end": 6,
            "data-text": "să",
          },
          {
            "data-start": 6,
            "data-end": 6,
            "data-text": "vină",
          },
          {
            "data-start": 6,
            "data-end": 7,
            "data-text": "câteva",
          },
          {
            "data-start": 7,
            "data-end": 7,
            "data-text": "ploi",
          },
          {
            "data-start": 7,
            "data-end": 8,
            "data-text": "trecătoare",
          },
        ],
      },
    ],
    meta: null,
  },
});

var requestOptions = {
  method: "PUT",
  headers: myHeaders,
  body: raw,
  redirect: "follow",
};

fetch(
  "https://vatis.tech/api/v2/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",
  "secondsDuration": 120,
  "createdDate": "2020-09-05T10:44:39.896873Z",
  "language": "ro_RO",
  "speakers": 1,
  "versions": ["raw", "original", "latest"]
}

Update a transcript for a file by file uid. Giving an optional createVersion flag, a snapshot can also be taken.

HTTP Request

PUT https://vatis.tech/api/v2/transcripts/{uid}

Query Parameters

Parameter Default Description
uid None (required) File uid.

Body Attributes

Attribute Type Default Description
createVersion bool None Flag that force a new version snapshot from the current body
transcript object (required) Transcript body that should be updated

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, QUEUED.
startTime double Start time of the word in seconds.
endTime double End time of the word in seconds.
versions string Transcript in different states such as raw, latest, original or a snapshot in time
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.

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 data content 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://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, QUEUED.

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://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, QUEUED.

HTTP Request

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

Query Parameters

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

Folders

Create a folder

curl --request POST 'https://vatis.tech/api/v1/files/71516972-3791-44b5-b47d-80a43b92704c/test1' \
--header 'Authorization: Bearer **your_api_key**'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/71516972-3791-44b5-b47d-80a43b92704c/test1")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer **your_api_key**"

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

url = "https://vatis.tech/api/v1/files/71516972-3791-44b5-b47d-80a43b92704c/test1"

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

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

print(response.text)
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key**");

var requestOptions = {
  method: "POST",
  headers: myHeaders,
  redirect: "follow",
};

fetch(
  "https://vatis.tech/api/v1/files/71516972-3791-44b5-b47d-80a43b92704c/test1",
  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": "fdf1cb03-cbfe-4630-8c06-5e96f01835ad",
  "discriminator": "FOLDER",
  "name": "test1",
  "guests": [],
  "children": []
}

Create a new folder.

HTTP Request

POST https://vatis.tech/api/v1/files/{parentUid}/{name}

Query parameters

Parameter Type Default Description
parentUid UUID (required) Parent uid. For creating a folder inside the root folder, use the $.currentWorkspace.root.uid value from this request
name string (required) Folder name

Response Attributes

Attribute Type Description
uid UUID Uid of the newly created folder
discriminator string File type
name string Folder name
guests array Folder guests
children array Folder children

Folder children

curl --location --request GET 'https://vatis.tech/api/v1/files/{folderUid}/children?page=0&size=10&sort=createdDate,desc' \
--header 'Authorization: Bearer **your_api_keys**'
require "uri"
require "net/http"

url = URI("https://vatis.tech/api/v1/files/{folderUid}/children?page=0&size=10&sort=createdDate,desc")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer **your_api_keys**"

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

url = "https://vatis.tech/api/v1/files/{folderUid}/children?page=0&size=10&sort=createdDate,desc"

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

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

print(response.text)
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_keys**");

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

fetch(
  "https://vatis.tech/api/v1/files/{folderUid}/children?page=0&size=10&sort=createdDate,desc",
  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": "57368846-0000-0000-0000-080f64ce2233",
      "discriminator": "VATIS_TRANSCRIBED_FILE",
      "name": "probe4_16khz_16b_mono_ro_RO.wav",
      "secondsDuration": 5,
      "language": "ro_RO",
      "createdDate": "2022-07-12T09:50:09.223525Z",
      "status": "TRANSCRIPTED"
    },
    {
      "uid": "d3ac5f1d-0000-0000-0000-3c10fcf0e4ca",
      "discriminator": "FOLDER",
      "name": "test",
      "secondsDuration": null,
      "language": null,
      "createdDate": "2022-07-12T09:47:15.834683Z",
      "status": null
    }
  ],
  "pageable": {
    "sort": {
      "sorted": true,
      "unsorted": false,
      "empty": false
    },
    "pageNumber": 0,
    "pageSize": 10,
    "offset": 0,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "totalElements": 2,
  "last": true,
  "first": true,
  "sort": {
    "sorted": true,
    "unsorted": false,
    "empty": false
  },
  "number": 0,
  "numberOfElements": 2,
  "size": 10,
  "empty": false
}

Retrieve files inside a folder.

HTTP Request

POST https://vatis.tech/api/v1/files/{folderUid}/children?page=0&size=10&sort=createdDate,desc

Query Parameters

Parameter Type Default Description
page int 0 Page number
size int 10 Page size
sort string null Sorting criteria

Delete folder

curl --location -g --request DELETE 'https://vatis.tech/api/v1/files/{fileUid}' \
--header 'Authorization: Bearer **your_api_key**'
require "uri"
require "net/http"

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

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

request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer **your_api_key**"

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

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

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

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

print(response.text)
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer **your_api_key**");

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

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

Deletes a file or folder and all it's content.

HTTP Request

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

Query Parameters

Parameter Type Default Description
fileUid UUID (required) File/Folder uid

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://vatis.tech/api/v1/download/{uid}/{type}?language={language}

Query Parameters

Parameter Default Description
uid None (required) File uid.
type None (required) One of the following values: srt, pdf, docx
language None Language code of the translation in the form of XX-YY (e.g. EN-GB)

Languages

We support the following languages codes:

Code Language
ro_RO Romanian (Romanian)
en_GB English (United Kingdom)
de_DE German (Germany)
es_ES Spanish (Spain)
fr_FR French (France)
ru_RU Russian (Russia)
fi_FI Finnish (Finland)
da_DK Danish (Denmark)
nl_NL Dutch (Netherlands)
it_IT Italian (Italy)
pt_PT Portuguese (Portugal)
pl_PL Polish (Poland)
id_ID Indonesian (Indonesia)
tr_TR Turkish (Turkey)
sv_SE Swedish (Sweden)
ms_MY Malay (Malaysia)
nn_NO Norwegian (Norway)
ca_ES Catalan (Spain)

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

Entity tags