Verify API
Request phone verification
Reduce fraudulent activity by validating that a user account is associated with a real person who has access to a valid phone number.
View Docs- Node.js
- C#
- PHP
- Ruby
- Python
- Java
- Curl
// Download the helper library from https://www.twilio.com/docs/node/install // Your Account Sid and Auth Token from twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const authToken = "your_auth_token"; const client = require("twilio")(accountSid, authToken); client.verify .services("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") .verifications.create({ to: "+15017122661", channel: "sms" }) .then((verification) => console.log(verification.status));
// Install the C# / .NET helper library from twilio.com/docs/csharp/install using System; using Twilio; using Twilio.Rest.Verify.V2.Service; class Program { static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var verification = VerificationResource.Create( to: "+15017122661", channel: "sms", pathServiceSid: "VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(verification.Status); } }
<?php // Update the path below to your autoload.php, // see https://getcomposer.org/doc/01-basic-usage.md require_once '/path/to/vendor/autoload.php'; use Twilio\Rest\Client; // Find your Account Sid and Auth Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure $sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; $token = "your_auth_token"; $twilio = new Client($sid, $token); $verification = $twilio->verify->v2->services("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") ->verifications ->create("+15017122661", "sms"); print($verification->status);
# Download the helper library from https://www.twilio.com/docs/ruby/install require 'rubygems' require 'twilio-ruby' # Your Account Sid and Auth Token from twilio.com/console # DANGER! This is insecure. See http://twil.io/secure account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' @client = Twilio::REST::Client.new(account_sid, auth_token) verification = @client.verify .services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') .verifications .create(to: '+15017122661', channel: 'sms') puts verification.status
# Download the helper library from https://www.twilio.com/docs/python/install from twilio.rest import Client # Your Account Sid and Auth Token from twilio.com/console # DANGER! This is insecure. See http://twil.io/secure account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' client = Client(account_sid, auth_token) verification = client.verify.services( 'VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ).verifications.create(to='+15017122661', channel='sms') print(verification.status)
// Install the Java helper library from twilio.com/docs/java/install import com.twilio.Twilio; import com.twilio.rest.verify.v2.service.Verification; public class Example { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure public static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; public static final String AUTH_TOKEN = "your_auth_token"; public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); Verification verification = Verification.creator( "VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "+15017122661", "sms") .create(); System.out.println(verification.getStatus()); } }
curl -X POST "https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Verifications" \ --data-urlencode "To=+15017122661" \ --data-urlencode "Channel=sms" \ -u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token
Verify the phone verification code
Reduce fraudulent activity by validating that a user account is associated with a real person who has access to a valid phone number.
View Docs- Node.js
- C#
- PHP
- Ruby
- Python
- Java
- Curl
// Download the helper library from https://www.twilio.com/docs/node/install // Your Account Sid and Auth Token from twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const authToken = "your_auth_token"; const client = require("twilio")(accountSid, authToken); client.verify .services("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") .verificationChecks.create({ to: "+15017122661", code: "123456" }) .then((verification_check) => console.log(verification_check.status));
// Install the C# / .NET helper library from twilio.com/docs/csharp/install using System; using Twilio; using Twilio.Rest.Verify.V2.Service; class Program { static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var verificationCheck = VerificationCheckResource.Create( to: "+15017122661", code: "123456", pathServiceSid: "VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(verificationCheck.Status); } }
<?php // Update the path below to your autoload.php, // see https://getcomposer.org/doc/01-basic-usage.md require_once '/path/to/vendor/autoload.php'; use Twilio\Rest\Client; // Find your Account Sid and Auth Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure $sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; $token = "your_auth_token"; $twilio = new Client($sid, $token); $verification_check = $twilio->verify->v2->services("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") ->verificationChecks ->create("123456", // code array("to" => "+15017122661") ); print($verification_check->status);
# Download the helper library from https://www.twilio.com/docs/ruby/install require 'rubygems' require 'twilio-ruby' # Your Account Sid and Auth Token from twilio.com/console # DANGER! This is insecure. See http://twil.io/secure account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' @client = Twilio::REST::Client.new(account_sid, auth_token) verification_check = @client.verify .services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') .verification_checks .create(to: '+15017122661', code: '123456') puts verification_check.status
# Download the helper library from https://www.twilio.com/docs/python/install from twilio.rest import Client # Your Account Sid and Auth Token from twilio.com/console # DANGER! This is insecure. See http://twil.io/secure account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' client = Client(account_sid, auth_token) verification_check = client.verify.services( 'VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ).verification_checks.create(to='+15017122661', code='123456') print(verification_check.status)
// Install the Java helper library from twilio.com/docs/java/install import com.twilio.Twilio; import com.twilio.rest.verify.v2.service.VerificationCheck; public class Example { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure public static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; public static final String AUTH_TOKEN = "your_auth_token"; public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); VerificationCheck verificationCheck = VerificationCheck.creator( "VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "123456") .setTo("+15017122661").create(); System.out.println(verificationCheck.getStatus()); } }
curl -X POST "https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/VerificationCheck" \ --data-urlencode "To=+15017122661" \ --data-urlencode "Code=123456" \ -u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token
The Twilio advantage
Communicate reliably
Experience a 99.95% uptime SLA made possible with automated failover and zero maintenance windows.
Operate at scale
Extend the same app you write once to new markets with configurable features for localization and compliance.
Many channels
Use the same platform you know for voice, SMS, video, chat, two-factor authentication, and more.
No shenanigans
Get to market faster with pay‑as‑you‑go pricing, free support, and the freedom to scale up or down without contracts.
Not ready yet? Talk to an expert