SMS API Comparisons

MSG91 vs StartMessaging: OTP API Compared

An honest comparison of MSG91 and StartMessaging for OTP verification in India. Pricing tiers, DLT handling, API simplicity, delivery rates, and support.

6 February 20269 min read

StartMessaging Team

Engineering

When Indian developers search for an OTP API, two names frequently come up: MSG91 and StartMessaging. Both are India-focused, both support INR billing, and both are designed for the Indian telecom landscape. But they differ significantly in pricing structure, DLT requirements, API design philosophy, and target audience. In this comparison, we break down the differences honestly to help you choose the right provider for your project.

Two India-Focused Providers

Unlike comparing an Indian provider with a global platform like Twilio (see our Twilio vs StartMessaging comparison), this matchup is between two services built for the Indian market. Both understand TRAI regulations, Indian carrier nuances, and the need for INR billing. The differences lie in approach and philosophy.

Company Background

MSG91

MSG91, operated by Walkover Web Solutions, has been in the Indian SMS market since 2010. It started as a bulk SMS provider and has expanded into a multi-channel communications platform offering SMS, email, voice, WhatsApp, and RCS. Its OTP product is part of a larger suite that includes a visual flow builder, segmentation tools, and campaign management. MSG91 serves enterprises and mid-market companies and has processed billions of messages.

StartMessaging

StartMessaging is a focused OTP API built specifically for developers. Rather than being a multi-channel platform, it does one thing: OTP verification for Indian phone numbers. This focus means a simpler API, faster setup, transparent pricing, and no features you do not need. It is designed for startups, indie developers, and SaaS companies that want reliable OTP without complexity.

Pricing Comparison

MSG91 uses a tiered pricing model where the per-SMS cost decreases as your volume increases. StartMessaging uses a flat rate regardless of volume.

Volume (per month)MSG91 Cost/SMSStartMessaging Cost/OTP
Up to 10,000~Rs 0.40-0.50Rs 0.25
10,001 - 100,000~Rs 0.25-0.35Rs 0.25
100,001 - 500,000~Rs 0.20-0.28Rs 0.25
500,001+~Rs 0.18-0.22Rs 0.25

Key takeaway: StartMessaging is cheaper for volumes up to about 200,000 OTPs per month. At very high volumes (500,000+), MSG91 may offer lower per-SMS rates through negotiated enterprise pricing. However, MSG91's pricing is not always transparent — the exact rate depends on your plan, negotiation, and commitment.

Total Cost at Different Scales

Monthly OTPsMSG91 (estimated)StartMessagingDifference
5,000Rs 2,250Rs 1,250Save Rs 1,000
25,000Rs 7,500Rs 6,250Save Rs 1,250
100,000Rs 25,000Rs 25,000Roughly equal
500,000Rs 1,00,000Rs 1,25,000MSG91 saves Rs 25,000

For the full StartMessaging pricing details, visit our pricing page.

DLT Handling

This is one of the most significant differences between the two providers.

MSG91 requires you to complete DLT registration. You need to register your entity on a DLT platform (Jio, Airtel, Vi, or BSNL), get your business approved, register sender IDs, and submit message templates for approval. MSG91 provides guidance and some tools to help with the process, but you are responsible for completing the registration yourself. The process typically takes 3-7 business days.

StartMessaging does not require you to register for DLT at all. We handle all DLT compliance internally using our pre-registered routes and templates. You sign up, get an API key, and start sending OTPs immediately. Learn more about our DLT-free OTP approach.

For startups and developers who want to ship fast, the DLT registration process can be a significant blocker. Even with MSG91's guidance, you still need to gather business documents, submit applications, and wait for approval before sending your first OTP.

API Simplicity and Integration

MSG91 has evolved over the years and now offers multiple products: SendOTP, Campaign, Flow, Segmento, and more. While this breadth is valuable for enterprises, it means the API and dashboard can feel complex for developers who just want to send OTPs.

MSG91's OTP API (SendOTP) requires:

  1. Creating an account and completing DLT registration
  2. Getting an authkey from the dashboard
  3. Configuring an OTP template (with DLT-approved template ID)
  4. Setting up sender ID, OTP length, and expiry
  5. Calling the send and verify endpoints

StartMessaging's API requires:

  1. Signing up and generating an API key
  2. Calling POST /otp/send with a phone number
  3. Calling POST /otp/verify with the request ID and OTP code

There is no template configuration, no sender ID setup, and no DLT linking. The API is designed to be as minimal as possible while still being production-ready.

Code Comparison

StartMessaging: Send OTP

const response = await fetch('https://api.startmessaging.com/otp/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sm_live_your_api_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    phoneNumber: '+919876543210',
  }),
});

const { data } = await response.json();
// data.requestId -> use for verification

MSG91: Send OTP

const response = await fetch(
  'https://control.msg91.com/api/v5/otp?' +
  new URLSearchParams({
    template_id: 'YOUR_DLT_TEMPLATE_ID',
    mobile: '919876543210',
    authkey: 'YOUR_AUTH_KEY',
    otp_length: '6',
    otp_expiry: '10',
  }),
  { method: 'POST' }
);

const data = await response.json();

StartMessaging: Verify OTP

const response = await fetch('https://api.startmessaging.com/otp/verify', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sm_live_your_api_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    requestId: 'req_abc123',
    otp: '482916',
  }),
});

const { data } = await response.json();
console.log(data.verified); // true

MSG91: Verify OTP

const response = await fetch(
  'https://control.msg91.com/api/v5/otp/verify?' +
  new URLSearchParams({
    mobile: '919876543210',
    otp: '482916',
    authkey: 'YOUR_AUTH_KEY',
  }),
  { method: 'POST' }
);

const data = await response.json();

Both APIs are functional, but StartMessaging uses a cleaner JSON body approach with standard Authorization headers rather than query parameters for authentication. StartMessaging also returns a requestId for tracking, which simplifies verification flows.

Feature-by-Feature Comparison

FeatureMSG91StartMessaging
OTP send + verifyYesYes
DLT registration requiredYesNo
Flat pricingNo (tiered)Yes (Rs 0.25)
INR billingYesYes
Prepaid walletYesYes
Minimum commitmentVaries by planNone
Setup time15-30 min + DLT<5 minutes
Multi-channel (email, voice, WhatsApp)YesNo (SMS OTP only)
Visual flow builderYesNo
Campaign managementYesNo
Idempotent OTP sendsLimitedYes (idempotencyKey)
Automatic provider fallbackVariesYes
Message logs and trackingYesYes
DashboardYes (feature-rich)Yes (focused)
Bulk SMSYesNo (OTP only)

Delivery Rates

Both MSG91 and StartMessaging achieve strong delivery rates across Indian carriers. MSG91 has years of experience and strong relationships with Indian telcos, achieving 96-98% delivery rates.

StartMessaging achieves 97-99% delivery rates by using a multi-provider fallback system. If the primary SMS provider fails to deliver, the system automatically retries through a secondary provider. This approach provides a slight edge in overall reliability.

For detailed carrier-specific information, see our guide on OTP delivery rates in India.

Documentation and Support

MSG91 has comprehensive documentation covering its full product suite, including Postman collections, SDKs for multiple languages, and integration guides. However, the breadth of products can make it harder to find exactly what you need for a simple OTP integration. Support is available via email, chat, and phone.

StartMessaging documentation is focused entirely on OTP. The API reference covers two endpoints with clear request and response examples. Because the product scope is narrow, the docs are straightforward and easy to navigate. Support is available via email and the dashboard.

Which Should You Choose?

Choose StartMessaging if:

  • You are a startup or developer who wants to ship OTP verification fast
  • You do not want to deal with DLT registration
  • You send fewer than 200,000 OTPs per month and want the simplest pricing
  • You value API simplicity and want to minimize integration effort
  • You only need SMS OTP for India (no bulk SMS, campaigns, or multi-channel)

Choose MSG91 if:

  • You need multi-channel messaging (email, voice, WhatsApp, RCS) in one platform
  • You send 500,000+ OTPs per month and need volume discounts
  • You want a visual flow builder to create complex messaging workflows
  • You need bulk SMS and campaign management alongside OTP
  • You have already completed DLT registration

For a broader comparison including Twilio, Exotel, and Kaleyra, read our best OTP API for India in 2026 guide. Ready to get started? Visit our pricing page or sign up at dashboard.startmessaging.com.

Ready to Send OTPs?

Integrate StartMessaging in 5 minutes. No DLT registration required.