Skip to content

API Reference ​

Ang WallaWhats REST API ay nagbibigay-daan sa iyong pamahalaan ang mga telepono, X account subscriptions, at notification history nang programmatically — eksaktong ginagawa mo mula sa dashboard.

  • Base URL: https://api.wallawhats.com
  • Content type: application/json
  • Authentication: API key (header)
  • Versioning: stable ang API. Ang mga breaking change ay inaanunsyo 30 araw bago ipatupad sa pamamagitan ng email sa bawat account.

Authentication ​

Bawat request ay dapat may kasamang API key sa x-api-key header:

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_00000000000000000000000000000000"

Ang mga key ay ginagawa sa dashboard sa ilalim ng Settings → API Keys o sa pamamagitan ng POST /apikeys. Nagsisimula sa bws_ ang key prefix at 36 na character ang haba. Ang mga key ay ipinapakita isang beses lang, sa paggawa — kung mawala mo ito, i-delete at gumawa ng bago.

Scope at expiry ​

  • Ang key ay nag-a-authenticate bilang user na gumawa nito. Pareho ang permissions nito sa user na iyon at binibilang laban sa parehong plan quotas.
  • Ang mga key ay valid sa loob ng 365 araw. I-rotate sa pamamagitan ng paggawa ng bagong key, paglipat dito, at pag-delete ng luma.
  • Ang mga missing, malformed, o revoked na key ay nagbabalik ng 401 Unauthorized.

Plan limits sa mga key ​

PlanMga key na pinapayagan
Free1
Pro1
Pro+2
Business5
Enterprise20

Ang pagtatangkang gumawa ng higit sa pinapayagan ng iyong plan ay nagbabalik ng 400 na may "error": "api key limit reached".

Mga Error ​

Ang mga error ay ibinabalik bilang JSON na may error field at HTTP status code:

json
{ "error": "phoneNumber is required" }
StatusKahulugan
400Invalid na parameters, lumampas sa quota, o business-rule violation
401Nawawala o invalid na API key
402Hindi sapat ang credits para tapusin ang operasyon
404Hindi nakitang resource
500Server error — pakiulit gamit ang exponential backoff

Rate limits ​

  • Default: 20 requests/segundo kada API key, bursting hanggang 40.
  • Ang mga list endpoint ay nagbabalik ng hanggang 50 item bawat page; gamitin ang lastKey cursor para sa pagination.
  • Maaaring magbalik ang mga WAF rule ng 403 sa mga abusive pattern. Makipag-ugnayan sa support kung hindi inaasahang na-rate-limit ka.

User ​

Kunin ang iyong profile ​

GET /user/profile

Nagbabalik ng profile ng authenticated user.

Response

json
{
  "userId": "5a4cbd70-...",
  "email": "jane@example.com",
  "name": "Jane",
  "plan": "pro_plus",
  "createdAt": 1745000000000
}

Halimbawa

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_..."

Phones ​

Ang phone ay isang verified WhatsApp number na makakatanggap ng alerts. Kailangan mong i-verify ang telepono bago mag-subscribe ng X account dito.

Mag-register ng telepono ​

POST /phones

Bumubuo ng 6-digit code at ipinapadala ito sa numero sa pamamagitan ng WhatsApp. Ang telepono ay ginagawa sa pending_verification state.

Request

FieldTypeKailanganNotes
phoneNumberstringooE.164 format, hal. +34612345678
displayNamestringhindiFriendly label na ipinapakita sa dashboard

Response

json
{ "phoneNumber": "+34612345678", "status": "pending_verification" }

Mga Error

  • 400 "invalid phone number format" — hindi E.164
  • 400 "phone number limit reached" — lumampas sa allowance ng plan (Free/Pro 1, Pro+ 2, Business 3, Enterprise 10)

Halimbawa

bash
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: bws_prod_..." \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber": "+34612345678", "displayName": "Work"}'

I-verify ang telepono ​

POST /phones/verify

Kumukumpirma ng telepono sa pamamagitan ng pag-submit ng 6-digit code. Nag-e-expire ang mga code pagkatapos ng 15 minuto.

Request

FieldTypeKailangan
phoneNumberstring (E.164)oo
codestring (6 digits)oo

Response

json
{ "phoneNumber": "+34612345678", "status": "verified" }

Mga Error

  • 404 "phone not found"
  • 400 "invalid code" — maling code
  • 400 "code expired" — higit sa 15 minuto ang tanda
  • 400 "phone already verified"

Ilista ang iyong mga telepono ​

GET /phones

Response

json
{
  "phones": [
    {
      "phoneNumber": "+34612345678",
      "status": "verified",
      "displayName": "Work",
      "createdAt": 1745000000000,
      "verifiedAt": 1745000060000
    }
  ],
  "count": 1
}

I-delete ang isang telepono ​

DELETE /phones/{phoneNumber}

Inaalis ang telepono at dini-deactivate ang anumang subscriptions na naka-target dito. URL-encode ang + bilang %2B.

Response

json
{ "success": true }

Halimbawa

bash
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
  -H "x-api-key: bws_prod_..."

Subscriptions ​

Ang subscription ay nag-uugnay ng X account na gusto mong subaybayan sa isa sa iyong mga verified phones. Kapag nag-post ang X account, nagpapadala ang WallaWhats ng WhatsApp alert sa teleponong iyon.

Gumawa ng subscription ​

POST /subscriptions

Request

FieldTypeKailanganNotes
xUsernamestringoo1–15 chars, alphanumeric + underscore. Tinatanggap ang @ prefix at inaalis.
phoneNumberstring (E.164)ooDapat isa sa iyong mga verified phones.

Response

json
{
  "xUsername": "elonmusk",
  "xUserId": "44196397",
  "xDisplayName": "Elon Musk",
  "xProfileImage": "https://pbs.twimg.com/...",
  "phoneNumber": "+34612345678",
  "isActive": true,
  "createdAt": 1745000000000
}

Mga Error

  • 400 "invalid X username format" — regex fail
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — tingnan ang plan table sa ibaba
  • 404 "X account not found" — hindi nare-resolve ang username sa X

Plan limits

PlanSubscriptions
Free1
Pro1
Pro+2
Business5
Enterprise50

Ilista ang iyong subscriptions ​

GET /subscriptions

Response

json
{
  "subscriptions": [ /* same shape as POST /subscriptions response */ ],
  "count": 3
}

I-delete ang subscription ​

DELETE /subscriptions/{xUsername}

Case-insensitive ang match sa xUsername. Alisin ang @ bago ipadala.

Response

json
{ "success": true }

Notifications ​

Bawat alert na inihatid ng WallaWhats ay naka-log dito, kasama ang WhatsApp delivery status nito.

Ilista ang notifications ​

GET /notifications

Query parameters

ParamTypePaglalarawan
fromnumber (ms epoch)I-filter sa mga notification na nagawa sa o pagkatapos ng oras na ito
tonumber (ms epoch)I-filter sa mga notification na nagawa sa o bago ang oras na ito
lastKeystringPagination cursor na ibinalik ng nakaraang response

Response

json
{
  "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..."
}

Mga posibleng status values: queued, sent, delivered, read, failed.

Ang page size ay 50. Kapag wala ang lastKey, narating mo na ang dulo.


API keys ​

Pamahalaan ang mga key na ginagamit ng iyong mga application para tawagan ang API na ito.

Gumawa ng API key ​

POST /apikeys

Request

FieldTypeKailangan
namestringhindi, default sa "Default"

Response (201 Created)

json
{
  "apiKey": "bws_prod_00000000000000000000000000000000",
  "keyPrefix": "bws_prod_00",
  "keyName": "CI server",
  "createdAt": 1745000000000,
  "expiresAt": 1776536000000
}

Show-once value

Ang apiKey ay ibinabalik sa paggawa lamang. I-store ito agad sa iyong secrets manager. Ang mga kasunod na tawag ay naglalantad lamang ng keyPrefix.

Ilista ang iyong mga API key ​

GET /apikeys

Response

json
[
  {
    "keyPrefix": "bws_prod_00",
    "keyName": "CI server",
    "createdAt": 1745000000000,
    "lastUsedAt": 1745086400000,
    "expiresAt": 1776536000000
  }
]

I-delete ang API key ​

DELETE /apikeys/{keyPrefix}

Gamitin ang 12-character na keyPrefix mula sa list response — huwag kailanman ang buong key.

Response

json
{ "success": true }

Quickstart ​

bash
# 1. Gumawa ng key sa dashboard at i-export ito
export WALLA_API_KEY="bws_prod_..."

# 2. I-register + i-verify ang iyong WhatsApp number
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"}'
# -> ang telepono ay makakatanggap ng WhatsApp code. I-submit ito:
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. Mag-subscribe sa isang X account
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. Panoorin ang dating ng mga alert
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Iyan lang — kapag nag-post ang X account, dumarating ang alert sa telepono sa loob ng ~10 segundo.

Support ​

Mga tanong sa API, bug reports, o quota-increase requests: mag-open ng ticket mula sa Support tab sa iyong dashboard, o mag-email sa hello@support.wallawhats.com.

WallaWhats Documentation