SMS को अपग्रेड किया जा रहा है

उन डेवलपर्स के लिए SMS API जिन्हें वाकई शिप करना है।

इतने में सेट अप करें:
Cursor

150+ देश, 240 direct-to-carrier कनेक्शन, एक auth मॉडल। दुनिया के लगभग 40% कमर्शियल SMS वॉल्यूम Bird नेटवर्क से गुज़रता है — हम एक दशक से यह कर रहे हैं। 95% संदेश 2.5 सेकंड से कम में डिलीवर होते हैं।

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from:     "Bird",
  to:       "+15005550006",
  text:     `Your Bird verification code is ${code}. Reply STOP to opt out.`,
  category: "authentication",
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Today at 2:14 PM

Hey Ada — your Bird sign-in code is 482917. It'll expire in 10 minutes. Don't share it with anyone.
482917
Delivered

npm install से पहले send तक 5 मिनट

उसी भाषा से SMS भेजें जो आप पहले से इस्तेमाल करते हैं।

हर प्रमुख runtime में SDKs। पहला send एक मंज़ूरशुदा टेस्ट रिसीपिएंट (+15005550006) को जाता है, ताकि नंबर प्रोविज़न करने से पहले ही आप एक CI चेक शिप कर सकें।

1
2
3
4
5
6
7
8
9
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.sms.send({
  to:       "+15005550006",
  text:     "Hello from Node.",
  category: "transactional",
}).safe();

दस चीज़ें जो हम फ़ाइल करते हैं, कॉन्फ़िगर करते हैं, और रूट करते हैं ताकि आपको न करना पड़े।

रूटिंग, अनुपालन, और inbound प्रिमिटिव्स — नामित और ऑडिट-योग्य।

  1. 01

    150+ देश कवरेज

    एक एकीकृत API, एक बिलिंग रिश्ता — पीछा करने के लिए कोई per-region कॉन्ट्रैक्ट नहीं।

  2. 02

    240 direct-to-carrier लिंक

    बीच में कोई aggregator नहीं जो मार्जिन खाए या हमारे और MNO के बीच रसीदें गिराए।

  3. 03

    Operator-ग्रेड रूटिंग

    जब कोई carrier पथ खराब होता है तो रीयल-टाइम रूट री-सिलेक्शन; failover आपके ध्यान में आने से पहले हो जाता है।

  4. 04

    दो-तरफ़ा SMS inbound

    Inbound संदेश आपके प्रोविज़न किए नंबर पर HMAC-signed webhooks के रूप में आते हैं।

  5. 05

    हर तरह के नंबर

    Long codes, short codes, toll-free, और alphanumeric sender IDs — एक ही endpoint से प्रोविज़न किए गए।

  6. 06

    dashboard में A2P 10DLC

    Brand और campaign रजिस्ट्रेशन console में संभाला जाता है; स्टेटस API से क्वेरी किया जा सकता है।

  7. 07

    send से पहले MNP lookup

    हम हर send पर रिसीपिएंट का मौजूदा carrier हल कर लेते हैं ताकि रूट हमेशा सही हो।

  8. 08

    STOP / HELP अनुपालन

    Opt-out कीवर्ड हर रिसीपिएंट के लिए अपने आप माने जाते हैं; suppression list क्वेरी-योग्य है।

  9. 09

    webhooks के रूप में डिलीवरी रसीदें

    Every state transition fires a signed event — sms.accepted through sms.delivered or sms.failed.

  10. 10

    Segment और Unicode सुरक्षा

    SDK send से पहले segments गिनता है और उन encoding बदलावों पर चेतावनी देता है जो किसी संदेश को तोड़ देंगे।

SMS एक बड़े टूलकिट का एक चैनल है। Verifications के ज़रिए one-time passcodes से यूज़र्स को verify करें, Lookup के साथ send करने से पहले किसी नंबर का line type और carrier जाँचें, या RCS के ज़रिए उसी handset तक रिच कार्ड्स पहुँचाएँ।

हम SMS क्यों बनाते हैं

SMS एक झमेले वाला चैनल है। हमने वह API बनाई जो इसे उबाऊ बना देती है।

हर देश के अलग नियम हैं, हर carrier के अलग रूट हैं, हर क्षेत्र की अलग sender-ID परंपराएँ हैं। हम दस साल से SMS चला रहे हैं, इसलिए वह ज्ञान एक endpoint, एक auth मॉडल, एक webhook कॉन्ट्रैक्ट के पीछे रहता है। ऊपर चाहे जो भी बदले, bird.sms.send के ख़िलाफ़ आपने जो कॉल लिखी है वह नहीं बदलती।

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from:     "Bird",
  to:       "+15005550006",
  text:     `Your Bird verification code is ${code}. Reply STOP to opt out.`,
  category: "authentication",
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

हर state बदलाव एक webhook है।

HMAC-signed पेलोड, replay-protected, idempotent। हर Bird चैनल पर वही envelope — एक सीख लो, तो सब सीख लिए।

POST /webhooks/bird
signed
{
  "type": "sms.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "sms_id":       "sms_4kT01Lq2m",
    "workspace_id": "ws_8KQ2",
    "to":           "+15005550006",
    "from":         "Bird",
    "tags":         [{ "name": "campaign", "value": "otp" }],
    "metadata":     { "user_id": "usr_12345" },
    "carrier":      "Verizon",
    "mcc_mnc":      "311480"
  }
}

Retry शेड्यूल: 5s, 30s, 5m, 30m, 2h, 6h, 12h। आख़िरी प्रयास के बाद dead-letter; हर dead-lettered event dashboard या API से replay किया जा सकता है।

  • sms.acceptedAPI द्वारा स्वीकार किया गया और carrier हैंड-ऑफ़ के लिए queue किया गया।
  • sms.sentगंतव्य carrier के SMSC को सबमिट किया गया।
  • sms.deliveredcarrier से डिलीवरी रसीद मिली (DLR)।
  • sms.failedस्थायी विफलता — carrier अस्वीकृति, अमान्य नंबर, suppression हिट।
  • sms.receivedआपके किसी प्रोविज़न किए नंबर पर inbound संदेश।
  • sms.opted_outरिसीपिएंट ने STOP कीवर्ड भेजा; इस नंबर पर भविष्य के sends को suppress किया जाएगा।

अगर आपने SMS इंटीग्रेट किया है, तो आपने WhatsApp इंटीग्रेट कर लिया है।

वही auth मॉडल, वही idempotency कॉन्ट्रैक्ट, वही error envelope, वही webhook आकार। फ़र्क़ इसमें है कि हर एक क्या करता है, इसमें नहीं कि आप उसे कैसे कॉल करते हैं।

SMS

एक verb। सादा टेक्स्ट। numeric to/from। वही आकार जिसकी हर डेवलपर को पहले से आदत है।

otp.ts
await bird.sms.send({
  to:       "+15005550006",
  text:     `Your code is ${code}.`,
  category: "authentication",
});

WhatsApp

वही verb। अलग पेलोड — templated, opted-in, उस चैनल में जिसे दो अरब लोग रोज़ खोलते हैं।

otp.ts
await bird.whatsapp.send({
  from: "+15551234567",
  to:   "+15005550006",
  template: { name: "otp", variables: { code } },
});

SMS API FAQ

मैं अपना पहला SMS कितनी जल्दी भेज सकता हूँ?+
SDK इंस्टॉल करें और मंज़ूरशुदा टेस्ट रिसीपिएंट +15005550006 को लगभग पाँच मिनट में भेजें — नंबर प्रोविज़न करने से पहले ही आप एक CI चेक शिप कर सकते हैं।
Bird के SMS API में क्या-क्या शामिल है?+
एक send endpoint, दो-तरफ़ा inbound, नंबर प्रोविज़निंग (long codes, short codes, toll-free, और alphanumeric sender IDs), A2P 10DLC और opt-out अनुपालन, direct-to-carrier रूटिंग, और डिलीवरी analytics — सब कुछ एक ही API पर।
मैं किन देशों में भेज सकता हूँ?+
Bird 240 direct-to-carrier कनेक्शनों के ज़रिए 150+ देशों तक पहुँचता है, और जब कोई carrier पथ खराब होता है तो operator-ग्रेड रूट री-सिलेक्शन के साथ।
क्या आप STOP और HELP कीवर्ड संभालते हैं?+
हाँ, हर रिसीपिएंट के लिए अपने आप। STOP किसी रिसीपिएंट को opt-out कर देता है और उन्हें एक क्वेरी-योग्य suppression list में जोड़ देता है, HELP एक स्वतः help जवाब लौटाता है, और START उन्हें वापस opt-in कर देता है।
क्या मुझे A2P 10DLC के लिए रजिस्टर करना होगा?+
US नंबरों पर application-to-person ट्रैफ़िक भेजने के लिए, हाँ। Brand और campaign रजिस्ट्रेशन dashboard में संभाला जाता है, और स्टेटस API से क्वेरी किया जा सकता है।

मूल्य निर्धारण

प्रति segment एक सेंट से कम से लेकर कुछ सेंट तक

उपयोग और गंतव्य देश के आधार पर मूल्य तय होता है। पूरा प्रति-देश ग्रिड pricing पेज पर है, और वॉल्यूम डिस्काउंट account स्तर पर अपने आप लागू होते हैं। कोई प्लेटफ़ॉर्म फ़ीस नहीं, कोई seat फ़ीस नहीं, कोई tier फ़ीचर जो सालाना कमिटमेंट के पीछे बंद हो, नहीं।

उन टीमों द्वारा हर दिन भरोसा किया जाता है जो विश्व-स्तरीय सॉफ़्टवेयर बनाती हैं

एक चैनल से शुरुआत करें।
तैयार होने पर बाकी जोड़ें।

एक test API key तुरंत आपकी है। जब आप payment method जोड़ते हैं और sender verify करते हैं, तब production अनलॉक हो जाता है।

Claude Code, Cursor या Codex इस्तेमाल कर रहे हैं? एक setup prompt कॉपी करें और आपका agent आपके लिए Bird CLI और skills इंस्टॉल कर देगा। अपना चुनें:

Cursor