アカウント
残高とコスト見積もり
GET
/v1/balance現在のUSD残高。
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/estimatesPOST /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で両金額を返し、何も送信されません。大規模なバッチの前に残高を確認するか、まず見積もりを取得し、コンソールでチャージしてください。