日本語
日本語
Appearance
日本語
日本語
Appearance
WallaWhats REST API を使うと、電話番号、X アカウントのサブスクリプション、通知履歴をプログラムから管理できます — ダッシュボードで行う操作とまったく同じことをコードから実行可能です。
https://api.wallawhats.comapplication/jsonすべてのリクエストは x-api-key ヘッダーに API キーを含める必要があります。
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_00000000000000000000000000000000"キーはダッシュボードの Settings → API Keys または POST /apikeys から作成できます。キーは bws_ で始まり、長さは 36 文字です。キーは作成時に一度だけ表示されます — 紛失した場合は削除して新しいキーを作成してください。
401 Unauthorized が返ります。| プラン | 作成可能なキー数 |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 20 |
プランの上限を超えて作成しようとすると、400 とともに "error": "api key limit reached" が返ります。
エラーは JSON 形式で返り、error フィールドと HTTP ステータスコードを含みます。
{ "error": "phoneNumber is required" }| ステータス | 意味 |
|---|---|
400 | パラメータが不正、割り当て超過、またはビジネスルール違反 |
401 | API キーが欠落または無効 |
402 | クレジット不足のため操作を完了できない |
404 | リソースが見つからない |
500 | サーバーエラー — 指数バックオフで再試行してください |
lastKey カーソルでページングしてください。403 を返すことがあります。想定外のレート制限を受けた場合はサポートへご連絡ください。GET /user/profile認証済みユーザーのプロフィールを返します。
レスポンス
{
"userId": "5a4cbd70-...",
"email": "jane@example.com",
"name": "Jane",
"plan": "pro_plus",
"createdAt": 1745000000000
}例
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_..."電話番号とは、アラートを受信できる認証済みの WhatsApp 番号です。X アカウントを購読する前に、電話番号を認証する必要があります。
POST /phones6 桁のコードを生成し、WhatsApp 経由でその番号に送信します。電話番号は pending_verification 状態で作成されます。
リクエスト
| フィールド | 型 | 必須 | 備考 |
|---|---|---|---|
phoneNumber | string | はい | E.164 形式、例: +34612345678 |
displayName | string | いいえ | ダッシュボードに表示される分かりやすいラベル |
レスポンス
{ "phoneNumber": "+34612345678", "status": "pending_verification" }エラー
400 "invalid phone number format" — E.164 形式でない400 "phone number limit reached" — プランの許容数を超過(Free/Pro/Pro+ は 1、Business は 3、Enterprise は 10)例
curl -X POST https://api.wallawhats.com/phones \
-H "x-api-key: bws_prod_..." \
-H "Content-Type: application/json" \
-d '{"phoneNumber": "+34612345678", "displayName": "Work"}'POST /phones/verify6 桁のコードを送信して電話番号を確定します。コードは 15 分で失効します。
リクエスト
| フィールド | 型 | 必須 |
|---|---|---|
phoneNumber | string(E.164) | はい |
code | string(6 桁) | はい |
レスポンス
{ "phoneNumber": "+34612345678", "status": "verified" }エラー
404 "phone not found"400 "invalid code" — コードが不一致400 "code expired" — 15 分を超過400 "phone already verified"GET /phonesレスポンス
{
"phones": [
{
"phoneNumber": "+34612345678",
"status": "verified",
"displayName": "Work",
"createdAt": 1745000000000,
"verifiedAt": 1745000060000
}
],
"count": 1
}DELETE /phones/{phoneNumber}電話番号を削除し、その番号を対象とするすべての購読を無効化します。+ は %2B に URL エンコードしてください。
レスポンス
{ "success": true }例
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
-H "x-api-key: bws_prod_..."サブスクリプションは、監視したい X アカウントと認証済みの電話番号を紐付けます。その X アカウントが投稿すると、WallaWhats はその電話番号に WhatsApp アラートを送ります。
POST /subscriptionsリクエスト
| フィールド | 型 | 必須 | 備考 |
|---|---|---|---|
xUsername | string | はい | 1〜15 文字、英数字とアンダースコア。@ プレフィックスは受理され、自動で削除されます。 |
phoneNumber | string(E.164) | はい | あなたの認証済み電話番号のいずれかを指定してください。 |
レスポンス
{
"xUsername": "elonmusk",
"xUserId": "44196397",
"xDisplayName": "Elon Musk",
"xProfileImage": "https://pbs.twimg.com/...",
"phoneNumber": "+34612345678",
"isActive": true,
"createdAt": 1745000000000
}エラー
400 "invalid X username format" — 正規表現に不一致400 "phone not found" / "phone not verified"400 "subscription limit reached" — 下記プラン表を参照404 "X account not found" — ユーザー名が X 上で解決できないプラン上限
| プラン | サブスクリプション数 |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 50 |
GET /subscriptionsレスポンス
{
"subscriptions": [ /* POST /subscriptions レスポンスと同じ構造 */ ],
"count": 3
}DELETE /subscriptions/{xUsername}xUsername は大文字小文字を区別しません。送信前に @ を削除してください。
レスポンス
{ "success": true }WallaWhats が配信した各アラートは、WhatsApp の配信ステータスとともにここに記録されます。
GET /notificationsクエリパラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
from | number(ミリ秒エポック) | この時刻以降に作成された通知に絞り込む |
to | number(ミリ秒エポック) | この時刻以前に作成された通知に絞り込む |
lastKey | string | 前回のレスポンスが返したページングカーソル |
レスポンス
{
"notifications": [
{
"notificationId": "a1b2c3d4-...",
"userId": "5a4cbd70-...",
"phoneNumber": "+34612345678",
"xUsername": "elonmusk",
"tweetId": "1797123456789000000",
"tweetText": "...",
"tweetUrl": "https://x.com/elonmusk/status/...",
"waMessageId": "wamid.HBgN...",
"status": "delivered",
"errorMessage": null,
"createdAt": 1745000000000,
"updatedAt": 1745000002000
}
],
"lastKey": "eyJOT1RJRklDQVRJT05fSUQi..."
}status が取りうる値: queued、sent、delivered、read、failed。
ページサイズは 50 です。lastKey が存在しない場合、末尾に到達しています。
この API を呼び出すアプリケーションが使用するキーを管理します。
POST /apikeysリクエスト
| フィールド | 型 | 必須 |
|---|---|---|
name | string | いいえ、デフォルトは "Default" |
レスポンス(201 Created)
{
"apiKey": "bws_prod_00000000000000000000000000000000",
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"expiresAt": 1776536000000
}一度きりの表示
apiKey は作成時のみ返されます。直ちにシークレットマネージャーへ保存してください。以降の呼び出しでは keyPrefix のみが公開されます。
GET /apikeysレスポンス
[
{
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"lastUsedAt": 1745086400000,
"expiresAt": 1776536000000
}
]DELETE /apikeys/{keyPrefix}リストレスポンスに含まれる 12 文字の keyPrefix を使用してください — 完全なキーは使わないでください。
レスポンス
{ "success": true }# 1. ダッシュボードでキーを作成し、エクスポートする
export WALLA_API_KEY="bws_prod_..."
# 2. WhatsApp 番号を登録・認証する
curl -X POST https://api.wallawhats.com/phones \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"+34612345678","displayName":"Mobile"}'
# -> 電話に WhatsApp コードが届きます。送信してください:
curl -X POST https://api.wallawhats.com/phones/verify \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"+34612345678","code":"123456"}'
# 3. X アカウントを購読する
curl -X POST https://api.wallawhats.com/subscriptions \
-H "x-api-key: $WALLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"xUsername":"elonmusk","phoneNumber":"+34612345678"}'
# 4. アラートの受信状況を確認する
curl https://api.wallawhats.com/notifications \
-H "x-api-key: $WALLA_API_KEY"以上です — X アカウントが投稿すると、およそ 10 秒以内にアラートが電話に届きます。
API に関する質問、バグ報告、上限引き上げのご依頼は、ダッシュボードの Support タブからチケットを作成するか、hello@support.wallawhats.com までメールでお問い合わせください。