Skip to content

API dokumentacija

WallaWhats REST API leidžia programiškai valdyti telefonus, X paskyrų prenumeratas ir pranešimų istoriją — lygiai tą patį, ką darytumėte skydelyje.

  • Bazinis URL: https://api.wallawhats.com
  • Content type: application/json
  • Autentifikavimas: API raktas (antraštė)
  • Versijavimas: API yra stabilus. Apie suderinamumą laužiančius pakeitimus pranešama likus 30 dienų el. paštu kiekvienai paskyrai.

Autentifikavimas

Kiekvienoje užklausoje turi būti API raktas antraštėje x-api-key:

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

Raktai kuriami skydelyje Settings → API Keys arba per POST /apikeys. Rakto priešdėlis prasideda bws_ ir yra 36 simbolių ilgio. Raktai rodomi tik vieną kartą, kūrimo metu — jei raktą prarandate, ištrinkite jį ir sukurkite naują.

Apimtis ir galiojimas

  • Raktas autentifikuoja vartotoją, kuris jį sukūrė. Jis turi tas pačias teises kaip tas vartotojas ir skaičiuojamas į to paties plano kvotas.
  • Raktai galioja 365 dienas. Atnaujinkite sukurdami naują raktą, perjunkdami ir ištrindami seną.
  • Trūkstamas, netinkamas ar atšauktas raktas grąžina 401 Unauthorized.

Plano ribos raktams

PlanasLeidžiami raktai
Free1
Pro1
Pro+2
Business5
Enterprise20

Bandymas sukurti daugiau, nei leidžia planas, grąžina 400 su "error": "api key limit reached".

Klaidos

Klaidos grąžinamos JSON formatu su lauku error ir HTTP būsenos kodu:

json
{ "error": "phoneNumber is required" }
BūsenaReikšmė
400Netinkami parametrai, viršyta kvota arba verslo taisyklės pažeidimas
401Trūkstamas arba netinkamas API raktas
402Neužtenka kreditų operacijai užbaigti
404Išteklius nerastas
500Serverio klaida — bandykite dar kartą naudodami eksponentinį atsitraukimą

Užklausų ribos

  • Numatytoji: 20 užklausų/sek. per API raktą, su viršūniniu srautu iki 40.
  • Sąrašo galutiniai taškai grąžina iki 50 elementų puslapyje; naudokite lastKey žymeklį puslapiavimui.
  • WAF taisyklės gali grąžinti 403 piktnaudžiavimo atvejais. Susisiekite su palaikymu, jei netikėtai susiduriate su greičio apribojimais.

User

Gaukite savo profilį

GET /user/profile

Grąžina autentifikuoto vartotojo profilį.

Atsakymas

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

Pavyzdys

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

Phones

Telefonas — tai patvirtintas WhatsApp numeris, galintis gauti pranešimus. Jūs turite patvirtinti telefoną, prieš prenumeruodami X paskyrą.

Užregistruokite telefoną

POST /phones

Sugeneruoja 6 skaitmenų kodą ir nusiunčia jį numeriui per WhatsApp. Telefonas sukuriamas būsenoje pending_verification.

Užklausa

LaukasTipasPrivalomasPastabos
phoneNumberstringtaipE.164 formatas, pvz., +34612345678
displayNamestringneDraugiška etiketė, rodoma skydelyje

Atsakymas

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

Klaidos

  • 400 "invalid phone number format" — ne E.164
  • 400 "phone number limit reached" — viršija plano leidžiamą (Free/Pro/Pro+ 1, Business 3, Enterprise 10)

Pavyzdys

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"}'

Patvirtinkite telefoną

POST /phones/verify

Patvirtina telefoną pateikus 6 skaitmenų kodą. Kodai baigiasi po 15 minučių.

Užklausa

LaukasTipasPrivalomas
phoneNumberstring (E.164)taip
codestring (6 skaitmenys)taip

Atsakymas

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

Klaidos

  • 404 "phone not found"
  • 400 "invalid code" — neteisingas kodas
  • 400 "code expired" — vyresnis nei 15 minučių
  • 400 "phone already verified"

Peržiūrėkite savo telefonus

GET /phones

Atsakymas

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

Ištrinkite telefoną

DELETE /phones/{phoneNumber}

Pašalina telefoną ir išjungia visas jam skirtas prenumeratas. URL kodu užkoduokite + kaip %2B.

Atsakymas

json
{ "success": true }

Pavyzdys

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

Subscriptions

Prenumerata susieja stebimą X paskyrą su vienu iš jūsų patvirtintų telefonų. Kai X paskyra paskelbia, WallaWhats siunčia WhatsApp pranešimą tam telefonui.

Sukurkite prenumeratą

POST /subscriptions

Užklausa

LaukasTipasPrivalomasPastabos
xUsernamestringtaip1–15 simbolių, raidinis-skaitmeninis + pabraukimas. @ priešdėlis priimamas ir pašalinamas.
phoneNumberstring (E.164)taipTuri būti vienas iš jūsų patvirtintų telefonų.

Atsakymas

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

Klaidos

  • 400 "invalid X username format" — regex nesutapo
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — žr. planų lentelę toliau
  • 404 "X account not found" — vartotojo vardas neatitinka nei vieno X

Plano ribos

PlanasPrenumeratos
Free1
Pro1
Pro+2
Business5
Enterprise50

Peržiūrėkite savo prenumeratas

GET /subscriptions

Atsakymas

json
{
  "subscriptions": [ /* tokia pati forma kaip POST /subscriptions atsakymas */ ],
  "count": 3
}

Ištrinkite prenumeratą

DELETE /subscriptions/{xUsername}

Nejautrus registrui atitikmuo laukui xUsername. Pašalinkite @ prieš siunčiant.

Atsakymas

json
{ "success": true }

Notifications

Kiekvienas WallaWhats pristatytas pranešimas fiksuojamas čia kartu su jo WhatsApp pristatymo būsena.

Peržiūrėkite pranešimus

GET /notifications

Užklausos parametrai

ParametrasTipasAprašymas
fromnumber (ms epoch)Filtruoti pranešimus, sukurtus šiuo metu ar vėliau
tonumber (ms epoch)Filtruoti pranešimus, sukurtus šiuo metu ar anksčiau
lastKeystringPuslapiavimo žymeklis, grąžintas ankstesnio atsakymo

Atsakymas

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

Galimos status reikšmės: queued, sent, delivered, read, failed.

Puslapio dydis — 50. Kai lastKey nėra, jūs pasiekėte pabaigą.


API keys

Valdykite raktus, kuriuos jūsų programos naudoja šiam API kviesti.

Sukurkite API raktą

POST /apikeys

Užklausa

LaukasTipasPrivalomas
namestringne, numatytasis "Default"

Atsakymas (201 Created)

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

Parodoma vieną kartą

apiKey grąžinama tik kūrimo metu. Nedelsdami išsaugokite jį savo slaptukų valdiklyje. Vėlesni iškvietimai atskleidžia tik keyPrefix.

Peržiūrėkite savo API raktus

GET /apikeys

Atsakymas

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

Ištrinkite API raktą

DELETE /apikeys/{keyPrefix}

Naudokite 12 simbolių keyPrefix iš sąrašo atsakymo — niekada viso rakto.

Atsakymas

json
{ "success": true }

Greitas startas

bash
# 1. Sukurkite raktą skydelyje ir eksportuokite jį
export WALLA_API_KEY="bws_prod_..."

# 2. Užregistruokite + patvirtinkite savo WhatsApp numerį
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"}'
# -> telefonas gauna WhatsApp kodą. Pateikite jį:
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. Prenumeruokite X paskyrą
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. Stebėkite, kaip plaukia pranešimai
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Tiek to — kai X paskyra paskelbs, pranešimas nukeliaus į telefoną maždaug per 10 sekundžių.

Palaikymas

API klausimai, klaidų pranešimai ar kvotos padidinimo užklausos: atidarykite bilietą savo skydelio Support skirtuke arba rašykite el. paštu hello@support.wallawhats.com.

WallaWhats Documentation