Add 2FA to Your Website

Using SMS, Phone or Email

The easiest way to add two-factor authentication; one simple API call, no complex setup, no monthly fees, and one low rate.

See Code Examples

Why Choose Add2FA?

๐Ÿš€ Simple Integration

One API endpoint is all you need. Generate and verify 2FA codes with minimal code.

๐Ÿ’ฐ Pay Per Use

Only 1.5ยข per 2FA verification for USA and Canada. No monthly fees, no hidden costs.

๐Ÿ“ฑ SMS & Voice

Support for SMS text messages, voice calls, and/or email for maximum compatibility.

๐Ÿ”’ Secure & Reliable

Customizable code expiration times, and multiple message templates to choose from.

โšก Fast Response

Instant code generation and delivery. Your users won't be waiting.

๐ŸŒ Global Reach

Worldwide service available at additional cost.

Implementation Examples

PHP Implementation

<?php // Generate 2FA code $response = file_get_contents("https://api.add2fa.com/auth?key=YOUR_KEY&type=sms&phonenum=17818640108&expire_minutes=5&message_text=1"); $data = json_decode($response, true); $generated_code = $data['code']; // Store code in session $_SESSION['2fa_code'] = $generated_code; $_SESSION['2fa_expires'] = time() + (5 * 60); // Verify user input if ($_POST['user_code'] == $_SESSION['2fa_code'] && time() < $_SESSION['2fa_expires']) { echo "2FA verified successfully!"; unset($_SESSION['2fa_code'], $_SESSION['2fa_expires']); } else { echo "Invalid or expired code."; } ?>

Python Implementation

import requests import time # Generate 2FA code response = requests.get("https://api.add2fa.com/auth", params={ "key": "YOUR_KEY", "type": "sms", "phonenum": "17818640108", "expire_minutes": 5, "message_text": 1 }) generated_code = response.json()['code'] # Store code and expiration stored_code = generated_code expires_at = time.time() + (5 * 60) # Verify user input user_code = input("Enter 2FA code: ") if user_code == stored_code and time.time() < expires_at: print("2FA verified successfully!") else: print("Invalid or expired code.")

JavaScript (Node.js) Implementation

const axios = require('axios'); // Generate 2FA code const response = await axios.get('https://api.add2fa.com/auth', { params: { key: 'YOUR_KEY', type: 'sms', phonenum: '17818640108', expire_minutes: 5, message_text: 1 } }); const generatedCode = response.data.code; // Store in session/memory req.session.twofa_code = generatedCode; req.session.twofa_expires = Date.now() + (5 * 60 * 1000); // Verify user input if (req.body.user_code === req.session.twofa_code && Date.now() < req.session.twofa_expires) { console.log("2FA verified successfully!"); delete req.session.twofa_code; delete req.session.twofa_expires; } else { console.log("Invalid or expired code."); }

Java Implementation

import java.net.http.*; import java.net.URI; import com.google.gson.Gson; // Generate 2FA code HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.add2fa.com/auth?key=YOUR_KEY&type=sms&phonenum=17818640108&expire_minutes=5&message_text=1")) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); Gson gson = new Gson(); Map<String, String> data = gson.fromJson(response.body(), Map.class); String generatedCode = data.get("code"); // Store code and expiration session.setAttribute("2fa_code", generatedCode); session.setAttribute("2fa_expires", System.currentTimeMillis() + (5 * 60 * 1000)); // Verify user input String userCode = request.getParameter("user_code"); if (userCode.equals(session.getAttribute("2fa_code")) && System.currentTimeMillis() < (Long)session.getAttribute("2fa_expires")) { System.out.println("2FA verified successfully!"); }

C# Implementation

using System; using System.Net.Http; using Newtonsoft.Json; // Generate 2FA code using var client = new HttpClient(); var response = await client.GetStringAsync( "https://api.add2fa.com/auth?key=YOUR_KEY&type=sms&phonenum=17818640108&expire_minutes=5&message_text=1" ); dynamic data = JsonConvert.DeserializeObject(response); string generatedCode = data.code; // Store in session Session["2fa_code"] = generatedCode; Session["2fa_expires"] = DateTime.Now.AddMinutes(5); // Verify user input string userCode = Request.Form["user_code"]; if (userCode == Session["2fa_code"].ToString() && DateTime.Now < (DateTime)Session["2fa_expires"]) { Response.Write("2FA verified successfully!"); Session.Remove("2fa_code"); Session.Remove("2fa_expires"); }

cURL Command

# Generate 2FA code curl "https://api.add2fa.com/auth?key=YOUR_KEY&type=sms&phonenum=17818640108&expire_minutes=5&message_text=1" # Response: { "success": true, "code": "123456", "message": "2FA code sent via SMS", "expires_in": 300 } # The returned code should be stored securely and compared # against user input within the expiration time

Simple, Transparent Pricing

No monthly fees. No setup costs. Just pay for what you use.

1.5ยข

per 2FA verification

Whether you send 10 codes or 10,000 codes per month, you only pay for successful deliveries. Volume discounts available for high-usage customers.

Get Started Today