Introduction
VoiceIt API 3
Make sure you have curl installed
https://curl.haxx.se
Note, voiceit3 wrapper only works for Python 3, and hence, will not be available on the Python 2 pip package manager.
Use pip to get the VoiceIt module.
pip3 install voiceit3
#Import the module
from voiceit3 import VoiceIt3
We recommend using jitpack to grab the wrapper into your project. Add the following to
pom.xmlif you are using Maven for you project:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.voiceittech</groupId>
<artifactId>VoiceIt3-Java</artifactId>
<version>JAVA_VERSION_HERE</version>
</dependency>
</dependencies>
For Gradle, you may need to disable offline mode in case you are using Intellij. Add the following to your Gradle build file:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.voiceittech:VoiceIt3-Java:JAVA_VERSION_HERE'
}
Please make sure you have the rest client installed
gem install rest-client
Install VoiceIt3's gem
gem install VoiceIt3
#Require the wrapper
require 'VoiceIt3'
Install the VoiceIt Go module first. We suggest you use Go >= 1.11 and use the built in versioned module system by setting the
GO111MODULESenvironment variable toon. Inside a Go project, do:
go get -u github.com/voiceittech/VoiceIt3-Go/v3Read more about modules at https://golang.org/doc/go1.11#modules.
// Make sure to add the import statement
import (
voiceit3 "github.com/voiceittech/VoiceIt3-Go/v3"
)
The package also includes the
structssub-package which contains structs that you can use to unmarshal returned JSON strings to native Go primitives. Each struct is named using the convention of"[FunctionName]Return". Use as follows:
package main
import (
"encoding/json"
"fmt"
voiceit3 "github.com/voiceittech/VoiceIt3-Go/v3"
"github.com/voiceittech/VoiceIt3-Go/v3/structs"
)
func main() {
myVoiceIt := voiceit3.NewClient("<apiKey>", "<apiToken>")
ret, \_ := myVoiceIt.GetAllUsers()
fmt.Println("Print out string ret", string(ret))
var x structs.GetAllUsersReturn
json.Unmarshal(ret, &x)
fmt.Println(x.Users[0].UserId)
// (Print out the user ID of the first user
// in the returned users from the get all users call.)
}
Install the voiceit3 package via npm
npm install voiceit3-nodejs
Note, the examples presented here use some newer features only available in ES6.
//Make sure to require the project
const voiceit3 = require('voiceit3-nodejs');
Please note: The C# wrapper supports .NET Framework 4.6.1 or above
The VoiceIt module can easily be fetched from nuget command line tool:
https://www.nuget.org/packages/VoiceIt/
dotnet add package VoiceIt --version
However, for most most cases involving C# development in Visual Studio IDE, we suggest retreiving the package package through Visual Studio's "Add Packages" user interface.
In VS, right click on "Packages" in the solutions column, click on "Add Packages...", then search for "VoiceIt". After finding the package, click the checkbox and click "Add Package" button at the bottom right of the pop-up dialogue box.
In order to utilize the wrapper, include the VoiceIt3 namespace at the top of your code:
using VoiceIt3API;
Get the wrapper by directly downloading the file from Github :
https://github.com/voiceittech/VoiceIt3-PHP
under voiceit/VoiceIt3.php and include in your project
<?php
include('VoiceIt3.php');
?>
Or, use composer via the command line to get the package :
composer require voiceit-php/voiceit3
<?php
//Make sure to add this at top when using composer
require __DIR__.'/vendor/autoload.php';
?>
To use the Perl wrapper, please download the perl file from our repository and add it to the root of your project folder. Make sure you have the following modules installed:
HTTP::Request::Common
LWP::Protocol::https
LWP::UserAgent
To install using the prefered method ofcpan, enter thecpanCLI tool, then type:install <Package Name>to install the aforementioned packages.Make sure to require the voiceIt3 module in your program.
require "./voiceIt3.pm";
This wrapper will return string objects which can be parsed as JSON objects. The
parse_json()function from the packageJSON::Parseis particularly suited to retreive values for specific fields from JSON strings.
Note: This package has been tested on Perl 5 version 28, and should be compatible with other versions of Perl 5. However, the changes introduced in Raku (formerly Perl 6) render it incompatible with our wrapper.
The latest C++ wrapper (version ) is available as a C++ header file at and depends on
libcurl.
On Unix based systems, the fastest way to see how to link a specific version of the curl library is by using
curl-config.If using g++, you can run
curl-config --libs. Assuming the output for that command is-L/usr/local/Cellar/curl/7.64.0/lib -lcurl -lldap -lz, you will compile using the command:
g++ File.cpp -o executablename -L/usr/local/Cellar/curl/7.64.0/lib -lcurl -lldap -lz
For DOS based machines, the quickest way to get
libcurlfor Visual Studio is by using Vcpkg. The first example after the set-up instructions conveniently shows how you can installlibcurl.
In order to utilize the wrapper, include the header in your program as follows:
#include "VoiceIt3.hpp";
If you need a JSON serialization library for C++, we highly recommend nlohmann/json.
The Scala wrapper is available as a JitPack package repository. In order to utilize it in your project you will need to add the JitPack resolver and our package dependency to
build.sbtin your project root.
resolvers += "jitpack" at "https://jitpack.io"
libraryDependencies += "com.github.voiceittech" % "voiceit3-scala" %
Note: Please define an SBT version 1.0.0 or newer inproject/build.propertiesin order to use this wrapper.
In order to utilize the wrapper, import the class in your program as follows:
import voiceit3.VoiceIt3
Add the
voiceit3crate to your project'sCargo.toml.
[package]
...
[dependencies]
voiceit3 = ""
In order to utilize the wrapper, import the class in your program as follows:
extern crate voiceit3;
The crate also includes the
structssub-package which contains structs that you can use to unmarshal returned JSON strings to native Rust primitives. Each struct is named using the convention of"[FunctionName]Return". Use withserde_jsonas follows:
extern crate serde_json;
let result: voiceit3::structs::users::GetAllUsersReturn = match &my_voiceit.get_all_users() {
Ok(x) => serde_json::from_str(&x).expect(format!("Unable to unmarshal JSON properly due to call failing and returning with missing values. server response: {}", &x).as_str()),
Err(err) => {
panic!("Panic error: {:?}", err);
}
};
println!("User Count={}", result.count);
VoiceIt API 3 can be used to add Voice + Face Verification and Identification to your projects. You can view code examples, with tabs to select your preferred programming language in the dark panel on the right.
If you would like to see how the data looks on our end, please use the Dashboard. There, you can review all activity on your account, including error messages and corresponding recordings and graph activity plots within a given interval.

Authentication
Initialize VoiceIt by passing in your API credentials
Basic Authentication
| Parameter | Type | Description | Required |
|---|---|---|---|
| apiKey | String | Your API 3 key | True |
| apiToken | String | Your API 3 token | True |
With shell, you can just use the -u flag to pass the credentials
without having to manually base64 encode them
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/..."
my_voiceit = VoiceIt3('<apiKey>','<apiToken>')
VoiceIt3 myVoiceIt = new VoiceIt3("<apiKey>","<apiToken>");
myVoiceIt = VoiceIt3.new("<apiKey>", "<apiToken>")
myVoiceIt := voiceit3.NewClient("<apiKey>", "<apiToken>")
let myVoiceIt = new voiceit3("<apiKey>", "<apiToken>");
VoiceIt3 myVoiceIt = new VoiceIt3("<apiKey>", "<apiToken>");
<?php
$myVoiceIt = new VoiceIt\VoiceIt3("<apiKey>", "<apiToken>");
?>
my $myVoiceIt = voiceIt3->new("<apiKey>","<apiToken>");
VoiceIt3 myVoiceIt("<apiKey>", "<apiToken>");
VoiceIt3 myVoiceIt("<apiKey>", "<apiToken>")
let my_voiceit = voiceit3::client::VoiceIt3::new(String::from("<apiKey>"), String::from("<apiToken>"));
Make sure to replace
<apiKey>with your API key and<apiToken>with your auth token.
VoiceIt uses an API Key and Authorization Token to allow access to the API. You can contact us for a VoiceIt developer account.
Requests are authenticated using HTTP Basic Auth (basic access authentication). Provide your API key as the Basic Auth username and the Auth token as the Basic Auth password. You can build the authorization header manually by base64 encoding your credentials in the format <apiKey>:<apiToken> resulting in something like QVBJX0tFWV9IRVJFOkFFVEhfVE9LRU5fSEVSRQ==, then add that to the authorization header like this:
Authorization: Basic QVBJX0tFWV9IRVJFOkFFVEhfVE9LRU5fSEVSRQ==
User Token Authentication
| Parameter | Type | Description | Required |
|---|---|---|---|
| userToken | String | Your user's temporary token | True |
With shell, you can just use the -u flag to pass the credential
without having to manually base64 encode them
curl -u "<userToken>:" "https://api.voiceit.io/..."
my_voiceit = VoiceIt3('<userToken>','')
VoiceIt3 myVoiceIt = new VoiceIt3("<userToken>","");
myVoiceIt = VoiceIt3.new("<userToken>", "")
myVoiceIt := voiceit3.NewClient("<userToken>", "")
let myVoiceIt = new voiceit3("<userToken>", "");
VoiceIt3 myVoiceIt = new VoiceIt3("<userToken>", "");
<?php
$myVoiceIt = new VoiceIt\VoiceIt3("<userToken>", "");
?>
my $myVoiceIt = voiceIt3->new("<userToken>","");
VoiceIt3 myVoiceIt("<userToken>", "");
VoiceIt3 myVoiceIt("<userToken>", "")
let my_voiceit = voiceit3::client::VoiceIt3::new(String::from("<userToken>"), String::from(""));
Make sure to replace
<userToken>with your user's token and leave the<apiToken>field empty.
Developers can generate a temporary userToken to give to each of their users to authenticate against the VoiceIt API instead of users authenticating with the developer's API Key and Token. Authorization via a userToken only grants access to API calls relating to the same user. We strongly recommend to use userToken(s) and not store developer credentials on a client side application, such as a web browser or mobile device, as the credentials can be extracted.
User Token Generation is detailed in the User API call section here
Add Webhook Notification
# With shell, you can pass the escaped HTTPS URL as a query string.
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/...?notificationURL=<yourEscapedURL>"
my_voiceit.add_notification_url("<notificationURL>")
myVoiceIt.addNotificationUrl("<notificationURL>");
myVoiceIt.addNotificationUrl("<notificationURL>")
myVoiceIt.AddNotificationUrl("<notificationURL>")
myVoiceIt.addNotificationUrl({ url: "<notificationURL>" }, () => {
// All calls will notify <notificationURL>
});
myVoiceIt.AddNotificationUrl("<notificationURL>");
<?php
$myVoiceIt->addNotificationUrl("<notificationURL>");
?>
$myVoiceIt->addNotificationUrl('<notificationURL>');
myVoiceIt.AddNotificationUrl("<notificationURL>");
myVoiceIt.addNotificationUrl("<notificationURL>")
let mut my_voiceit = voiceit3::client::VoiceIt3::new(String::from("<apiKey>"), String::from("<apiToken>"));
&my_voiceit.add_notification_url("<notificationURL>");
| Parameter | Type | Description | Required |
|---|---|---|---|
| notificationURL | String | The endpoint you want notified | False |
Use webhook notifications to confirm when a user successfully verifies themselves or to receive the results of other API calls at a specific endpoint. The notificationURL is passed as a query parameter on each API call and is not stored as an account-level setting. The SDK wrapper methods addNotificationUrl and removeNotificationUrl are client-side convenience methods that configure the wrapper to automatically append or stop appending the notificationURL query parameter on subsequent calls. We strongly recommend using webhooks as the result of a verification API call can be intercepted and modified if only received on the client side, such as a browser or mobile device.
Remove Webhook Notification
# With shell, you can simply remove the query parameter to stop the webhook notifications.
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/..."
my_voiceit.remove_notification_url()
myVoiceIt.removeNotificationUrl();
myVoiceIt.removeNotificationUrl()
myVoiceIt.RemoveNotificationUrl()
myVoiceIt.removeNotificationUrl(() => {
// All calls will no longer notify <notificationURL>
});
myVoiceIt.RemoveNotificationUrl();
<?php
$myVoiceIt->removeNotificationUrl();
?>
$myVoiceIt->removeNotificationUrl();
myVoiceIt.RemoveNotificationUrl();
myVoiceIt.removeNotificationUrl()
let mut my_voiceit = voiceit3::client::VoiceIt3::new(String::from("<apiKey>"), String::from("<apiToken>"));
&my_voiceit.remove_notification_url();
This stops a client using a wrapper or SDK from automatically notifying the target URL endpoint.
Phrases
Get Phrases
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/phrases/<contentLanguage>"
my_voiceit.get_phrases("<contentLanguage>")
myVoiceIt.getPhrases("<contentLanguage>");
myVoiceIt.getPhrases("<contentLanguage>")
myVoiceIt.GetPhrases("<contentLanguage>")
myVoiceIt.getPhrases({ contentLanguage : "<contentLanguage>" }, (jsonResponse)=>{
//handle response
});
myVoiceIt.GetPhrases("<contentLanguage>");
<?php
$myVoiceIt->getPhrases("<contentLanguage>");
?>
$myVoiceIt->getPhrases("<contentLanguage>");
myVoiceIt.GetPhrases("<contentLanguage>");
myVoiceIt.getPhrases("<contentLanguage>")
&my_voiceit.get_phrases(String::from("<contentLanguage>")).unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all en-US phrases for developer account",
"count":2,
"status":200,
"timeTaken":9,
"phrases": [
{
"phraseId": "phr_a1b2c3d4e5f6",
"id": 1,
"createdAt": "2024-02-10T14:27:34",
"text": "Never forget tomorrow is a new day",
"contentLanguage": "en-US"
}, {
"phraseId": "phr_f6e5d4c3b2a1",
"id": 2,
"createdAt": "2024-02-10T14:27:34",
"text": "My face and voice identify me",
"contentLanguage": "en-US"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all of a developer's approved phrases for a given contentLanguage.
HTTP Request
GET https://api.voiceit.io/phrases/<contentLanguage>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| contentLanguage | String | Choose from a list of content language parameters | True |
Related Response Codes
SUCC, INCP
See detailed descriptions for response codes here
Users
Get All Users
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/users"
my_voiceit.get_all_users()
myVoiceIt.getAllUsers();
myVoiceIt.getAllUsers()
myVoiceIt.GetAllUsers()
myVoiceIt.getAllUsers((jsonResponse)=>{
//handle response
});
myVoiceIt.GetAllUsers();
<?php
$myVoiceIt->getAllUsers();
?>
$myVoiceIt->getAllUsers();
myVoiceIt.GetAllUsers();
myVoiceIt.getAllUsers()
&my_voiceit.get_all_users().unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all users",
"count":2,
"status":200,
"timeTaken":"0.009s",
"users": [
{
"createdAt": "2024-02-10T14:27:34",
"updatedAt": "2024-02-10T14:27:34",
"userId": "usr_49c98304252549239775e2b52a84006a"
}, {
"createdAt": "2024-02-13T18:37:38",
"updatedAt": "2024-02-13T18:37:38",
"userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all users.
HTTP Request
GET https://api.voiceit.io/users
Parameters
No additional parameters needed for this request, just basic access authentication and a GET request to the end point.
Related Response Codes
SUCC
See detailed descriptions for response codes here
Create a User
curl -u "<apiKey>:<apiToken>" -X POST "https://api.voiceit.io/users"
my_voiceit.create_user()
myVoiceIt.createUser();
myVoiceIt.createUser()
myVoiceIt.CreateUser()
myVoiceIt.createUser((jsonResponse)=>{
//handle response
});
myVoiceIt.CreateUser();
<?php
$myVoiceIt->createUser();
?>
$myVoiceIt->createUser();
myVoiceIt.CreateUser();
myVoiceIt.createUser()
&my_voiceit.create_user().unwrap();
The above command returns JSON structured like this:
{
"message": "Created user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 201,
"timeTaken": "0.055s",
"createdAt": 1487026658000,
"userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322",
"responseCode":"SUCC"
}
This endpoint creates a new user in the system and returns its unique userId.
HTTP Request
POST https://api.voiceit.io/users
Parameters
No additional parameters needed for this request, just basic access authentication and a POST request to the end point.
Related Response Codes
SUCC
See detailed descriptions for response codes here
Check If a Specific User Exists
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/users/<userId>"
my_voiceit.check_user_exists("<userId>")
myVoiceIt.checkUserExists("<userId>");
myVoiceIt.checkUserExists("<userId>")
myVoiceIt.CheckUserExists("<userId>")
myVoiceIt.checkUserExists({
userId :"<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CheckUserExists("<userId>");
<?php
$myVoiceIt->checkUserExists("<userId>");
?>
$myVoiceIt->checkUserExists("<userId>");
myVoiceIt.CheckUserExists("<userId>");
myVoiceIt.checkUserExists("<userId>")
&my_voiceit.check_user_exists(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message":"User with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322 exists",
"exists":true,
"createdAt": 1486672854000,
"status":200,
"timeTaken":"0.007s",
"responseCode":"SUCC"
}
This endpoint retrieves the given user.
HTTP Request
GET https://api.voiceit.io/users/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC
See detailed descriptions for response codes here
Delete a Specific User
curl -u "<apiKey>:<apiToken>" -X DELETE "https://api.voiceit.io/users/<userId>"
my_voiceit.delete_user("<userId>")
myVoiceIt.deleteUser("<userId>");
myVoiceIt.deleteUser("<userId>")
myVoiceIt.DeleteUser("<userId>")
myVoiceIt.deleteUser({
userId :"<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.DeleteUser("<userId>");
<?php
$myVoiceIt->deleteUser("<userId>");
?>
$myVoiceIt->deleteUser("<userId>");
myVoiceIt.DeleteUser("<userId>");
myVoiceIt.deleteUser("<userId>")
&my_voiceit.delete_user(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Deleted user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 200,
"timeTaken": "0.037s",
"responseCode":"SUCC"
}
This endpoint deletes the given user.
HTTP Request
DELETE https://api.voiceit.io/users/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD
See detailed descriptions for response codes here
Get Groups for User
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/users/<userId>/groups"
my_voiceit.get_groups_for_user("<userId>")
myVoiceIt.getGroupsForUser("<userId>");
myVoiceIt.getGroupsForUser("<userId>")
myVoiceIt.GetGroupsForUser("<userId>")
myVoiceIt.getGroupsForUser({
userId :"<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GetGroupsForUser("<userId>");
<?php
$myVoiceIt->getGroupsForUser("<userId>");
?>
$myVoiceIt->getGroupsForUser("<userId>");
myVoiceIt.GetGroupsForUser("<userId>");
myVoiceIt.getGroupsForUser("<userId>")
&my_voiceit.get_groups_for_user(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully returned all groups that user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322 is a part of",
"groups":["grp_4225f88a571f4bd790b51a91109bab88", "grp_801e4d6dc1e941bf9165ba5c84bd94d2"],
"count":2,
"status":200,
"timeTaken":"0.007s",
"responseCode":"SUCC"
}
This endpoint retrieves a list of groups associated with the given user
HTTP Request
GET https://api.voiceit.io/users/<userId>/groups
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD
See detailed descriptions for response codes here
User Token Generation
curl -u "<apiKey>:<apiToken>" -X POST "https://api.voiceit.io/users/<userId>/token?timeOut=<secondsToTimeout>"
my_voiceit.create_user_token("<userId>", <seconds_to_timeout>)
myVoiceIt.createUserToken("<userId>", <secondsToTimeout>);
myVoiceIt.createUserToken("<userId>", <secondsToTimeout>)
myVoiceIt.CreateUserToken("<userId>", <secondsToTimeout>*time.Second)
myVoiceIt.createUserToken({
userId :"<userId>",
secondsToTimeout: <secondsToTimeout>,
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateUserToken("<userId>", <secondsToTimeout>);
<?php
$myVoiceIt->createUserToken("<userId>", <secondsToTimeout>);
?>
$myVoiceIt->createUserToken("<userId>", <secondsToTimeout>);
myVoiceIt.CreateUserToken("<userId>", <secondsToTimeout>);
myVoiceIt.createUserToken("<userId>", <secondsToTimeout>)
&my_voiceit.create_user_token(String::from("<userId>"), <secondsToTimeout>).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully created userToken for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322 which will expire on 2026-02-26T18:37:38",
"userToken": "utk_d48cf29e8db84034bee07219a031121d_1487026658000",
"status": 201,
"timeTaken": "0.055s",
"createdAt": 1487026658000,
"responseCode":"SUCC"
}
Users can use a temporary generated userToken associated with their profile instead of the developer's API Key and Authorization Token to allow access to the API. This allows the developer to send the userToken to the client side each time it needs access instead of using the developer's API key and Token on the client side.
HTTP Request
POST https://api.voiceit.io/users/<userId>/token
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The Id of the user | True |
| timeOut | Integer | Timeout in seconds to expire generated user token (defaults to 3600 if not provided) | False |
Related Response Codes
SUCC, UNFD, INVT
See detailed descriptions for response codes here
User Token Expiration
curl -u "<apiKey>:<apiToken>" -X POST "https://api.voiceit.io/users/<userId>/expireTokens"
my_voiceit.expire_user_tokens("<userId>")
myVoiceIt.expireUserTokens("<userId>");
myVoiceIt.expireUserTokens("<userId>")
myVoiceIt.ExpireUserTokens("<userId>")
myVoiceIt.expireUserTokens({
userId :"<userId>",
},(jsonResponse)=>{
//handle response
});
myVoiceIt.ExpireUserTokens("<userId>");
<?php
$myVoiceIt->expireUserTokens("<userId>");
?>
$myVoiceIt->expireUserTokens("<userId>");
myVoiceIt.ExpireUserTokens("<userId>");
myVoiceIt.expireUserTokens("<userId>")
&my_voiceit.expire_user_tokens(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully expired active userTokens for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 200,
"timeTaken": "0.055s",
"responseCode":"SUCC"
}
Expires all of a user's active userToken(s) associated with their profile.
HTTP Request
POST https://api.voiceit.io/users/<userId>/expireTokens
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The Id of the user | True |
Related Response Codes
SUCC, UNFD
See detailed descriptions for response codes here
Groups
Get All Groups
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/groups"
my_voiceit.get_all_groups()
myVoiceIt.getAllGroups();
myVoiceIt.getAllGroups()
myVoiceIt.GetAllGroups()
myVoiceIt.getAllGroups((jsonResponse)=>{
//handle response
});
myVoiceIt.GetAllGroups();
<?php
$myVoiceIt->getAllGroups();
?>
$myVoiceIt->getAllGroups();
myVoiceIt.GetAllGroups();
myVoiceIt.getAllGroups()
&my_voiceit.get_all_groups().unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all groups for developer account",
"count":1,
"status":200,
"timeTaken":"0.009s",
"groups": [
{
"createdAt": "2024-02-10T14:27:34",
"description": "Main Group",
"groupId" : "grp_4225f88a571f4bd790b51a91109bab88",
"users" : ["usr_feb6d1fcd80448628db8ec6a7ddb6322"],
"userCount" : 1
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all groups.
HTTP Request
GET https://api.voiceit.io/groups
Parameters
No additional parameters needed for this request, just basic access authentication and a GET request to the end point.
Related Response Codes
SUCC
See detailed descriptions for response codes here
Get a Specific Group
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/groups/<groupId>"
my_voiceit.get_group("<groupId>")
myVoiceIt.getGroup("<groupId>");
myVoiceIt.getGroup("<groupId>")
myVoiceIt.GetGroup("<groupId>")
myVoiceIt.getGroup({
groupId : "<groupId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GetGroup("<groupId>");
<?php
$myVoiceIt->getGroup("<groupId>");
?>
$myVoiceIt->getGroup("<groupId>");
myVoiceIt.GetGroup("<groupId>");
myVoiceIt.getGroup("<groupId>")
&my_voiceit.get_group(String::from("<groupId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully returned group with groupId : grp_4225f88a571f4bd790b51a91109bab88",
"description": "Family",
"groupId": "grp_4225f88a571f4bd790b51a91109bab88",
"createdAt": 1486991883000,
"users": [ "usr_feb6d1fcd80448628db8ec6a7ddb6322" ],
"userCount" : 1,
"status": 200,
"timeTaken": "0.008s",
"responseCode" : "SUCC"
}
This endpoint retrieves the associated users and other fields for the given group
HTTP Request
GET https://api.voiceit.io/groups/<groupId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
Related Response Codes
SUCC, GNFD
See detailed descriptions for response codes here
Check if Group Exists
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/groups/<groupId>/exists"
my_voiceit.group_exists("<groupId>")
myVoiceIt.groupExists("<groupId>");
myVoiceIt.groupExists("<groupId>")
myVoiceIt.CheckGroupExists("<groupId>")
myVoiceIt.checkGroupExists({
groupId : "<groupId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GroupExists("<groupId>");
<?php
$myVoiceIt->groupExists("<groupId>");
?>
$myVoiceIt->groupExists("<groupId>");
myVoiceIt.CheckGroupExists("<groupId>");
myVoiceIt.checkGroupExists("<groupId>")
&my_voiceit.check_group_exists(String::from("<groupId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Group with groupId : grp_4225f88a571f4bd790b51a91109bab88 exists",
"exists": true,
"status": 200,
"timeTaken": "0.001s",
"responseCode" : "SUCC"
}
This endpoint can be used to check the existence of the given group
HTTP Request
GET https://api.voiceit.io/groups/<groupId>/exists
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
Related Response Codes
SUCC
See detailed descriptions for response codes here
Create a Group
curl -u "<apiKey>:<apiToken>" -F "description=<description>" -X POST "https://api.voiceit.io/groups"
my_voiceit.create_group("<description>")
myVoiceIt.createGroup("<description>");
myVoiceIt.createGroup("<description>")
myVoiceIt.CreateGroup("<description>")
myVoiceIt.createGroup({
description: "<description>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateGroup("<description>");
<?php
$myVoiceIt->createGroup("<description>");
?>
$myVoiceIt->createGroup("<description>");
myVoiceIt.CreateGroup("<description>");
myVoiceIt.createGroup("<description>")
&my_voiceit.create_group(String::from("<description>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Created group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"description": "Family",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"status": 201,
"createdAt" : 1487026658000,
"timeTaken": "0.011s",
"responseCode" : "SUCC"
}
This endpoint creates a new group in the system and returns its unique groupId.
HTTP Request
POST https://api.voiceit.io/groups
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| description | String | An optional description help identify the group | False |
Related Response Codes
SUCC
See detailed descriptions for response codes here
Add User to Group
curl -u "<apiKey>:<apiToken>" \
-F "groupId=<groupId>" \
-F "userId=<userId>" \
-X PUT "https://api.voiceit.io/groups/addUser"
my_voiceit.add_user_to_group("<groupId>", "<userId>")
myVoiceIt.addUserToGroup("<groupId>", "<userId>");
myVoiceIt.addUserToGroup("<groupId>", "<userId>")
myVoiceIt.AddUserToGroup("<groupId>", "<userId>")
myVoiceIt.addUserToGroup({
userId : "<userId>",
groupId : "<groupId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.AddUserToGroup("<groupId>", "<userId>");
<?php
$myVoiceIt->addUserToGroup("<groupId>", "<userId>");
?>
$myVoiceIt->addUserToGroup("<groupId>", "<userId>");
myVoiceIt.AddUserToGroup("<groupId>", "<userId>");
myVoiceIt.addUserToGroup("<groupId>", "<userId>")
&my_voiceit.add_user_to_group(String::from("<groupId>"), String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully added user with userId : usr_49c98304252549239775e2b52a84006a to group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"status": 200,
"timeTaken": "0.002s",
"responseCode" : "SUCC"
}
This endpoint associates the given user to the given group.
HTTP Request
PUT https://api.voiceit.io/groups/addUser
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| groupId | String | The ID of the group | True |
Related Response Codes
SUCC, MISP, FAIL, GNFD, UNFD
See detailed descriptions for response codes here
Remove User from Group
curl -u "<apiKey>:<apiToken>" \
-F "groupId=<groupId>" \
-F "userId=<userId>" \
-X DELETE "https://api.voiceit.io/groups/removeUser"
my_voiceit.remove_user_from_group("<groupId>", "<userId>")
myVoiceIt.removeUserFromGroup("<groupId>", "<userId>");
myVoiceIt.removeUserFromGroup( "<groupId>", "<userId>")
myVoiceIt.RemoveUserFromGroup( "<groupId>", "<userId>")
myVoiceIt.removeUserFromGroup({
userId : "<userId>",
groupId : "<groupId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.RemoveUserFromGroup( "<groupId>", "<userId>");
<?php
$myVoiceIt->removeUserFromGroup("<groupId>", "<userId>");
?>
$myVoiceIt->removeUserFromGroup("<groupId>", "<userId>");
myVoiceIt.RemoveUserFromGroup("<groupId>", "<userId>");
myVoiceIt.removeUserFromGroup("<groupId>", "<userId>")
&my_voiceit.remove_user_from_group(String::from("<groupId>"), String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully removed user usr_49c98304252549239775e2b52a84006a from group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"status": 200,
"timeTaken": "0.002s",
"responseCode" : "SUCC"
}
This endpoint removes the association between the given user and the given group.
HTTP Request
DELETE https://api.voiceit.io/groups/removeUser
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| groupId | String | The ID of the group | True |
Related Response Codes
SUCC, MISP, FAIL, GNFD, UNFD
See detailed descriptions for response codes here
Delete a Specific Group
curl -u "<apiKey>:<apiToken>" -X DELETE "https://api.voiceit.io/groups/<groupId>"
my_voiceit.delete_group("<groupId>")
myVoiceIt.deleteGroup("<groupId>");
myVoiceIt.deleteGroup("<groupId>")
myVoiceIt.DeleteGroup("<groupId>")
myVoiceIt.deleteGroup({
groupId : "<groupId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.DeleteGroup("<groupId>");
<?php
$myVoiceIt->deleteGroup("<groupId>");
?>
$myVoiceIt->deleteGroup("<groupId>");
myVoiceIt.DeleteGroup("<groupId>");
myVoiceIt.deleteGroup("<groupId>")
&my_voiceit.delete_group(String::from("<groupId>")).unwrap();
The above command returns JSON structured like this
{
"message": "Successfully deleted group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"status": 200,
"timeTaken": "0.037s",
"responseCode":"SUCC"
}
This endpoint deletes the given group.
HTTP Request
DELETE https://api.voiceit.io/groups/<groupId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
Related Response Codes
SUCC, GNFD
See detailed descriptions for response codes here
Delete All Groups
curl -u "<apiKey>:<apiToken>" -X DELETE "https://api.voiceit.io/groups"
The above command returns JSON structured like this:
{
"message": "Successfully deleted all groups for developer account",
"responseCode": "SUCC",
"status": 200,
"timeTaken": "0.042s"
}
This endpoint deletes all groups for the authenticated developer account.
HTTP Request
DELETE https://api.voiceit.io/groups
Related Response Codes
SUCC
See detailed descriptions for response codes here
Enrollments
Get All Enrollments
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/enrollments/<userId>"
The above command returns JSON structured like this:
{
"message": "Successfully got all enrollments for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"count": 3,
"status": 200,
"timeTaken": "0.024s",
"enrollments": [
{
"enrollmentId": "enr_a1b2c3d4e5f6",
"userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322",
"createdAt": "2019-07-18T12:47:52",
"status": "ACTIVE"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all enrollments (voice, face, and video) for the given user.
HTTP Request
GET https://api.voiceit.io/enrollments/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The Id of the user | True |
Related Response Codes
SUCC, UNFD, UDNM
See detailed descriptions for response codes here
Get All Voice Enrollments
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/enrollments/voice/<userId>"
my_voiceit.get_all_voice_enrollments("<userId>")
myVoiceIt.getAllVoiceEnrollments("<userId>");
myVoiceIt.getAllVoiceEnrollments("<userId>")
myVoiceIt.GetAllVoiceEnrollments("<userId>")
myVoiceIt.getAllVoiceEnrollments({
userId : "<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GetAllVoiceEnrollments("<userId>");
<?php
$myVoiceIt->getAllVoiceEnrollments("<userId>");
?>
$myVoiceIt->getAllVoiceEnrollments("<userId>");
myVoiceIt.GetAllVoiceEnrollments("<userId>");
myVoiceIt.getAllVoiceEnrollments("<userId>")
&my_voiceit.get_all_voice_enrollments(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all voice enrollments for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"count":2,
"status":200,
"timeTaken":"0.079s",
"voiceEnrollments": [
{
"voiceEnrollmentId": "73",
"createdAt": "2024-02-13T18:37:38",
"contentLanguage": "en-US",
"text": "never forget tomorrow is a new day"
}, {
"voiceEnrollmentId": "79",
"createdAt": "2024-02-13T18:38:12",
"contentLanguage": "en-US",
"text": "never forget tomorrow is a new day"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all the voice enrollments for a user.
HTTP Request
GET https://api.voiceit.io/enrollments/voice/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD, UDNM
See detailed descriptions for response codes here
Get All Face Enrollments
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/enrollments/face/<userId>"
my_voiceit.get_all_face_enrollments("<userId>")
myVoiceIt.getAllFaceEnrollments("<userId>");
myVoiceIt.getAllFaceEnrollments("<userId>")
myVoiceIt.GetAllFaceEnrollments("<userId>")
myVoiceIt.getAllFaceEnrollments({
userId : "<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GetAllFaceEnrollments("<userId>");
<?php
$myVoiceIt->getAllFaceEnrollments("<userId>");
?>
$myVoiceIt->getAllFaceEnrollments("<userId>");
myVoiceIt.GetAllFaceEnrollments("<userId>");
myVoiceIt.getAllFaceEnrollments("<userId>")
&my_voiceit.get_all_face_enrollments(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all face enrollments for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"count":2,
"status":200,
"timeTaken":"0.079s",
"faceEnrollments": [
{
"faceEnrollmentId": "23",
"createdAt": "2024-02-10T14:27:34"
}, {
"faceEnrollmentId": "45",
"createdAt": "2024-02-13T18:37:38"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all the face enrollments for a user.
HTTP Request
GET https://api.voiceit.io/enrollments/face/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD, UDNM
See detailed descriptions for response codes here
Get All Video Enrollments
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/enrollments/video/<userId>"
my_voiceit.get_all_video_enrollments("<userId>")
myVoiceIt.getAllVideoEnrollments("<userId>");
myVoiceIt.getAllVideoEnrollments("<userId>")
myVoiceIt.GetAllVideoEnrollments("<userId>")
myVoiceIt.getAllVideoEnrollments({
userId : "<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.GetAllVideoEnrollments("<userId>");
<?php
$myVoiceIt->getAllVideoEnrollments("<userId>");
?>
$myVoiceIt->getAllVideoEnrollments("<userId>");
myVoiceIt.GetAllVideoEnrollments("<userId>");
myVoiceIt.getAllVideoEnrollments("<userId>")
&my_voiceit.get_all_video_enrollments(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message":"Successfully got all video enrollments for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"count":2,
"status":200,
"timeTaken":"0.079s",
"videoEnrollments": [
{
"enrollmentId": "73",
"userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322",
"createdAt": "2024-02-13T18:37:38",
"status": "enrolled"
}, {
"enrollmentId": "79",
"userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322",
"createdAt": "2024-02-13T18:38:12",
"status": "enrolled"
}
],
"responseCode":"SUCC"
}
This endpoint retrieves all the video enrollments for a user.
HTTP Request
GET https://api.voiceit.io/enrollments/video/<userId>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD, UDNM
See detailed descriptions for response codes here
Create Voice Enrollment
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "recording=@<recording>" \
"https://api.voiceit.io/enrollments/voice"
my_voiceit.create_voice_enrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.createVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", <recording>);
myVoiceIt.createVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.CreateVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.createVoiceEnrollment({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFilePath : "<recording>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
<?php
$myVoiceIt->createVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
?>
$myVoiceIt->createVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.CreateVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.createVoiceEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
&my_voiceit.create_voice_enrollment(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<recording>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled voice for user with userId : usr_49c98304252549239775e2b52a84006a",
"contentLanguage": "en-US",
"id": 57,
"status": 201,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"createdAt": 1487026658000,
"timeTaken": "7.718s",
"responseCode" : "SUCC"
}
This endpoint creates a new voice enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/voice
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| recording | File / String | The binary audio data uploaded as a file. Some of our wrappers also accept the absolute path to the audio file | True |
Related Response Codes
SUCC, MISP, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, NSPE, NPFC, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Create Voice Enrollment by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/enrollments/voice/byUrl"
my_voiceit.create_voice_enrollment_by_url("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.createVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.createVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.CreateVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.createVoiceEnrollmentByUrl({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->createVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->createVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.CreateVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.createVoiceEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.create_voice_enrollment_by_url(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled voice for user with userId : usr_49c98304252549239775e2b52a84006a",
"contentLanguage": "en-US",
"id": 57,
"status": 201,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"createdAt": 1487026658000,
"timeTaken": "7.718s",
"responseCode" : "SUCC"
}
This endpoint creates a new voice enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/voice/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified URL to the audio file to be used for enrollment | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, MISP, DDNE, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, NSPE, NPFC, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Create Face Enrollment
# Using a photo file:
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "photo=@<photo>" \
"https://api.voiceit.io/enrollments/face"
# Or using a video file:
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "video=@<video>" \
"https://api.voiceit.io/enrollments/face"
my_voiceit.create_face_enrollment("<userId>", "<video>")
myVoiceIt.createFaceEnrollment("<userId>", "<video>");
myVoiceIt.createFaceEnrollment("<userId>", "<video>")
myVoiceIt.CreateFaceEnrollment("<userId>", "<video>")
myVoiceIt.createFaceEnrollment({
userId : "<userId>",
videoFilePath : "<video>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateFaceEnrollment("<userId>", "<video>");
<?php
$myVoiceIt->createFaceEnrollment("<userId>", "<video>");
?>
$myVoiceIt->createFaceEnrollment("<userId>", "<video>");
myVoiceIt.CreateFaceEnrollment("<userId>", "<video>");
myVoiceIt.createFaceEnrollment("<userId>", "<video>")
&my_voiceit.create_face_enrollment(String::from("<userId>"), String::from("<video>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled face for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 201,
"timeTaken": "5.055s",
"faceEnrollmentId":34,
"createdAt": 1487026658000,
"apiCallId": "a1b2c3d4e5f6a1b2c3d4e5f6",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint creates a new face enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/face
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| photo | File / String | The binary photo data uploaded as a file. Some of our wrappers also accept the absolute path to the photo file | False |
| video | File / String | The binary video data uploaded as a file. Some of our wrappers also accept the absolute path to the video file | False |
Related Response Codes
SUCC, MISP, IFVD, FTMF, FNFD, FALI, NSPE, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Create Face Enrollment by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/enrollments/face/byUrl"
my_voiceit.create_face_enrollment_by_url("<userId>", "<fileUrl>")
myVoiceIt.createFaceEnrollmentByUrl("<userId>", "<fileUrl>");
myVoiceIt.createFaceEnrollmentByUrl("<userId>", "<fileUrl>")
myVoiceIt.CreateFaceEnrollmentByUrl("<userId>", "<fileUrl>")
myVoiceIt.createFaceEnrollmentByUrl({
userId : "<userId>",
videoFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateFaceEnrollmentByUrl("<userId>", "<fileUrl>");
<?php
$myVoiceIt->createFaceEnrollmentByUrl("<userId>", "<fileUrl>");
?>
$myVoiceIt->createFaceEnrollmentByUrl("<userId>", "<fileUrl>");
myVoiceIt.CreateFaceEnrollmentByUrl("<userId>", "<fileUrl>");
myVoiceIt.createFaceEnrollmentByUrl("<userId>", "<fileUrl>")
&my_voiceit.create_face_enrollment_by_url(String::from("<userId>"), String::from("<fileUrl>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled face for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 201,
"timeTaken": "5.055s",
"faceEnrollmentId":34,
"createdAt": 1487026658000,
"apiCallId": "a1b2c3d4e5f6a1b2c3d4e5f6",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint creates a new face enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/face/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| fileUrl | String | A fully qualified url to the video file | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, MISP, DDNE, IFVD, FTMF, FNFD, FALI, NSPE, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Create Video Enrollment
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "video=@<video>" \
"https://api.voiceit.io/enrollments/video"
my_voiceit.create_video_enrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.createVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.createVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.CreateVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.createVideoEnrollment({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFilePath : "<video>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>");
<?php
$myVoiceIt->createVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>");
?>
$myVoiceIt->createVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.CreateVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.createVideoEnrollment("<userId>", "<contentLanguage>", "<phrase>", "<video>")
&my_voiceit.create_video_enrollment(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<video>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled video for user with userId : usr_49c98304252549239775e2b52a84006a",
"contentLanguage": "en-US",
"id": 57,
"faceEnrollmentId": "fen_a1b2c3d4e5f6",
"status": 201,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"createdAt": 1487026658000,
"timeTaken": "4.718s",
"isLive": true,
"livenessScore": 99.46,
"responseCode" : "SUCC"
}
This endpoint creates a new voice + face enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/video
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| video | File / String | The binary video data uploaded as a file. Some of our wrappers also accept the absolute path to the video file | True |
Related Response Codes
SUCC, MISP, IFVD, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FALI, NSPE, NPFC, FTMF, FNFD, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Create Video Enrollment by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/enrollments/video/byUrl"
my_voiceit.create_video_enrollment_by_url("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.createVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.createVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.CreateVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.createVideoEnrollmentByUrl({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.CreateVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->createVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->createVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.CreateVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.createVideoEnrollmentByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.create_video_enrollment_by_url(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>"))
The above command returns JSON structured like this:
{
"message": "Successfully enrolled video for user with userId : usr_49c98304252549239775e2b52a84006a",
"contentLanguage": "en-US",
"id": 57,
"faceEnrollmentId": "fen_a1b2c3d4e5f6",
"status": 201,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"createdAt": 1487026658000,
"timeTaken": "7.718s",
"isLive": true,
"livenessScore": 99.46,
"responseCode" : "SUCC"
}
This endpoint creates a new voice + face enrollment in the system for the given user
HTTP Request
POST https://api.voiceit.io/enrollments/video/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified url to the video file | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, MISP, DDNE, IFVD, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FALI, NSPE, NPFC, FTMF, FNFD, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Delete All Enrollments
curl -u "<apiKey>:<apiToken>" -X DELETE "https://api.voiceit.io/enrollments/<userId>/all"
my_voiceit.delete_all_enrollments("<userId>")
myVoiceIt.deleteAllEnrollments("<userId>");
myVoiceIt.deleteAllEnrollments("<userId>")
myVoiceIt.DeleteAllEnrollments("<userId>")
myVoiceIt.deleteAllEnrollments({
userId : "<userId>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.DeleteAllEnrollments("<userId>");
<?php
$myVoiceIt->deleteAllEnrollments("<userId>");
?>
$myVoiceIt->deleteAllEnrollments("<userId>");
myVoiceIt.DeleteAllEnrollments("<userId>");
myVoiceIt.deleteAllEnrollments("<userId>")
&my_voiceit.delete_all_enrollments(String::from("<userId>")).unwrap();
The above command returns JSON structured like this:
{
"message": "All enrollments for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322 were deleted",
"responseCode": "SUCC",
"status": 200,
"timeTaken": "0.016s"
}
This endpoint deletes all enrollments for a given userId.
HTTP Request
DELETE https://api.voiceit.io/enrollments/<userId>/all
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
Related Response Codes
SUCC, UNFD, UDNM
See detailed descriptions for response codes here
Verification
Verify a User's Voice
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "recording=@<recording>" \
"https://api.voiceit.io/verification/voice"
my_voiceit.voice_verification("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.voiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.voiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.VoiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.voiceVerification({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFilePath : "<recording>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VoiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
<?php
$myVoiceIt->voiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
?>
$myVoiceIt->voiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.VoiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.voiceVerification("<userId>", "<contentLanguage>", "<phrase>", "<recording>")
&my_voiceit.voice_verification(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<recording>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified voice for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 200,
"confidence": 94.0,
"text": "never forget tomorrow is a new day",
"textConfidence": 100,
"timeTaken": "6.055s",
"extendedVoiceValues": {
"siv1Confidence": 92.50,
"siv1AvgConfidence": 91.80,
"siv1Distance": 0.35,
"siv1AvgDistance": 0.38,
"siv1ChosenEnrollmentId": 73,
"siv2Confidence": 95.20,
"siv2AvgConfidence": 94.50,
"siv2ChosenEnrollmentId": 73
},
"responseCode":"SUCC"
}
The confidence scale is dependent on user enrollment profiles and developer activity. The
extendedVoiceValuesobject is only present when the developer account has extended voice values enabled.
This endpoint verifies the voice of the user against their previous enrollments of the same phrase for the given userId
HTTP Request
POST https://api.voiceit.io/verification/voice
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| recording | File / String | The binary audio data uploaded as a file. Some of our wrappers also accept the absolute path to the audio file | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, PNTE, NPFC, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Verify a User's Voice by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/verification/voice/byUrl"
my_voiceit.voice_verification_by_url("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.voiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.voiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.VoiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.voiceVerificationByUrl({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VoiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->voiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->voiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.VoiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.voiceVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.voice_verification_by_url(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified voice for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"status": 200,
"confidence": 94.0,
"text": "never forget tomorrow is a new day",
"textConfidence": 100,
"timeTaken": "6.055s",
"extendedVoiceValues": {
"siv1Confidence": 92.50,
"siv1AvgConfidence": 91.80,
"siv1Distance": 0.35,
"siv1AvgDistance": 0.38,
"siv1ChosenEnrollmentId": 73,
"siv2Confidence": 95.20,
"siv2AvgConfidence": 94.50,
"siv2ChosenEnrollmentId": 73
},
"responseCode":"SUCC"
}
The confidence scale is dependent on user enrollment profiles and developer activity. The
extendedVoiceValuesobject is only present when the developer account has extended voice values enabled.
This endpoint verifies the voice of the user against their previous enrollments of the same phrase for the given userId
HTTP Request
POST https://api.voiceit.io/verification/voice/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified URL to the audio file to be used for voice verification | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, PNTE, NPFC, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Verify a User's Face
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "video=@<video>" \
"https://api.voiceit.io/verification/face"
my_voiceit.face_verification("<userId>", "<video>")
myVoiceIt.faceVerification("<userId>", "<video>");
myVoiceIt.faceVerification("<userId>", "<video>")
myVoiceIt.FaceVerification("<userId>", "<video>")
myVoiceIt.faceVerification({
userId : "<userId>",
videoFilePath : "<video>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.FaceVerification("<userId>", "<video>");
<?php
$myVoiceIt->faceVerification("<userId>", "<video>");
?>
$myVoiceIt->faceVerification("<userId>", "<video>");
myVoiceIt.FaceVerification("<userId>", "<video>");
myVoiceIt.faceVerification("<userId>", "<video>")
&my_voiceit.face_verification(String::from("<userId>"), String::from("<video>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified face for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"apiCallId": "apc_a1b2c3d4e5f6",
"status": 200,
"faceConfidence": 94.0,
"timeTaken": "6.055s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint verifies the face of the user against previous enrollments for the given userId
HTTP Request
POST https://api.voiceit.io/verification/face
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| photo | File / String | The binary photo data uploaded as a file. Some of our wrappers also accept the absolute path to the photo file | False |
| video | File / String | The binary video data uploaded as a file. Some of our wrappers also accept the absolute path to the video file | False |
Related Response Codes
SUCC, FAIL, MISP, IFVD, FNFD, FTMF, FALI, NFEF, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Verify a User's Face by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/verification/face/byUrl"
my_voiceit.face_verification_by_url("<userId>", "<fileUrl>")
myVoiceIt.faceVerificationByUrl("<userId>", "<fileUrl>");
myVoiceIt.faceVerificationByUrl("<userId>", "<fileUrl>")
myVoiceIt.FaceVerificationByUrl("<userId>", "<fileUrl>")
myVoiceIt.faceVerificationByUrl({
userId : "<userId>",
videoFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.FaceVerificationByUrl("<userId>", "<fileUrl>");
<?php
$myVoiceIt->faceVerificationByUrl("<userId>", "<fileUrl>");
?>
$myVoiceIt->faceVerificationByUrl("<userId>", "<fileUrl>");
myVoiceIt.FaceVerificationByUrl("<userId>", "<fileUrl>");
myVoiceIt.faceVerificationByUrl("<userId>", "<fileUrl>")
&my_voiceit.face_verification_by_url(String::from("<userId>"), String::from("<fileUrl>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified face for user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"apiCallId": "apc_a1b2c3d4e5f6",
"status": 200,
"faceConfidence": 94.0,
"timeTaken": "6.055s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint verifies the face of the user against previous enrollments for the given userId
HTTP Request
POST https://api.voiceit.io/verification/face/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| fileUrl | String | A fully qualified url to the video file | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, FAIL, MISP, DDNE, IFVD, FTMF, FNFD, FALI, NFEF, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Verify a User's Voice & Face
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "video=@<video>" \
"https://api.voiceit.io/verification/video"
my_voiceit.video_verification("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.videoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.videoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.VideoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.videoVerification({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFilePath : "<video>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VideoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>");
<?php
$myVoiceIt->videoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>");
?>
$myVoiceIt->videoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.VideoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.videoVerification("<userId>", "<contentLanguage>", "<phrase>", "<video>")
&my_voiceit.video_verification(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<video>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified video user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"apiCallId": "apc_a1b2c3d4e5f6",
"status": 200,
"voiceConfidence": 93.00,
"faceConfidence": 94.0,
"text" : "never forget tomorrow is a new day",
"textConfidence" : 100.00,
"timeTaken": "8.055s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint verifies the face and voice of the user against their previous enrollments of the same phrase for the given userId
HTTP Request
POST https://api.voiceit.io/verification/video
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| video | File / String | The binary video data uploaded as a file. Some of our wrappers also accept the absolute path to the video file | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, IFVD, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, PNTE, NPFC, FTMF, FNFD, FALI, TVER, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Verify a User's Voice & Face by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "userId=<userId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/verification/video/byUrl"
my_voiceit.video_verification_by_url("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.videoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.videoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.VideoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.videoVerificationByUrl({
userId : "<userId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VideoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->videoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->videoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.VideoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.videoVerificationByUrl("<userId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.video_verification_by_url(String::from("<userId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully verified video user with userId : usr_feb6d1fcd80448628db8ec6a7ddb6322",
"apiCallId": "apc_a1b2c3d4e5f6",
"status": 200,
"voiceConfidence": 93.00,
"faceConfidence": 94.0,
"text" : "never forget tomorrow is a new day",
"textConfidence" : 100.00,
"timeTaken": "8.055s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint verifies the face and voice of the user against their previous enrollments of the same phrase for the given userId
HTTP Request
POST https://api.voiceit.io/verification/video/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| userId | String | The ID of the user | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified url to the video file | True |
| downloadAuth | String | Authorization header value for the URL (if protected) | False |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, PNTE, NPFC, FTMF, FNFD, FALI, TVER, UNFD, EMPF, UDNM
See detailed descriptions for response codes here
Identification
Identify a User's Voice
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "recording=@<recording>" \
"https://api.voiceit.io/identification/voice"
my_voiceit.voice_identification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.voiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.voiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.VoiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>")
myVoiceIt.voiceIdentification({
groupId : "<groupId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFilePath : "<recording>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VoiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>");
<?php
$myVoiceIt->voiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>");
?>
$myVoiceIt->voiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.VoiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>");
myVoiceIt.voiceIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<recording>")
&my_voiceit.voice_identification(String::from("<groupId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<recording>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully identified voice for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"voiceConfidence": 96.00,
"status": 200,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"timeTaken": "9.969s",
"usersNotUsedForIdentification": ["usr_a1b2c3d4"],
"enrollmentsUsed": [73, 79],
"extendedVoiceValues": {
"siv1Confidence": 92.50,
"siv1AvgConfidence": 91.80,
"siv1Distance": 0.35,
"siv1AvgDistance": 0.38,
"siv2Confidence": 95.20,
"siv2AvgConfidence": 94.50,
"siv1UserId": "usr_49c98304252549239775e2b52a84006a",
"siv2UserId": "usr_49c98304252549239775e2b52a84006a"
},
"responseCode":"SUCC"
}
The confidence scale is dependent on user enrollment profiles and developer activity. The
usersNotUsedForIdentificationarray lists users who had insufficient enrollments. TheenrollmentsUsedarray lists enrollment IDs used for comparison. TheextendedVoiceValuesobject is only present when the developer account has extended voice values enabled.
This endpoint identifies the voice of the user amongst other users in the given group
HTTP Request
POST https://api.voiceit.io/identification/voice
Alias: POST https://api.voiceit.io/identification
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| recording | File / String | The binary audio data uploaded as a file. Some of our wrappers also accept the absolute path to the audio file | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, NPFC, PNTE, GNTM, GNFD, EMPF
See detailed descriptions for response codes here
Identify a User's Voice by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/identification/voice/byUrl"
my_voiceit.voice_identification_by_url("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.voiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.voiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.VoiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.voiceIdentificationByUrl({
groupId : "<groupId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
audioFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VoiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->voiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->voiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.VoiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.voiceIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.voice_identification_by_url(String::from("<groupId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully identified voice for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"voiceConfidence": 96.00,
"status": 200,
"text": "never forget tomorrow is a new day",
"textConfidence": 100.00,
"timeTaken": "9.969s",
"usersNotUsedForIdentification": ["usr_a1b2c3d4"],
"enrollmentsUsed": [73, 79],
"extendedVoiceValues": {
"siv1Confidence": 92.50,
"siv1AvgConfidence": 91.80,
"siv1Distance": 0.35,
"siv1AvgDistance": 0.38,
"siv2Confidence": 95.20,
"siv2AvgConfidence": 94.50,
"siv1UserId": "usr_49c98304252549239775e2b52a84006a",
"siv2UserId": "usr_49c98304252549239775e2b52a84006a"
},
"responseCode":"SUCC"
}
The confidence scale is dependent on user enrollment profiles and developer activity. The
usersNotUsedForIdentificationarray lists users who had insufficient enrollments. TheenrollmentsUsedarray lists enrollment IDs used for comparison. TheextendedVoiceValuesobject is only present when the developer account has extended voice values enabled.
This endpoint identifies the voice of the user amongst other users in the given group
HTTP Request
POST https://api.voiceit.io/identification/voice/byUrl
Alias: POST https://api.voiceit.io/identification/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified URL to the audio file to be used for voice identification | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, NPFC, PNTE, GNTM, GNFD
See detailed descriptions for response codes here
Identify a User's Face
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "video=@<video>" \
"https://api.voiceit.io/identification/face"
The above command returns JSON structured like this:
{
"message": "Successfully identified face for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"faceConfidence": 98.50,
"status": 200,
"timeTaken": "2.345s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint identifies the face of the user amongst other users in the given group.
You may pass either a video or a photo file. When using a photo, face liveness detection is not available.
HTTP Request
POST https://api.voiceit.io/identification/face
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| video | File / String | The binary video data uploaded as a file | True (or photo) |
| photo | File / String | The binary photo data uploaded as a file (alternative to video) | True (or video) |
Related Response Codes
SUCC, FAIL, MISP, GNFD, FNFD, FTMF, NFEF, IFVD, EMPF, MISU
See detailed descriptions for response codes here
Identify a User's Face by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/identification/face/byUrl"
The above command returns JSON structured like this:
{
"message": "Successfully identified face for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"faceConfidence": 98.50,
"status": 200,
"timeTaken": "3.210s",
"isLive": true,
"livenessScore": 99.46,
"responseCode":"SUCC"
}
This endpoint identifies the face of the user amongst other users in the given group using a video or photo file URL.
HTTP Request
POST https://api.voiceit.io/identification/face/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| fileUrl | String | A fully-qualified URL to a video or photo file | True |
Related Response Codes
SUCC, FAIL, MISP, DDNE, GNFD, FNFD, FTMF, NFEF, IFVD, MISU
See detailed descriptions for response codes here
Identify a User's Voice & Face
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "video=@<video>" \
"https://api.voiceit.io/identification/video"
my_voiceit.video_identification("<groupId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.videoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.videoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.VideoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>")
myVoiceIt.videoIdentification({
groupId : "<groupId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFilePath : "<video>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VideoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>");
<?php
$myVoiceIt->videoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>");
?>
$myVoiceIt->videoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.VideoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>");
myVoiceIt.videoIdentification("<groupId>", "<contentLanguage>", "<phrase>", "<video>")
&my_voiceit.video_identification(String::from("<groupId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<video>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully identified video for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"foundFaceUserId": "usr_49c98304252549239775e2b52a84006a",
"status": 200,
"voiceConfidence": 93.00,
"faceConfidence": 94.0,
"text" : "never forget tomorrow is a new day",
"textConfidence" : 100.00,
"timeTaken": "8.055s",
"responseCode":"SUCC"
}
This endpoint identifies the face and voice of the user amongst other users in the given group
HTTP Request
POST https://api.voiceit.io/identification/video
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| video | File / String | The binary video data uploaded as a file. Some of our wrappers accept the absolute path to the video file | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, IFVD, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, NPFC, FTMF, FNFD, GNFD, EMPF, MISU
See detailed descriptions for response codes here
Identify a User's Voice & Face by URL
curl -u "<apiKey>:<apiToken>" -X POST \
-F "groupId=<groupId>" \
-F "contentLanguage=<contentLanguage>" \
-F "phrase=<phrase>" \
-F "fileUrl=<fileUrl>" \
"https://api.voiceit.io/identification/video/byUrl"
my_voiceit.video_identification_by_url("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.videoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.videoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.VideoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
myVoiceIt.videoIdentificationByUrl({
groupId : "<groupId>",
contentLanguage : "<contentLanguage>",
phrase : "<phrase>",
videoFileURL : "<fileUrl>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.VideoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
<?php
$myVoiceIt->videoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
?>
$myVoiceIt->videoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.VideoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>");
myVoiceIt.videoIdentificationByUrl("<groupId>", "<contentLanguage>", "<phrase>", "<fileUrl>")
&my_voiceit.video_identification_by_url(String::from("<groupId>"), String::from("<contentLanguage>"), String::from("<phrase>"), String::from("<fileUrl>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Successfully identified video for user with userId : usr_49c98304252549239775e2b52a84006a in group with groupId : grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"userId": "usr_49c98304252549239775e2b52a84006a",
"groupId": "grp_801e4d6dc1e941bf9165ba5c84bd94d2",
"foundFaceUserId": "usr_49c98304252549239775e2b52a84006a",
"status": 200,
"voiceConfidence": 93.00,
"faceConfidence": 94.0,
"text" : "never forget tomorrow is a new day",
"textConfidence" : 100.00,
"timeTaken": "8.055s",
"responseCode":"SUCC"
}
This endpoint identifies the face and voice of the user amongst other users in the given group
HTTP Request
POST https://api.voiceit.io/identification/video/byUrl
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| groupId | String | The ID of the group | True |
| contentLanguage | String | Choose from a list of content language parameters | True |
| phrase | String | The text of a valid phrase for the developer account | True |
| fileUrl | String | A fully qualified url to the video file | True |
Related Response Codes
SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, NPFC, FTMF, FNFD, GNFD, MISU
See detailed descriptions for response codes here
See detailed descriptions for response codes here
Risk Thresholds
Risk Thresholds for video (face + voice biometrics) allow for extended usability in low-quality audio or visual surroundings. Variables used to calculate Risk Thresholds include, but are not limited to: use case, confidence settings, channels used, etc. Risk Thresholds are managed internally by the system and do not require configuration.
Replay Attacks
Replay attacks are spoofing attempts that seek to gain unauthorized access by providing direct copies of media files that have been previously used for a successful authentication.
The API detects replay attacks by comparing submitted media against previously used files. If a replay attack is detected, the API returns the response code RWPU (Recording Was Previously Used).
Sub-Accounts
Create a Sub-Account
curl -u "<apiKey>:<apiToken>" -X POST -F "firstName=<firstName>" -F "lastName=<lastName>" "https://api.voiceit.io/subaccount"
my_voiceit.create_sub_account("<firstName>", "<lastName>")
myVoiceIt.createSubAccount("<firstName>", "<lastName>");
myVoiceIt.createSubAccount("<firstName>", "<lastName>")
myVoiceIt.CreateSubAccount(structs.CreateSubAccountRequest{})
myVoiceIt.createSubAccount({
firstName: '<firstName>',
lastName: '<lastName>',
}, (jsonResponse)=>{
//handle response
});
myVoiceIt.CreateSubAccount("<firstName>", "<lastName>");
<?php
$myVoiceIt->createSubAccount('<firstName>', '<lastName>');
?>
$myVoiceIt->createSubAccount('<firstName>', '<lastName>');
myVoiceIt.CreateSubAccount("<firstName>", "<lastName>");
myVoiceIt.createSubAccount("<firstName>", "<lastName>")
&my_voiceit.create_sub_account("<firstName>", "<lastName>");
The above command returns JSON structured like this:
{
"timeTaken": "0.070s",
"password": "<sub-account password>",
"apiToken": "<sub-account API token>",
"apiKey": "<sub-account API key>",
"usernameValidationRequired": false,
"contentLanguage": "<contentLanguage>",
"message": "Created new developer sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d",
"username": "<username>",
"reactivated": false,
"responseCode": "SUCC",
"status": 201
}
This endpoint creates a sub-account. All sub-account calls are billed through the parent account. Premium features will be available to the sub-account if the parent account has the funds to cover it.
Note, all arguments are optional. If left blank, VoiceIt will generate values for firstName and lastName using a secure pseudorandom algorithm. The username and password are always auto-generated by the system.
HTTP Request
POST https://api.voiceit.io/subaccount
Aliases: POST https://api.voiceit.io/subaccount/managed, POST https://api.voiceit.io/subaccount/unmanaged
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| firstName | String | First name for the sub-account. If not provided, VoiceIt will generate a value | False |
| lastName | String | Last name for the sub-account. If not provided, VoiceIt will generate a value | False |
Related Response Codes
SUCC
See detailed descriptions for response codes here
Delete a Specific Sub Account
curl -u "<apiKey>:<apiToken>" -X DELETE "https://api.voiceit.io/subaccount/<subAccountApiKey>"
my_voiceit.delete_sub_account("<subAccountApiKey>")
myVoiceIt.deleteSubAccount("<subAccountApiKey>");
myVoiceIt.deleteSubAccount("<subAccountApiKey>")
myVoiceIt.DeleteSubAccount("<subAccountApiKey>")
myVoiceIt.deleteSubAccount({
subAccountApiKey :"<subAccountApiKey>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.DeleteSubAccount("<subAccountApiKey>");
<?php
$myVoiceIt->deleteSubAccount("<subAccountApiKey>");
?>
$myVoiceIt->deleteSubAccount("<subAccountApiKey>");
myVoiceIt.DeleteSubAccount("<subAccountApiKey>");
myVoiceIt.deleteSubAccount("<subAccountApiKey>")
&my_voiceit.delete_subaccount(String::from("<subAccountApiKey>")).unwrap();
The above command returns JSON structured like this:
{
"message": "Deleted developer sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d",
"status": 200,
"timeTaken": "0.037s",
"responseCode":"SUCC"
}
This endpoint deletes the given sub-account.
HTTP Request
DELETE https://api.voiceit.io/subaccount/<subAccountApiKey>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| subAccountApiKey | String | The API key of the sub-account | True |
Related Response Codes
SUCC, SANF
See detailed descriptions for response codes here
Regenerate Sub Account API Token
curl -u "<apiKey>:<apiToken>" -X POST "https://api.voiceit.io/subaccount/<subAccountApiKey>"
my_voiceit.regenerate_sub_account_api_token("<subAccountApiKey>")
myVoiceIt.regenerateSubAccountAPIToken("<subAccountApiKey>");
myVoiceIt.regenerateSubAccountAPIToken("<subAccountApiKey>")
myVoiceIt.RegenerateSubAccountAPIToken("<subAccountApiKey>")
myVoiceIt.regenerateSubAccountAPIToken({
subAccountApiKey :"<subAccountApiKey>"
},(jsonResponse)=>{
//handle response
});
myVoiceIt.RegenerateSubAccountAPIToken("<subAccountApiKey>");
<?php
$myVoiceIt->regenerateSubAccountAPIToken("<subAccountApiKey>");
?>
$myVoiceIt->regenerateSubAccountAPIToken("<subAccountApiKey>");
myVoiceIt.RegenerateSubAccountAPIToken("<subAccountApiKey>");
myVoiceIt.regenerateSubAccountAPIToken("<subAccountApiKey>")
&my_voiceit.regenerate_sub_account_api_token(String::from("<subAccountApiKey>")).unwrap();
The above command returns JSON structured like this:
{
"timeTaken": "0.070s",
"apiToken": "<newApiToken>",
"message": "Successfully regenerated apiToken for developer sub-account with apiKey : <subAccountApiKey>",
"responseCode": "SUCC",
"status": 200
}
This endpoint creates a new API Token for a given sub-account.
HTTP Request
POST https://api.voiceit.io/subaccount/<subAccountApiKey>
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| subAccountApiKey | String | The API key of the sub-account | True |
Related Response Codes
SUCC
See detailed descriptions for response codes here
Get Sub-Account Info
curl -u "<apiKey>:<apiToken>" "https://api.voiceit.io/subaccount/<subAccountApiKey>"
The above command returns JSON structured like this:
{
"firstName": "<firstName>",
"lastName": "<lastName>",
"username": "<username>",
"message": "Successfully retrieved information for sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d",
"responseCode": "SUCC",
"status": 200
}
This endpoint retrieves information for a given sub-account. Only the parent account can retrieve sub-account info.
HTTP Request
GET https://api.voiceit.io/subaccount/<subAccountApiKey>
URL Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| subAccountApiKey | String | The API key of the sub-account | True |
Related Response Codes
SUCC, SANF
See detailed descriptions for response codes here
Retrieve Sub-Account Credentials
curl -u "<apiKey>:<apiToken>" -X POST \
-F "username=<username>" \
-F "password=<password>" \
"https://api.voiceit.io/subaccount/retrieve_credentials"
The above command returns JSON structured like this:
{
"apiKey": "<sub-account API key>",
"apiToken": "<sub-account API token>",
"message": "Successfully retrieved credentials for sub-account with username : <username>",
"responseCode": "SUCC",
"status": 200
}
This endpoint retrieves the API key and token for a sub-account using the sub-account's username and password. Only the parent account can retrieve sub-account credentials.
HTTP Request
POST https://api.voiceit.io/subaccount/retrieve_credentials
Request Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| username | String | The username of the sub-account | True |
| password | String | The password of the sub-account | True |
Related Response Codes
SUCC, SANF
See detailed descriptions for response codes here
Media File Formatting
For better accuracy, please do not process or alter original files before sending them, and make sure the bitrate across channels is the same. Visit opus-codec.org for more information about bitrates.
Note: Very high quality video increases the processing time of API calls.
Voice
Audio files should have a fixed length of 5 seconds, with the user beginning to speak after 500 milliseconds. Any recording that is over 5 seconds in length will result with the response code SRNR (sound recording does not meet requirements) and will be automatically rejected. This is used to capture background noise from the beginning and end of the audio clip that is utilized for noise profiling. We recommend PCM or lossless codecs such as FLAC.
Do not trim the audio before sending. Our engines need at least 500 milliseconds of padding to work their magic.
Sending an audio file longer than 5 seconds will result in the response code SRNR.
Face
Video files should contain a 2 second video of the user facing the camera. We recommend faces being prominent and centered in the video frame for a higher level of accuracy. We recommend mp4 formatted video.
Video (Voice + Face)
Video files should have a fixed length of 5 seconds, with the user beginning to speak after 500 milliseconds. This is used to capture background noise from the beginning and end of the audio clip that is utilized for noise profiling. We recommend faces being prominent and centered in the video frame for a higher level of accuracy. We recommend mp4 formatted video.
File Size Limitations
| Filetype | Limit |
|---|---|
| Audio | 50 MB |
| Images | 50 MB |
| Video | 50 MB |
Content Languages
The VoiceIt Voice and Video Enrollment/Verification/Identification API calls allow you to pass any of the following supported content language parameters:
Content Languages without upcharge
| Free Tier Content Language | Language |
|---|---|
| ca-ES | Catalan (Spain) |
| cmn-Hans-CN | Chinese, Mandarin (Simplified, China) |
| cmn-Hans-HK | Chinese, Mandarin (Simplified, Hong Kong) |
| cmn-Hant-TW | Chinese, Mandarin (Traditional, Taiwan) |
| da-DK | Danish (Denmark) |
| de-DE | German (Germany) |
| en-AU | English (Australia) |
| en-CA | English (Canada) |
| en-GB | English (United Kingdom) |
| en-US | English (United States) |
| es-ES | Spanish (Spain) |
| es-MX | Spanish (Mexico) |
| es-US | Spanish (United States) |
| fi-FI | Finnish (Finland) |
| fr-CA | French (Canada) |
| fr-FR | French (France) |
| ja-JP | Japanese (Japan) |
| ko-KR | Korean (South Korea) |
| nb-NO | Norwegian Bokmal (Norway) |
| nl-NL | Dutch (Netherlands) |
| no-STT | No Speech To Text |
| pl-PL | Polish (Poland) |
| pt-BR | Portuguese (Brazil) |
| pt-PT | Portuguese (Portugal) |
| ru-RU | Russian (Russia) |
| sv-SE | Swedish (Sweden) |
Content Languages with upcharge.
| Content Language | Language |
|---|---|
| af-ZA | Afrikaans (South Africa) |
| am-ET | Amharic (Ethiopia) |
| ar-AE | Arabic (United Arab Emirates) |
| ar-BH | Arabic (Bahrain) |
| ar-DZ | Arabic (Algeria) |
| ar-EG | Arabic (Egypt) |
| ar-IL | Arabic (Israel) |
| ar-IQ | Arabic (Iraq) |
| ar-JO | Arabic (Jordan) |
| ar-KW | Arabic (Kuwait) |
| ar-LB | Arabic (Lebanon) |
| ar-MA | Arabic (Morocco) |
| ar-OM | Arabic (Oman) |
| ar-PS | Arabic (State of Palestine) |
| ar-QA | Arabic (Qatar) |
| ar-SA | Arabic (Saudi Arabia) |
| ar-TN | Arabic (Tunisia) |
| az-AZ | Azerbaijani (Azerbaijan) |
| bg-BG | Bulgarian (Bulgaria) |
| bn-BD | Bengali (Bangladesh) |
| bn-IN | Bengali (India) |
| cs-CZ | Czech (Czech Republic) |
| el-GR | Greek (Greece) |
| en-GH | English (Ghana) |
| en-IE | English (Ireland) |
| en-IN | English (India) |
| en-KE | English (Kenya) |
| en-NG | English (Nigeria) |
| en-NZ | English (New Zealand) |
| en-PH | English (Philippines) |
| en-TZ | English (Tanzania) |
| en-ZA | English (South Africa) |
| es-AR | Spanish (Argentina) |
| es-BO | Spanish (Bolivia) |
| es-CL | Spanish (Chile) |
| es-CO | Spanish (Colombia) |
| es-CR | Spanish (Costa Rica) |
| es-DO | Spanish (Dominican Republic) |
| es-EC | Spanish (Ecuador) |
| es-GT | Spanish (Guatemala) |
| es-HN | Spanish (Honduras) |
| es-NI | Spanish (Nicaragua) |
| es-PA | Spanish (Panama) |
| es-PE | Spanish (Peru) |
| es-PR | Spanish (Puerto Rico) |
| es-PY | Spanish (Paraguay) |
| es-SV | Spanish (El Salvador) |
| es-UY | Spanish (Uruguay) |
| es-VE | Spanish (Venezuela) |
| eu-ES | Basque (Spain) |
| fa-IR | Persian (Iran) |
| fil-PH | Filipino (Philippines) |
| gl-ES | Galician (Spain) |
| gu-IN | Gujarati (India) |
| he-IL | Hebrew (Israel) |
| hi-IN | Hindi (India) |
| hr-HR | Croatian (Croatia) |
| hu-HU | Hungarian (Hungary) |
| hy-AM | Armenian (Armenia) |
| id-ID | Indonesian (Indonesia) |
| is-IS | Icelandic (Iceland) |
| it-IT | Italian (Italy) |
| jv-ID | Javanese (Indonesia) |
| ka-GE | Georgian (Georgia) |
| km-KH | Khmer (Cambodia) |
| kn-IN | Kannada (India) |
| lo-LA | Lao (Laos) |
| lt-LT | Lithuanian (Lithuania) |
| lv-LV | Latvian (Latvia) |
| ml-IN | Malayalam (India) |
| mr-IN | Marathi (India) |
| ms-MY | Malay (Malaysia) |
| ne-NP | Nepali (Nepal) |
| ro-RO | Romanian (Romania) |
| si-LK | Sinhala (Sri Lanka) |
| sk-SK | Slovak (Slovakia) |
| sl-SI | Slovenian (Slovenia) |
| sr-RS | Serbian (Serbia) |
| su-ID | Sundanese (Indonesia) |
| sw-KE | Swahili (Kenya) |
| sw-TZ | Swahili (Tanzania) |
| ta-IN | Tamil (India) |
| ta-LK | Tamil (Sri Lanka) |
| ta-MY | Tamil (Malaysia) |
| ta-SG | Tamil (Singapore) |
| te-IN | Telugu (India) |
| th-TH | Thai (Thailand) |
| tr-TR | Turkish (Turkey) |
| uk-UA | Ukrainian (Ukraine) |
| ur-IN | Urdu (India) |
| ur-PK | Urdu (Pakistan) |
| vi-VN | Vietnamese (Vietnam) |
| yue-Hant-HK | Chinese, Cantonese (Traditional, Hong Kong) |
| zu-ZA | Zulu (South Africa) |
Response Codes
The VoiceIt API returns the following response codes:
| Response Code | Meaning |
|---|---|
| SUCC | Successful API call |
| MISP | Missing Parameters |
| MISU | Missing users |
| FAIL | The API call completed but failed. Example: Verification Unsuccessful |
| UNFD | User not found |
| UDNM | User does not match |
| GNFD | Group not found |
| ENFD | Enrollment not found |
| DDNE | Data does not exist |
| FNFD | Face not found in video |
| FTMF | Found too many faces in video |
| IFAD | Incorrect formatted audio data |
| IFVD | Incorrect formatted video data |
| INCP | Incorrect contentLanguage parameter |
| INPP | Incorrect phrase parameter |
| SRNR | Sound recording does not meet requirements |
| SSTQ | Speaker is speaking too quiet |
| SSTL | Speaker is speaking too loud |
| NEHSD | Not enough human speech detected |
| STTF | Speech to text failed |
| RWPU | Recording was previously used |
| PNTE | Phrase needs a minimum of three enrollments |
| PDNM | Phrase does not match |
| NPFC | No phrases for contentLanguage |
| TVER | Three video enrollments required |
| NFEF | No face enrollments found |
| IEID | Invalid enrollmentId |
| GERR | A general error occurred |
| DAID | Developer account is disabled ( most likely due to insufficient funds) |
| UNAC | Unauthorized access ( make sure you are using the right API Key and Token) |
| NSPE | Enrollment not similar to previous enrollments |
| SANF | Sub-account not found |
| EMPF | An empty file was passed when a non-empty file was expected |
| INVT | Not a valid integer to use as a value for user token expiration time out |
| GNTM | Group must have two or more users for identification |
| FALI | Face anti-spoofing liveness check failed |
HTTP Status Codes
The VoiceIt API returns the following HTTP status codes:
| Status Code | Meaning |
|---|---|
| 200 | OK -- The request completed successfully. |
| 201 | Created -- A new resource was created successfully (e.g. user, group, enrollment, sub-account). |
| 202 | Accepted -- The request has been accepted for asynchronous processing. |
| 400 | Bad Request -- Something is wrong with your request (e.g. missing parameters). |
| 401 | Unauthorized -- Incorrect API key or token. |
| 403 | Forbidden -- Access to the requested resource is forbidden. |
| 404 | Not Found -- The user/group/enrollment could not be found. |
| 405 | Method Not Allowed -- You tried to access VoiceIt with an invalid method. |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |