Verify your users easily

Leave the heavy lifting to us and enjoy simplified, reliable phone number verification

Why IdentifyMe?

Guaranteed signup

We ensure OTP is delivered either by Call or SMS across the globe, even to DND numbers

Direct-login URL

A short URL accompanying the OTP allows users to quickly login even if the app is closed

E-mail verification

Verify Phone and Email together for a complete signup package

Robust infrastructure

Fault tolerant servers on the Cloud ensure uptime and scalability

Firewall protection

With the help of ReCaptcha, we prevent unwanted "send-OTP" requests from malicious bots

Data privacy

We are not an advertising company. No 3rd party gets to know who signed-up where

Quick integration

Takes less than 2 hours to integrate. Save development time for your core expertise

Customizable UI

Customize every inch of the verification screen by providing your own CSS


Make informed decisions with login and usage statistics available at your fingertips

You pay INR 0.18 for each verification

/ 1000 verifications
* currency conversion is approximate

We also offer APIs for missed call based OTP @ INR 0.06 per verification globally

Integrating popup based verification

  1. A user clicks on the login / sign-up button of your app to open up IdentifyMe's verification screen
  2. The user now enters a phone number and subsequently the OTP on the verification screen
  3. OTP is verified and the verification screen closes after sending an encrypted report (Base64 string) back to your app
  4. Your app receives the report and forwards it to your web server
  5. Your server cross-checks the report with IdentifyMe. On success, it authenticates the user
  • Include IdentifyMe's JS client library

    		<script src="" type="text/javascript"></script>
  • Create a login / signup button

    		<button id="login" onClick="login();">Login via Phone</button>
  • Create the required JS functions: login and myLoginReportHandler

    	/* The IdentifyMe client library exposes 2 methods: identifymeInit and checkReportOnLoad */
    	// This is called on the login button's onClick event
    	function login(){
    			clientId: XX,  // this is the clientId available in your dashboard
    			callback: myLoginReportHandler,
    			countryCode: YY,  // (optional) preset country code for the verification screen e.g. 91
    			phone: XXXXXXXXXX,  // (optional) preset phone for the verification screen
    	// This is called when the verification screen sends back the encrypted report
    	function myLoginReportHandler(report){
    		// Send the report to your backend and handle the response
    	// This is required to handle verification via short URL in SMS
    	(function() {
    			callback: myLoginReportHandler
  • Continue to Backend Integration
  • Native apps need to create a hyperlinked button that would open up the IdentifyMe verification screen in the default device browser
  • The hyperlink that you need to open is in the following format
    • A : (mandatory) this is the clientId available in your dashboard
    • B : (optional) preset country code for the verification screen e.g. 91
    • C : (optional) preset phone for the verification screen
    • D : (mandatory) redirectURI is the deeplink that your app registers with, to receive the encrypted report
      • For e.g if your app registers with the deeplink:
      • Set D as its URI component encoded value i.e. exapp%3A%2F%2Flogin%3F
      • The verification screen will then append the report to this deeplink and invoke your app
      • The final link that your app receives will look like: exapp://login?report=xxxxxxxxxxxx
      • Note: The report is URI component encoded when passed in the deeplink
    • E : (optional) to enable auto reading of OTP set autoRead to "1", default is "0"
    • F : (mandatory to enable auto reading)
      • Set requestId equal to a randomly generated UUID how?
      • Listen for incoming phone calls in your app how? (Android)
      • Once your app receives an incoming call, it must make a post request as follows

        	Request body:
        		clientId": XX,  // your clientId
        		requestId": "abc",  // the requestId you generated above
        		token": "YYYYYYYYYY",  // the incoming call's phone number read by your app
  • Once your app is invoked, it must parse the deeplink (redirectURI) to extract the report and subsequently send it to your backend server
  • Your server would then respond back with the session details
  • Continue to Backend Integration
  • Once your backend server receives the verification report from your frontend, it needs to cross-check the report with IdentifyMe
  • This is done by making an HTTPS POST call
    • Endpoint
    • Request headers

      content-type: application/json
    • Request body

      		report": "this is the encrypted report as received by your server",
      		clientSecret": "this is the clientSecret available in your dashboard"
    • If the report is valid, IdentifyMe will respond with an HTTP 200 status and the following JSON response body

      		isValid": true/false,  // if this is false, the verification did not succeed
      		countryCode": XX,  // user's country code e.g. 91
      		phone": YYYYYYYYYY,  // user's phone number
      		email": "",  // user's email address
      		emailVerified": true/false,  // has the user's email address been verified
      		generatedAt": xxxxxxxxxxxxx,  // UTC timestamp of report (in ms)
  • Your server must now perform the required database entry and session management operations using the response data
  • Example implementation

Contact us for assistance

  +91 8967224688 (Also available on WhatsApp)

Have a suggestion ? let us know