NAV
cURL Python Java Ruby Go NodeJS C# PHP Perl C++ Scala Rust
  • Introduction
  • Authentication
  • Phrases
  • Users
  • Groups
  • Enrollments
  • Verification
  • Identification
  • Risk Thresholds
  • Replay Attacks
  • Sub-Accounts
  • Media File Formatting
  • Content Languages
  • Response Codes
  • Errors
  • Introduction

    VoiceIt API 2.0

    Make sure you have curl installed
    https://curl.haxx.se

    Note, voiceit2 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 voiceit2

    #Import the module
    from voiceit2 import VoiceIt2
    

    We recommend using jitpack to grab the wrapper into your project. Add the following to pom.xml if 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>VoiceIt2-Java</artifactId>
        <version>JAVA_VERSION_HERE</version>
      </dependency>
      ...
    </dependencies>
    

    For Gradle, you may need to disable offline mode in case you are using Intellij. We recommend using Java 8. Add the following to your Gradle build file:

    allprojects {
      repositories {
        ...
        maven { url 'https://jitpack.io' }
      }
    }
    dependencies {
      implementation 'com.github.voiceittech:VoiceIt2-Java:JAVA_VERSION_HERE'
    }
    

    Please make sure you have the rest client installed

    gem install rest-client

    Install VoiceIt2's gem

    gem install VoiceIt2

    #Require the wrapper
    require 'VoiceIt2'
    

    Install the VoiceIt Go module first. We suggest you use Go >= 1.11 and use the built in versioned module system by setting the GO111MODULES environment variable to on. Inside a Go project, do:

    go get -u github.com/voiceittech/VoiceIt2-Go/v2

    Read more about modules at https://golang.org/doc/go1.11#modules.

    // Make sure to add the import statement
    import (
      voiceit2 "github.com/voiceittech/VoiceIt2-Go/v2"
    )
    

    The package also includes the structs sub-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"
    
      voiceit2 "github.com/voiceittech/VoiceIt2-Go/v2"
      "github.com/voiceittech/VoiceIt2-Go/v2/structs"
    )
    
    func main() {
      myVoiceIt := voiceit2.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 voiceit2 package via npm

    npm install voiceit2-nodejs


    Note, the examples presented here use some newer features only available in ES6.

    //Make sure to require the project
    const voiceit2 = require('voiceit2-nodejs');
    

    Please note: The VoiceIt API 2 C# wrapper supports .NET Framework 4.6.1 or above

    The VoiceIt2 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 VoiceIt2 namespace at the top of your code:

    using VoiceIt2API;

    Get the wrapper by directly downloading the file from Github :

    https://github.com/voiceittech/VoiceIt2-PHP

    under voiceit/VoiceIt2.php and include in your project

    <?php
    include('VoiceIt2.php');
    ?>
    

    Or, use composer via the command line to get the package :

    composer require voiceit-php/voiceit2

    <?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 of cpan, enter thecpan CLI tool, then type: install <Package Name> to install the aforementioned packages.

    Make sure to require the voiceIt2 module in your program.

    require "./voiceIt2.pm";
    

    This wrapper will return string objects which can be parsed as JSON objects. The parse_json() function from the package JSON::Parse is 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 verions of Perl 5. However, the changes introduced in Perl 6 renders 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 libcurl for Visual Studio is by using Vcpkg. The first example after the set-up instructions conveniently shows how you can install libcurl.

    In order to utilize the wrapper, include the header in your program as follows:

    #include "VoiceIt2.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.sbt in your project root.

    resolvers += "jitpack" at "https://jitpack.io"
    libraryDependencies += "com.github.voiceittech" % "voiceit2-scala" %

    Note: Please define an SBT version 1.0.0 or newer in project/build.properties in order to use this wrapper.

    In order to utilize the wrapper, import the class in your program as follows:

    import voiceit2.VoiceIt2
    

    Add the voiceit2 crate to your project's Cargo.toml.

    [package]
    ...

    [dependencies]
    voiceit2 = ""

    In order to utilize the wrapper, import the class in your program as follows:

    extern crate voiceit2;
    

    The crate also includes the structs sub-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 with serde_json as follows:

    extern crate serde_json;
    
    let result: voiceit2::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 2.0 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.

    dashboard1 dashboard1 dashboard3

    Authentication

    Initialize VoiceIt by passing in your API credentials

    Basic Authentication

    Parameter Type Description Required
    apiKey String Your API 2.0 key True
    apiToken String Your API 2.0 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>" "<Your API 2.0 Endpoint>/..."
    
    my_voiceit = VoiceIt2('<apiKey>','<apiToken>')
    
    VoiceIt2 myVoiceIt = new VoiceIt2("<apiKey>","<apiToken>");
    
    myVoiceIt = VoiceIt2.new("<apiKey>", "<apiToken>")
    
    myVoiceIt := voiceit2.NewClient("<apiKey>", "<apiToken>")
    
    let myVoiceIt = new voiceit2("<apiKey>", "<apiToken>");
    
    VoiceIt2 myVoiceIt = new VoiceIt2("<apiKey>", "<apiToken>");
    
    <?php
    $myVoiceIt = new VoiceIt\VoiceIt2("<apiKey>", "<apiToken>");
    ?>
    
    my $myVoiceIt = voiceIt2->new("<apiKey>","<apiToken>");
    
    VoiceIt2 myVoiceIt("<apiKey>", "<apiToken>");
    
    VoiceIt2 myVoiceIt("<apiKey>", "<apiToken>")
    
    let my_voiceit = voiceit2::client::VoiceIt2::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>:" "<Your API 2.0 Endpoint>/..."
    
    my_voiceit = VoiceIt2('<userToken>','')
    
    VoiceIt2 myVoiceIt = new VoiceIt2("<userToken>","");
    
    myVoiceIt = VoiceIt2.new("<userToken>", "")
    
    myVoiceIt := voiceit2.NewClient("<userToken>", "")
    
    let myVoiceIt = new voiceit2("<userToken>", "");
    
    VoiceIt2 myVoiceIt = new VoiceIt2("<userToken>", "");
    
    <?php
    $myVoiceIt = new VoiceIt\VoiceIt2("<userToken>", "");
    ?>
    
    my $myVoiceIt = voiceIt2->new("<userToken>","");
    
    VoiceIt2 myVoiceIt("<userToken>", "");
    
    VoiceIt2 myVoiceIt("<userToken>", "")
    
    let my_voiceit = voiceit2::client::VoiceIt2::new(String::from("<apiKey>"), 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>" "<Your API 2.0 Endpoint>/...?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 = voiceit2::client::VoiceIt2::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 verify themselves or to receive the results of other API calls at a specific endpoint. 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>" "<Your API 2.0 Endpoint>/..."
    
    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 = voiceit2::client::VoiceIt2::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>" "<Your API 2.0 Endpoint>/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 en-US phrases for developer account",
      "count":2,
      "status":200,
      "timeTaken":"0.009s",
      "phrases": [
        {
          "text": "Never forget tomorrow is a new day",
          "contentLanguage": "en-US",
        }, {
          "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 <Your API 2.0 Endpoint>/phrases/<contentLanguage>

    URL Parameters

    Parameter Type Description Required
    contentLanguage String Choose from a list of content language parameters True

    SUCC, INCP

    See detailed descriptions for response codes here

    Users

    Get All Users

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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": 1486672854000,
          "userId": "usr_49c98304252549239775e2b52a84006a"
        }, {
          "createdAt": 1487026658000,
          "userId": "usr_feb6d1fcd80448628db8ec6a7ddb6322"
        }
      ],
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves all users.

    HTTP Request

    GET <Your API 2.0 Endpoint>/users

    Parameters

    No additional parameters needed for this request, just basic access authentication and a GET request to the end point.

    SUCC

    See detailed descriptions for response codes here

    Create a User

    curl -u "<apiKey>:<apiToken>" -X POST "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/users

    Parameters

    No additional parameters needed for this request, just basic access authentication and a POST request to the end point.

    SUCC, MLOCK

    See detailed descriptions for response codes here

    Check If a Specific User Exists

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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,
      "status":200,
      "timeTaken":"0.007s",
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves the given user.

    HTTP Request

    GET <Your API 2.0 Endpoint>/users/<userId>

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC

    See detailed descriptions for response codes here

    Delete a Specific User

    curl -u "<apiKey>:<apiToken>" -X DELETE "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/users/<userId>

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, UNFD, MLOCK

    See detailed descriptions for response codes here

    Get Groups for User

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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":0,
      "status":200,
      "timeTaken":"0.007s",
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves a list of groups associated with the given user

    HTTP Request

    GET <Your API 2.0 Endpoint>/users/<userId>/groups

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, UNFD

    See detailed descriptions for response codes here

    User Token Generation

    curl -u "<apiKey>:<apiToken>" -X POST "<Your API 2.0 Endpoint>/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 usr_feb6d1fcd80448628db8ec6a7ddb6322 which will expire on Wed Jan 09 20:57:18 GMT 2019",
      "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
    secondsToTimeout Integer timeout in seconds to expire generated user token True

    SUCC, UNFD, INVT

    See detailed descriptions for response codes here

    User Token Expiration

    curl -u "<apiKey>:<apiToken>" -X POST "<Your API 2.0 Endpoint>/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": 201,
      "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

    SUCC, UNFD

    See detailed descriptions for response codes here

    Groups

    Get All Groups

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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",
      "count":1,
      "status":200,
      "timeTaken":"0.009s",
      "groups": [
        {
          "createdAt": 1486672854000,
          "description": "Main Group",
          "groupId" : "grp_4225f88a571f4bd790b51a91109bab88",
          "users" : ["usr_feb6d1fcd80448628db8ec6a7ddb6322"],
          "userCount" : 1
        }
      ],
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves all groups.

    HTTP Request

    GET <Your API 2.0 Endpoint>/groups

    Parameters

    No additional parameters needed for this request, just basic access authentication and a GET request to the end point.

    SUCC

    See detailed descriptions for response codes here

    Get a Specific Group

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/groups/<groupId>

    URL Parameters

    Parameter Type Description Required
    groupId String The ID of the group True

    SUCC, GNFD

    See detailed descriptions for response codes here

    Check if Group Exists

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/groups/<groupId>/exists

    URL Parameters

    Parameter Type Description Required
    groupId String The ID of the group True

    SUCC

    See detailed descriptions for response codes here

    Create a Group

    curl -u "<apiKey>:<apiToken>" -F "description=<description>" -X POST "<Your API 2.0 Endpoint>/groups"
    
    my_voiceit.create_group("<description>")
    
    myVoiceIt.createGroup("<description>");
    
    myVoiceIt.createGroup("<description>")
    
    myVoiceIt.CreateGroup("<description>")
    
    myVoiceIt.createGroup({
      description: "<description>")=>{
      //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 <Your API 2.0 Endpoint>/groups

    Request Parameters

    Parameter Type Description Required
    description String An optional description help identify the group False

    SUCC, MLOCK

    See detailed descriptions for response codes here

    Add User to Group

    curl -u "<apiKey>:<apiToken>" \
    -F "groupId=<groupId>" \
    -F "userId=<userId>" \
    -X PUT "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/groups/addUser

    Request Parameters

    Parameter Type Description Required
    userId String The ID of the user True
    groupId String The ID of the group True

    SUCC, MISP, FAIL, GNFD, UNFD, MLOCK

    See detailed descriptions for response codes here

    Remove User from Group

    curl -u "<apiKey>:<apiToken>" \
    -F "groupId=<groupId>" \
    -F "userId=<userId>" \
    -X PUT "<Your API 2.0 Endpoint>/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

    PUT <Your API 2.0 Endpoint>/groups/removeUser

    Request Parameters

    Parameter Type Description Required
    userId String The ID of the user True
    groupId String The ID of the group True

    SUCC, MISP, FAIL, GNFD, UNFD, MLOCK

    See detailed descriptions for response codes here

    Delete a Specific Group

    curl -u "<apiKey>:<apiToken>" -X DELETE "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/groups/<groupId>

    URL Parameters

    Parameter Type Description Required
    groupId String The ID of the group True

    SUCC, GNFD, MLOCK

    See detailed descriptions for response codes here

    Enrollments

    Get All Voice Enrollments

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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": [
        {
          "createdAt": 1487026658003,
          "contentLanguage": "en-US",
          "voiceEnrollmentId": 73,
          "text": "never forget tomorrow is a new day"
        }, {
          "createdAt": 1487026658000,
          "contentLanguage": "en-US",
          "voiceEnrollmentId": 79,
          "text": "never forget tomorrow is a new day"
        }
      ],
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves all the voice enrollments for a user.

    HTTP Request

    GET <Your API 2.0 Endpoint>/enrollments/voice/<userId>

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, UNFD

    See detailed descriptions for response codes here

    Get All Face Enrollments

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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": [
        {
          "createdAt": 1486672854000,
          "faceEnrollmentId": 23
        }, {
          "createdAt": 1487026658000,
          "faceEnrollmentId": 45
        }
      ],
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves all the face enrollments for a user.

    HTTP Request

    GET <Your API 2.0 Endpoint>/enrollments/face/<userId>

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, UNFD

    See detailed descriptions for response codes here

    Get All Video Enrollments

    curl -u "<apiKey>:<apiToken>" "<Your API 2.0 Endpoint>/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": [
        {
          "createdAt": 1487026658003,
          "contentLanguage": "en-US",
          "videoEnrollmentId": 73,
          "text": "never forget tomorrow is a new day"
        }, {
          "createdAt": 1487026658000,
          "contentLanguage": "en-US",
          "videoEnrollmentId": 79,
          "text": "never forget tomorrow is a new day"
        }
      ],
      "responseCode":"SUCC"
    }
    

    This endpoint retrieves all the video enrollments for a user.

    HTTP Request

    GET <Your API 2.0 Endpoint>/enrollments/video/<userId>

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, UNFD

    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>" \
      "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/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

    SUCC, MISP, DDNE, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, UNFD, EMPF, MLOCK

    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>" \
      "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/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

    SUCC, MISP, DDNE, IFAD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, UNFD, MLOCK

    See detailed descriptions for response codes here

    Create Face Enrollment

    curl -u "<apiKey>:<apiToken>" -X POST \
      -F "userId=<userId>" \
      -F "video=@<video>" \
      "<Your API 2.0 Endpoint>/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,
        "responseCode":"SUCC"
    }
    

    This endpoint creates a new face enrollment in the system for the given user

    HTTP Request

    POST <Your API 2.0 Endpoint>/enrollments/face

    Request Parameters

    Parameter Type Description Required
    userId String The ID of the user 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

    SUCC, MISP, FTMF, FNFD, UNFD, EMPF, MLOCK

    See detailed descriptions for response codes here

    Create Face Enrollment by URL

    curl -u "<apiKey>:<apiToken>" -X POST \
      -F "userId=<userId>" \
      -F "fileUrl=<fileUrl>" \
      "<Your API 2.0 Endpoint>/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,
        "responseCode":"SUCC"
    }
    

    This endpoint creates a new face enrollment in the system for the given user

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, MISP, DDNE, IFVD, FTMF, FNFD, UNFD, MLOCK

    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 "doBlinkDetection=false" \
      -F "video=@<video>" \
      "<Your API 2.0 Endpoint>/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,
      "status": 201,
      "text": "never forget tomorrow is a new day",
      "textConfidence": 100.00,
      "createdAt": 1487026658000,
      "timeTaken": "4.718s",
      "responseCode" : "SUCC"
    }
    

    This endpoint creates a new voice + face enrollment in the system for the given user

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, MISP, DDNE, IFVD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD, UNFD, EMPF, MLOCK

    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>" \
      "<Your API 2.0 Endpoint>/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,
      "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 + face enrollment in the system for the given user

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, MISP, DDNE, IFVD, INCP, INPP, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD, UNFD, MLOCK

    See detailed descriptions for response codes here

    Delete All Enrollments

    curl -u "<apiKey>:<apiToken>" -X DELETE "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/enrollments/<userId>/all

    URL Parameters

    Parameter Type Description Required
    userId String The ID of the user True

    SUCC, MISP, UNFD, EMPF, MLOCK

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "responseCode":"SUCC"
    }
    

    The confidence scale is dependent on user enrollment profiles and developer activity.

    This endpoint verifies the voice of the user against their previous enrollments of the same phrase for the given userId

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, UNFD, EMPF

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "responseCode":"SUCC"
    }
    

    The confidence scale is dependent on user enrollment profiles and developer activity.

    This endpoint verifies the voice of the user against their previous enrollments of the same phrase for the given userId

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, UNFD

    See detailed descriptions for response codes here

    Verify a User's Face

    curl -u "<apiKey>:<apiToken>" -X POST \
      -F "userId=<userId>" \
      -F "video=@<video>" \
      "<Your API 2.0 Endpoint>/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",
      "status": 200,
      "faceConfidence": 94.0,
      "timeTaken": "6.055s",
      "responseCode":"SUCC"
    }
    

    This endpoint verifies the face of the user against previous enrollments for the given userId

    HTTP Request

    POST <Your API 2.0 Endpoint>/verification/face

    Request Parameters

    Parameter Type Description Required
    userId String The ID of the user 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

    SUCC, FAIL, MISP, FNFD, FTMF, UNFD, EMPF

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "status": 200,
      "faceConfidence": 94.0,
      "timeTaken": "6.055s",
      "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 <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, DDNE, IFVD, FTMF, FNFD

    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>" \
      "<Your API 2.0 Endpoint>/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>", true);
    
    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",
      "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 verifies the face and voice of the user against a their previous enrollments of the same phrase for the given userId

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD, EMPF

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "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 verifies the face and voice of the user against a their previous enrollments of the same phrase for the given userId

    HTTP Request

    POST <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "confidence": 96.00,
      "status": 200,
      "text": "never forget tomorrow is a new day",
      "textConfidence": 100.00,
      "timeTaken": "9.969s",
      "responseCode":"SUCC"
    }
    

    The confidence scale is dependent on user enrollment profiles and developer activity.

    This endpoint identifies the voice of the user amongst other users in the given group

    HTTP Request

    POST <Your API 2.0 Endpoint>/identification/voice

    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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, 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>" \
      "<Your API 2.0 Endpoint>/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",
      "confidence": 96.00,
      "status": 200,
      "text": "never forget tomorrow is a new day",
      "textConfidence": 100.00,
      "timeTaken": "9.969s",
      "responseCode":"SUCC"
    }
    

    The confidence scale is dependent on user enrollment profiles and developer activity.

    This endpoint identifies the voice of the user amongst other users in the given group

    HTTP Request

    POST <Your API 2.0 Endpoint>/identification/voice/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 verification True

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFAD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, GNFD

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "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 <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD, GNFD, EMPF

    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>" \
      "<Your API 2.0 Endpoint>/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",
      "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 <Your API 2.0 Endpoint>/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

    SUCC, FAIL, MISP, INCP, INPP, DDNE, IFVD, SRNR, SSTQ, SSTL, NEHSD, STTF, RWPU, FTMF, FNFD, GNFD

    See detailed descriptions for response codes here

    See detailed descriptions for response codes here

    Risk Thresholds

    We have modeled Risk Thresholds for video (face + voice biometrics) to allow for extended usability in low-quality audio or visual surroundings.

    Liveness Detection (available in the Android, iOS, and Web SDKs) is a key variable used in the calculation of Risk Thresholds.

    When Liveness Detection is enabled, we are able to lower the Risk Thresholds as the risk of a replay attack is exponentially lower.

    Other variables used to calculate Risk Thresholds include, but are not limited to: use case, confidence settings, channels used, etc...

    Replay Attacks

    Replay attacks are spoofing attempts that seek to gain unauthroized access by providing direct copies of media files that have been previously used for a successful authentication.

    Liveness detection is a feature that can be used before face and video verification/identification that increases protection against such an attack. It works by prompting the end user for randomized actions such as turning their head or smiling. This feature is directly built into our Android SDK, iOS SDK, and Web SDK.

    Sub-Accounts

    Create a Managed Sub-Account

    curl -u "<apiKey>:<apiToken>" -X POST -F "firstName=<firstName>" -F "lastName=<lastName>" -F "email=<email>" -F "contentLanguage=<contentLanguage>" "<Your API 2.0 Endpoint>/subaccount/managed"
    
    my_voiceit.create_managed_sub_account("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    myVoiceIt.createManagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    myVoiceIt.createManagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    myVoiceIt.CreateManagedSubAccount(structs.CreateSubAccountRequest{})
    
    myVoiceIt.createManagedSubAccount({
      firstName: '<firstName>',
      contentLanguage: '<contentLanguage>',
      lastName: '<lastName>',
      email: '<email>',
      password: '<password>',
    }, (jsonResponse)=>{
      //handle response
    });
    
    myVoiceIt.CreateManagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    <?php
    $myVoiceIt->createManagedSubAccount('<firstName>', '<lastName>', '<email>', '<password>', '<contentLanguage>');
    ?>
    
    $myVoiceIt->createManagedSubAccount('<firstName>', '<lastName>', '<email>', '<password>', '<contentLanguage>');
    
    myVoiceIt.CreateManagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    myVoiceIt.createManagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    &my_voiceit.create_managed_sub_account().unwrap("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>);
    

    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>",
      "emailValidationRequired": false,
      "contentLanguage": "<contentLanguage>",
      "type": "managed",
      "message": "Created new managed developer sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d",
      "email": "<email>",
      "reactivated": false,
      "responseCode": "SUCC",
      "status": 201
    }
    

    This endpoint creates a managed sub-account. All of the managed sub-account calls are billed through its master account. Premium features will available to the sub-account if the master account has the funds to cover it.

    Note, all arguments are optional. If left blank, VoiceIt will generate values for email, password, firstName and lastName using a secure pseudorandom algorithm. Pass arguments you do not want to define as empty strings.

    HTTP Request

    POST <Your API 2.0 Endpoint>/subaccount/managed

    Parameters

    No additional parameters needed for this request, just basic access authentication and a POST request to the end point.

    SUCC, EAEX

    See detailed descriptions for response codes here

    Create an Unmanaged Sub-Account

    curl -u "<apiKey>:<apiToken>" -X POST -F "firstName=<firstName>" -F "lastName=<lastName>" -F "email=<email>" -F "contentLanguage=<contentLanguage>" "<Your API 2.0 Endpoint>/subaccount/unmanaged"
    
    my_voiceit.create_unmanaged_sub_account("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    myVoiceIt.createUnmanagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    myVoiceIt.createUnmanagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    myVoiceIt.CreateUnmanagedSubAccount(structs.CreateSubAccountRequest{})
    
    myVoiceIt.createUnmanagedSubAccount({
      firstName: '<firstName>',
      contentLanguage: '<contentLanguage>',
      lastName: '<lastName>',
      email: '<email>',
      password: '<password>',
    }, (jsonResponse)=>{
      //handle response
    });
    
    myVoiceIt.CreateUnmanagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    <?php
    $myVoiceIt->createUnmanagedSubAccount('<firstName>', '<lastName>', '<email>', '<password>', '<contentLanguage>');
    ?>
    
    $myVoiceIt->createUnmanagedSubAccount('<firstName>', '<lastName>', '<email>', '<password>', '<contentLanguage>');
    
    myVoiceIt.CreateUnmanagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>");
    
    myVoiceIt.createUnmanagedSubAccount("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>")
    
    &my_voiceit.create_unmanaged_sub_account().unwrap("<firstName>", "<lastName>", "<email>", "<password>", "<contentLanguage>);
    

    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>",
      "emailValidationRequired": false,
      "contentLanguage": "<contentLanguage>",
      "type": "managed",
      "message": "Created new unmanaged developer sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d",
      "email": "<email>",
      "reactivated": false,
      "responseCode": "SUCC",
      "status": 201
    }
    

    This endpoint creates an unmanaged sub-account. Unmanaged sub-account calls are billed to their own accounts. Unmanage sub-accounts will to contact VoiceIt Support to enable account services and add funds in order to access premium features.

    Note, all arguments are optional. If left blank, VoiceIt will generate values for email, password, firstName and lastName using a secure pseudorandom algorithm. Pass arguments you do not want to define as empty strings.

    HTTP Request

    POST <Your API 2.0 Endpoint>/subaccount/unmanaged

    Parameters

    No additional parameters needed for this request, just basic access authentication and a POST request to the end point.

    SUCC, EAEX

    See detailed descriptions for response codes here

    Switch Sub-Account Type

    curl -u "<apiKey>:<apiToken>" -X POST "<Your API 2.0 Endpoint>/subaccount/<subAccountApiKey>/switchType"
    
    my_voiceit.switch_sub_account_type("<subAccountApiKey>")
    
    myVoiceIt.switchSubAccountType("<subAccountApiKey>");
    
    myVoiceIt.switchSubAccountType("<subAccountApiKey>")
    
    myVoiceIt.SwitchSubAccountType("<subAccountApiKey>")
    
    myVoiceIt.switchSubAccountType({
      subAccountApiKey :"<subAccountApiKey>"
    },(jsonResponse)=>{
      //handle response
    });
    
    myVoiceIt.SwitchSubAccountType("<subAccountApiKey>");
    
    <?php
    $myVoiceIt->switchSubAccountType("<subAccountApiKey>");
    ?>
    
    $myVoiceIt->switchSubAccountType("<subAccountApiKey>");
    
    myVoiceIt.SwitchSubAccountType("<subAccountApiKey>");
    
    myVoiceIt.switchSubAccountType("<subAccountApiKey>")
    
    &my_voiceit.switch_sub_account_type(String::from("<subAccountApiKey>")).unwrap();
    

    The above command returns JSON structured like this:

    {
      "message": "Switched developer sub-account with apiKey : key_f495ce605b58404b93cc491c7d6fe44d to <managed | unmanaged>",
      "timeTaken": "0.070s",
      "responseCode": "SUCC",
      "status": 201
    }
    

    This endpoint makes unmanaged sub-accounts managed, and managed sub-accounts unmanaged

    HTTP Request

    POST "<Your API 2.0 Endpoint>/subaccount/<subAccountApiKey>/switchType

    Parameters

    Parameter Type Description Required
    subAccountApiKey String The API Key of the account True

    SUCC

    See detailed descriptions for response codes here

    Delete a Specific Sub Account

    curl -u "<apiKey>:<apiToken>" -X DELETE "<Your API 2.0 Endpoint>/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 <Your API 2.0 Endpoint>/subaccount/<subAccountApiKey>

    URL Parameters

    Parameter Type Description Required
    subAccountApiKey String The API key of the sub-account True

    SUCC, SANF

    See detailed descriptions for response codes here

    Regenerate Sub Account API Token

    curl -u "<apiKey>:<apiToken>" -X POST "<Your API 2.0 Endpoint>/sub-account/<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",
      "message":  "Regenerated apiToken : <subAccountApiToken>  for developer sub-account with apiKey : <subAccountApiKey>",
      "responseCode": "SUCC",
      "status": 201
    }
    

    This endpoint creates a new API Token for a given sub-account.

    HTTP Request

    POST <Your API 2.0 Endpoint>/sub-account/<subAccountApiKey>

    Parameters

    Parameter Type Description Required
    subAccountApiKey String The API key of the sub-account True

    SUCC

    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 2.5 MB
    Images 2.5 MB
    Video 10 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
    No Speech To Textno-STT

    Content Languages with upcharge.

    Content Language Language
    Afrikaans (South Africa)af-ZA
    Amharic (Ethiopia)am-ET
    Arabic (United Arab Emirates)ar-AE
    Arabic (Bahrain)ar-BH
    Arabic (Algeria)ar-DZ
    Arabic (Egypt)ar-EG
    Arabic (Israel)ar-IL
    Arabic (Iraq)ar-IQ
    Arabic (Jordan)ar-JO
    Arabic (Kuwait)ar-KW
    Arabic (Lebanon)ar-LB
    Arabic (Morocco)ar-MA
    Arabic (Oman)ar-OM
    Arabic (State of Palestine)ar-PS
    Arabic (Qatar)ar-QA
    Arabic (Saudi Arabia)ar-SA
    Arabic (Tunisia)ar-TN
    Azerbaijani (Azerbaijan)az-AZ
    Bulgarian (Bulgaria)bg-BG
    Bengali (Bangladesh)bn-BD
    Bengali (India)bn-IN
    Catalan (Spain)ca-ES
    Chinese, Mandarin (Simplified, China)cmn-Hans-CN
    Chinese, Mandarin (Simplified, Hong Kong)cmn-Hans-HK
    Chinese, Mandarin (Traditional, Taiwan)cmn-Hant-TW
    Czech (Czech Republic)cs-CZ
    Danish (Denmark)da-DK
    German (Germany)de-DE
    Greek (Greece)el-GR
    English (Australia)en-AU
    English (Canada)en-CA
    English (United Kingdom)en-GB
    English (Ghana)en-GH
    English (Ireland)en-IE
    English (India)en-IN
    English (Kenya)en-KE
    English (Nigeria)en-NG
    English (New Zealand)en-NZ
    English (Philippines)en-PH
    English (Tanzania)en-TZ
    English (United States)en-US
    English (South Africa)en-ZA
    Spanish (Argentina)es-AR
    Spanish (Bolivia)es-BO
    Spanish (Chile)es-CL
    Spanish (Colombia)es-CO
    Spanish (Costa Rica)es-CR
    Spanish (Dominican Republic)es-DO
    Spanish (Ecuador)es-EC
    Spanish (Spain)es-ES
    Spanish (Guatemala)es-GT
    Spanish (Honduras)es-HN
    Spanish (Mexico)es-MX
    Spanish (Nicaragua)es-NI
    Spanish (Panama)es-PA
    Spanish (Peru)es-PE
    Spanish (Puerto Rico)es-PR
    Spanish (Paraguay)es-PY
    Spanish (El Salvador)es-SV
    Spanish (United States)es-US
    Spanish (Uruguay)es-UY
    Spanish (Venezuela)es-VE
    Basque (Spain)eu-ES
    Persian (Iran)fa-IR
    Finnish (Finland)fi-FI
    Filipino (Philippines)fil-PH
    French (Canada)fr-CA
    French (France)fr-FR
    Galician (Spain)gl-ES
    Gujarati (India)gu-IN
    Hebrew (Israel)he-IL
    Hindi (India)hi-IN
    Croatian (Croatia)hr-HR
    Hungarian (Hungary)hu-HU
    Armenian (Armenia)hy-AM
    Indonesian (Indonesia)id-ID
    Icelandic (Iceland)is-IS
    Italian (Italy)it-IT
    Japanese (Japan)ja-JP
    Javanese (Indonesia)jv-ID
    Georgian (Georgia)ka-GE
    Khmer (Cambodia)km-KH
    Kannada (India)kn-IN
    Korean (South Korea)ko-KR
    Lao (Laos)lo-LA
    Lithuanian (Lithuania)lt-LT
    Latvian (Latvia)lv-LV
    Malayalam (India)ml-IN
    Marathi (India)mr-IN
    Malay (Malaysia)ms-MY
    Norwegian Bokmal (Norway)nb-NO
    Nepali (Nepal)ne-NP
    Dutch (Netherlands)nl-NL
    Polish (Poland)pl-PL
    Portuguese (Brazil)pt-BR
    Portuguese (Portugal)pt-PT
    Romanian (Romania)ro-RO
    Russian (Russia)ru-RU
    Sinhala (Sri Lanka)si-LK
    Slovak (Slovakia)sk-SK
    Slovenian (Slovenia)sl-SI
    Serbian (Serbia)sr-RS
    Sundanese (Indonesia)su-ID
    Swedish (Sweden)sv-SE
    Swahili (Kenya)sw-KE
    Swahili (Tanzania)sw-TZ
    Tamil (India)ta-IN
    Tamil (Sri Lanka)ta-LK
    Tamil (Malaysia)ta-MY
    Tamil (Singapore)ta-SG
    Telugu (India)te-IN
    Thai (Thailand)th-TH
    Turkish (Turkey)tr-TR
    Ukrainian (Ukraine)uk-UA
    Urdu (India)ur-IN
    Urdu (Pakistan)ur-PK
    Vietnamese (Vietnam)vi-VN
    Chinese, Cantonese (Traditional, Hong Kong)yue-Hant-HK
    Zulu (South Africa)zu-ZA

    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)
    FBDN Forbidden, please make sure to only access the API via HTTPS
    CLNE Content language not enabled for free tier, only no-STT is available on the VoiceIt free tier plan
    ACLR API call limit reached
    ACTO API call timed out
    NSPE Enrollment not similar to previous enrollments
    EMNV Email not verified
    SANF Sub-account not found
    EAEX Email already exists in our system
    EMPF An empty file was passed when a non-empty file was expected
    MLOCK Your sandbox account has been locked from creating new data to prevent data drift during migration
    INVT Not a valid integer to use as a value for user token expiration time out
    Your sandbox account has been locked from creating new data to prevent data drift during migration

    Errors

    The VoiceIt API returns the following error codes:

    Error Code Meaning
    400 Bad Request -- Something is wrong with your request.
    401 Unauthorized -- Incorrect API key.
    403 Forbidden -- Access to the requested resource is forbidden.
    404 Not Found -- The user/group 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.
    }