帳戶
餘額與成本估算
GET
/v1/balance當前餘額(美元)。
curl https://bulksmsapi.cc/v1/balance \
-H "Authorization: Bearer $BULKSMSAPI_KEY"const res = await fetch("https://bulksmsapi.cc/v1/balance", {
headers: { Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}` },
});
const { balance, currency } = await res.json();
console.log(balance, currency);import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/balance",
headers={"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"], "User-Agent": "northwind-app/1.0"},
)
with urllib.request.urlopen(req) as res:
print(json.load(res)["balance"])<?php
$ch = curl_init("https://bulksmsapi.cc/v1/balance");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("BULKSMSAPI_KEY")],
]);
echo json_decode(curl_exec($ch), true)["balance"], "\n";package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://bulksmsapi.cc/v1/balance", 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 b struct{ Balance, Currency string }
json.NewDecoder(res.Body).Decode(&b)
fmt.Println(b.Balance, b.Currency)
}{
"object": "balance",
"balance": "184.32950",
"currency": "USD"
}估算
POST
/v1/estimates使用與 POST /v1/batches 相同的主體,並返回其成本。不發送任何內容,也不收取任何費用。
curl https://bulksmsapi.cc/v1/estimates \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Doors open at 18:00 tonight.", "to": ["+14155550123", "+447400123456", "+447400123456", "12"]}'{
"object": "estimate",
"recipients": 2,
"set_aside": [
{ "to": "+447400123456", "reason": "duplicate" },
{ "to": "12", "reason": "invalid_number" }
],
"encoding": "GSM-7",
"segments": 2,
"max_segments": 1,
"cost": "0.01294",
"currency": "USD",
"by_country": [
{ "country": "US", "recipients": 1, "segments": 1, "cost": "0.00507" },
{ "country": "GB", "recipients": 1, "segments": 1, "cost": "0.00787" }
]
}餘額不足
成本超過餘額的請求將回應 402 top_up_required,並在訊息中包含兩個金額,且不發送任何內容。在發送大批次前檢查餘額,或先進行估算,並在控制台進行充值。