পাঠানো
POST /v1/messages দিয়ে একটি SMS পাঠান
/v1/messagesএকটি নম্বরে একটি টেক্সট পাঠান। অনুরোধ গ্রহণ করা হলে খরচ ব্যালেন্স থেকে নেওয়া হয়।
অনুরোধ বডি
- tostringপ্রয়োজনীয়
আন্তর্জাতিক ফরম্যাটে নম্বর, উদাহরণস্বরূপ +14155550123। স্পেস, ড্যাশ, ব্র্যাকেট এবং 00 প্রিফিক্স পরিষ্কার করা হয়।
- textstringপ্রয়োজনীয়
মেসেজ। সর্বোচ্চ 10 সেগমেন্ট; টেক্সট এবং সেগমেন্ট দেখুন।
- referencestringঐচ্ছিক
আপনার নিজের আইডি, সর্বোচ্চ 100 অক্ষর। এটি মেসেজ অবজেক্ট এবং প্রতিটি ওয়েবহুকে ফিরে আসে।
- send_atstringঐচ্ছিক
পাঠানোর জন্য ISO 8601 সময়, 2 মিনিট থেকে 45 দিন আগে। এটি ছাড়া মেসেজ সঙ্গে সঙ্গে কিউ করা হয়।
রিট্রাই নিরাপদ করতে Idempotency-Key হেডার যোগ করুন: দেখুন Idempotency।
curl https://bulksmsapi.cc/v1/messages \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550123",
"text": "Your Northwind code is 482913. It expires in 10 minutes.",
"reference": "login-7781"
}'// Node.js 18 or newer (built-in fetch)
const res = await fetch("https://bulksmsapi.cc/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+14155550123",
text: "Your Northwind code is 482913. It expires in 10 minutes.",
reference: "login-7781",
}),
});
const message = await res.json();
console.log(res.status, message.id, message.status, message.price);# Python 3, standard library only
import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({
"to": "+14155550123",
"text": "Your Northwind code is 482913. It expires in 10 minutes.",
"reference": "login-7781",
}).encode(),
headers={
"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"],
"Content-Type": "application/json",
"User-Agent": "northwind-app/1.0",
},
method="POST",
)
with urllib.request.urlopen(req) as res:
message = json.load(res)
print(res.status, message["id"], message["status"], message["price"])<?php
// PHP 7.4 or newer with the curl extension
$ch = curl_init("https://bulksmsapi.cc/v1/messages");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BULKSMSAPI_KEY"),
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "+14155550123",
"text" => "Your Northwind code is 482913. It expires in 10 minutes.",
"reference" => "login-7781",
]),
]);
$message = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $message["id"], " ", $message["status"], "\n";// Go 1.20 or newer, standard library only
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
body, _ := json.Marshal(map[string]any{
"to": "+14155550123",
"text": "Your Northwind code is 482913. It expires in 10 minutes.",
"reference": "login-7781",
})
req, _ := http.NewRequest("POST", "https://bulksmsapi.cc/v1/messages", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("BULKSMSAPI_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var message map[string]any
json.NewDecoder(res.Body).Decode(&message)
fmt.Println(res.StatusCode, message["id"], message["status"], message["price"])
}{
"id": "msg_8F3K2Q9TZ1MX",
"object": "message",
"batch_id": "bat_4M7Q1X0PK2RS",
"to": "+14155550123",
"country": "US",
"text": "Your Northwind code is 482913. It expires in 10 minutes.",
"segments": 1,
"price": "0.00507",
"currency": "USD",
"status": "queued",
"error": null,
"reference": "login-7781",
"created_at": "2026-11-07T09:30:12.418Z",
"sent_at": null,
"done_at": null
}মেসেজ অবজেক্ট
ফিল্ডস
- idstring
মেসেজ আইডি, msg_ এর পরে 12 অক্ষর।
- objectstring
সর্বদা মেসেজ।
- batch_idstring
মেসেজ যে ব্যাচের অন্তর্গত (একটি একক মেসেজও একটি ব্যাচ পায়)।
- tostring
পরিষ্কার করার পরে E.164 ফরম্যাটে নম্বর।
- countrystring
নম্বরটি যে দেশের জন্য মূল্য নির্ধারণ করা হয়েছিল তার ISO 3166 কোড।
- textstring
পাঠানো টেক্সট, মার্জ ফিল্ড পূর্ণ।
- segmentsinteger
টেক্সট যে SMS সেগমেন্ট ব্যবহার করে তার সংখ্যা।
- pricestring
এই মেসেজের মূল্য USD এ, 5 দশমিক (প্রতি সেগমেন্টের মূল্য গুণ সেগমেন্ট)।
- currencystring
সর্বদা USD।
- statusstring
শিডিউলড, কিউড, সেন্ট, ডেলিভারড, ফেইলড বা ক্যান্সেলড।
- errorobject or null
ফেইলড বা ক্যান্সেলড মেসেজের জন্য: কোড এবং মেসেজ।
- referencestring or null
অনুরোধ থেকে আপনার নিজের রেফারেন্স।
- created_atstring
অনুরোধ গ্রহণ করা হলে (ISO 8601, UTC)।
- sent_atstring or null
মেসেজ নেটওয়ার্কে হস্তান্তর করা হলে।
- done_atstring or null
চূড়ান্ত অবস্থা (ডেলিভারড, ফেইলড বা ক্যান্সেলড) সেট করা হলে।
একটি মেসেজ পুনরুদ্ধার করুন
/v1/messages/{id}msg_ আইডি দ্বারা একটি মেসেজ। অন্যান্য অ্যাকাউন্টের মেসেজ 404 উত্তর দেয়।
curl https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX \
-H "Authorization: Bearer $BULKSMSAPI_KEY"const res = await fetch("https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX", {
headers: { Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}` },
});
const message = await res.json();
console.log(message.status, message.error);import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX",
headers={"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"], "User-Agent": "northwind-app/1.0"},
)
with urllib.request.urlopen(req) as res:
message = json.load(res)
print(message["status"], message["error"])<?php
$ch = curl_init("https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("BULKSMSAPI_KEY")],
]);
$message = json_decode(curl_exec($ch), true);
echo $message["status"], "\n";package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("BULKSMSAPI_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var message map[string]any
json.NewDecoder(res.Body).Decode(&message)
fmt.Println(message["status"], message["error"])
}মেসেজ তালিকা করুন
/v1/messagesঅ্যাকাউন্টের বার্তাগুলো, নতুন থেকে পুরানো।
কোয়েরি প্যারামিটার
- batch_idstringঐচ্ছিক
শুধুমাত্র এই bat_ ব্যাচের বার্তাগুলো।
- statusstringঐচ্ছিক
শিডিউলড, কিউড, সেন্ট, ডেলিভারড, ফেইলড বা ক্যান্সেলড।
- limitintegerঐচ্ছিক
1 থেকে 100, ডিফল্ট 20।
- starting_afterstringঐচ্ছিক
একটি msg_ আইডি: পৃষ্ঠাটি এর পর থেকে শুরু হবে। আগের পৃষ্ঠার শেষ আইডি ব্যবহার করুন।
curl "https://bulksmsapi.cc/v1/messages?status=failed&limit=50" \
-H "Authorization: Bearer $BULKSMSAPI_KEY"{
"object": "list",
"data": [ { "id": "msg_8F3K2Q9TZ1MX", "object": "message", "status": "failed", "...": "..." } ],
"has_more": false
}