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/Pro+ 1, 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