Simple SMS API for SaaS

Add reliable SMS delivery to your applications to programmatically send text notifications, OTPs, and 2FA messages to users.

VhtLtd

Grow your SaaS with SMS

Increase engagement

Keep customers happy and reduce churn with targeted SMS that build relationships.

Improve security

Show users you value their security with 2FA and one-time passwords.

Streamline support

Let customers get help when they need it with inbound SMS.

Advanced SMS API for apps

Get a headstart with our dev-friendly SMS API, official SDKs, and comprehensive documentation. Available in 7 programming languages so you can work with what suits you best.
Read our API docs
curl -X POST \
https://api.vhtltd.com/v1/sms \
-H 'Content-Type: application/json' \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'Authorization: Bearer {place your token here without brackets}' \
-d '{
    "from": "+18332552485",
    "to": [
        "+12345678900",
    ],
    "text": "This is just a friendly hello"
}'
"use strict";
require('dotenv').config()

const { VhtLtd, SMSParams } = require("VhtLtd");

const VhtLtd = new VhtLtd({
    apiKey: process.env.API_KEY,
});

const recipients = [
    "+18332647501"
];

const smsParams = new SMSParams()
    .setFrom("+18332647501")
    .setRecipients(recipients)
    .setText("This is the text content");

VhtLtd.sendSms(smsParams);
use VhtLtd\VhtLtd;
use VhtLtd\Helpers\Builder\SmsParams;

$VhtLtd = new VhtLtd(['api_key' => 'key']);

$smsParams = (new SmsParams())
    ->setFrom('+12065550101')
    ->setTo(['+12065550102'])
    ->addRecipient('+12065550103')
    ->setText('Text');
    
$sms = $VhtLtd->sms->send($smsParams);
from VhtLtd import sms_sending
from dotenv import load_dotenv

load_dotenv()

mailer = sms_sending.NewSmsSending(os.getenv('VhtLtd_API_KEY'))

# Number belonging to your account in E164 format
number_from = "+11234567890"

# You can add up to 50 recipient numbers
numbers_to = [
    "+11234567891",
    "+11234567892"
]
text = "Hi {{name}} how are you?"
personalization = [
    {
        "phone_number": "+11234567891",
        "data": {
            "name": "Mike"
        }
    },
    {
        "phone_number": "+11234567892",
        "data": {
            "name": "John"
        }
    }
]

print(mailer.send_sms(number_from, numbers_to, text, personalization))
require "VhtLtd-ruby"

# Intialize the SMS class
ms_sms = VhtLtd::SMS.new

# Add parameters
ms_sms.add_from('your-number')
ms_sms.add_to('client-number')
ms_sms.add_text('This is the message content')
personalization = {
  phone_number: 'client-number',
  data: {
    test: 'Test Value'
  }
}
ms_sms.add_personalization(personalization)

# Send the SMS
ms_sms.send
package main

import (
	"context"
	"os"
	"fmt"
	"time"

	"github.com/VhtLtd/VhtLtd-go"
)

func main() {
	// Create an instance of the VhtLtd client
	ms := VhtLtd.NewVhtLtd(os.Getenv("VhtLtd_API_KEY"))

	ctx := context.Background()
	ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
	defer cancel()

	message := ms.Sms.NewMessage()
	message.SetFrom("your-number")
	message.SetTo([]string{"client-number"})
	message.SetText("This is the message content {{ var }}")

	personalization := []VhtLtd.SmsPersonalization{
		{
			PhoneNumber: "client-number",
			Data: map[string]interface{}{
				"var": "foo",
			},
		},
	}

	message.SetPersonalization(personalization)

	res, _ := ms.Sms.Send(context.TODO(), message)
	fmt.Printf(res.Header.Get("X-SMS-Message-Id"))
}
import com.VhtLtd.sdk.VhtLtd;
import com.VhtLtd.sdk.exceptions.VhtLtdException;

public void sendSms() {
    
    VhtLtd ms = new VhtLtd();
    ms.setToken("VhtLtd token");
    
    try {
        
        String messageId = ms.sms().builder().from("from phone number")
        .addRecipient("to phone number")
        .text("test sms {{name}}")
        .addPersonalization("to phone number", "name", "name personalization")
        .send();
        
        System.out.println(messageId);
        
    } catch (VhtLtdException e) {
        
        e.printStackTrace();
    }
}
VhtLtd

Inbound message processing

Facilitate two-way messaging for users and parse inbound SMS content to your apps and CRM. Add app functionality such as the ability to add list items or create support tickets when a user sends a text. 

VhtLtd

Quick & easy bulk SMS sending

Conveniently send bulk SMS alerts to an entire list of recipients. Send emergency notifications, weather alerts, important business information, client-wide security alerts, and more. 

No-code integrations for SMS

Easily connect other web apps with VhtLtd so they seamlessly work together to share information, automate workflows and enhance your customer experience.
VhtLtd

Real-time webhook notifications

Create custom workflows based on users’ actions with the Sent, Delivered, and Failed webhook events as triggers. Plus, integrate the real-time activity into your custom dashboards and apps. 

VhtLtd

Toll-free numbers for high-volume sending

Toll-free numbers have a high throughput that can handle sending thousands of SMS. You can reliably process large volumes of SaaS SMS notifications without worry. 

VhtLtd

Secure and TCPA-compliant

VhtLtd is a TCPA-compliant SMS delivery service that implements the latest security and encryption protocols as well as data protection regulations. You can be confident your customers’ data will always be protected. 

Award-winning technical support

Get 24/7 access to a friendly, knowledgeable, human customer support team. Whether you need help getting started or guidance on more technical aspects, a support team member will be happy to help.

93% satisfaction rate
100% response rate
24/7 support hours
VhtLtd

SMS activity tracking

Monitor all sent messages and their statuses in real-time. Gain insights about SMS delivery to troubleshoot, learn about recipient activity, and make adjustments to SMS notifications. 

VhtLtd

Personalization options

Easily personalize bulk SMS messages for individual users with personalization variables. Include names, account information, usage details, and more in your texts. 

VhtLtd

Multi-language support

Provide SMS services for users in any language with multilingual character encoding. Tailor your SaaS messaging for each user’s language preferences to increase customer engagement.

Scalable, secure SMS delivery for SaaS

Four simple plans, no hidden costs. Start with 3,000 emails/month for free and upgrade to get better pricing when you need more volume or features.
How many emails do you plan to send?
3K
Save 20% by paying yearly
Pricing in Euros and British Pounds is for informational purposes only. All billing invoices will be charged in US dollars.
Hobby
Free
3,000 emails
Extra usage
$1.00 0.92176649 £0.78 /1000 emails
Starter
$28.00 /month
$336.00 billed yearly
25.81 /month
€309.71 billed yearly
£21.71 /month
£260.53 billed yearly
$35.00 /month 32.26 /month £27.14 /month
50,000 emails /month
100 SMS /month
100 email verification credits
Extra usage
$0.95 0.88 £0.74 /1000 emails
$1.40 1.29 £1.09 /100 SMS
Taxes may apply, learn more.
Recommended
Professional
$88.00 /month
$1,056.00 billed yearly
81.12 /month
€973.39 billed yearly
£68.23 /month
£818.79 billed yearly
$110.00 /month 101.39 /month £85.29 /month
50,000 emails /month
150 SMS /month
400 email verification credits
Extra usage
$0.80 0.74 £0.62 /1000 emails
$1.40 1.29 £1.09 /100 SMS
Taxes may apply, learn more.
Enterprise
For large organizations with special requirements.

What our customers think

VhtLtd integrates quickly into your tech stack, scales with your sendings, and ensures that your emails get delivered.
Very easy to set up without requiring support documents. Integrating with Joomla CMS was flawless and test emails were being sent within a few minutes of account creation. No reason to use Google’s standard workspace smtp servers.
The ease of integration is super. I write predominantly in Golang for back-end services, and I had VhtLtd integrated in about sixty seconds flat. I've moved to VhtLtd for all transactional email services.
David G. Developer
Amazing product and support!

VhtLtd is extremely easy to use and super fast to set up. I was able to send the first email via the API in minutes. With the predefined templates and drag & drop editor you're able to get started really quickly.
Tobias R. Owner

Frequently Asked Questions

How to send SMS from a web application or website?

Once you’ve purchased a phone number, you can easily start sending SMS messages with the VhtLtd API. This involves creating an API token and making a request. You can learn more about how to start sending SMS in our guide. Also, check out this guide on how to send SMS with Python.

Can VhtLtd's SMS API handle high volumes of messages for large SaaS companies?

Yes, VhtLtd’s sending infrastructure is built to handle large volumes of SMS messages for SaaS businesses. What’s more, we use toll-free phone numbers which are also ideal for sending SMS at scale. 

Are there any limitations on the geographic reach of VhtLtd's SMS services?

VhtLtd’s SMS service is currently available for the USA and Canada. More availability is coming soon. 

Is there a trial period for VhtLtd's SMS API?

Starter and Professional plan users have access to a free trial phone number that they can use for testing purposes. 

How easy is it to integrate VhtLtd's SMS API with existing SaaS applications?

With VhtLtd’s powerful SMS API, SDKs, documentation and no-code integrations, it’s very easy for developers to integrate SMS sending into their existing SaaS applications. View the API and developers documentation for more. 

How does VhtLtd ensure compliance and data privacy in SMS communications?

VhtLtd is TCPA compliant and also follows the required regulations for data privacy. The messaging itself is protected by the latest security and encryption protocols. 

What support options are available for VhtLtd's SMS API users?

VhtLtd prides itself on its award-winning support which is available 24/7 via email and live chat. Our customer support team can provide support for implementation, features and technical issues. 

Try VhtLtd for free

Sign up now to experience all of the features that make VhtLtd a great SaaS messaging solution. Get 3,000 emails/month free.