Polski
Polski
Appearance
Polski
Polski
Appearance
REST API WallaWhats pozwala programowo zarządzać telefonami, subskrypcjami kont X oraz historią powiadomień — czyli dokładnie tym, co można zrobić z poziomu panelu.
https://api.wallawhats.comapplication/jsonKażde żądanie musi zawierać klucz API w nagłówku x-api-key:
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_00000000000000000000000000000000"Klucze tworzy się w panelu w Ustawienia → Klucze API lub przez POST /apikeys. Prefiks klucza zaczyna się od bws_ i ma 36 znaków. Klucze są pokazywane tylko raz, podczas tworzenia — jeśli zgubisz klucz, usuń go i utwórz nowy.
401 Unauthorized.| Plan | Dozwolone klucze |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 20 |
Próba utworzenia większej liczby kluczy niż dopuszcza plan zwraca 400 z "error": "api key limit reached".
Błędy zwracane są jako JSON z polem error oraz kodem statusu HTTP:
{ "error": "phoneNumber is required" }| Status | Znaczenie |
|---|---|
400 | Nieprawidłowe parametry, przekroczony limit lub naruszenie reguły biznesowej |
401 | Brakujący lub nieprawidłowy klucz API |
402 | Za mało środków, aby wykonać operację |
404 | Nie znaleziono zasobu |
500 | Błąd serwera — spróbuj ponownie z wykładniczym opóźnieniem |
lastKey.403 przy wzorcach nadużyć. Skontaktuj się z pomocą, jeśli doświadczasz nieoczekiwanego ograniczania.GET /user/profileZwraca profil uwierzytelnionego użytkownika.
Odpowiedź
{
"userId": "5a4cbd70-...",
"email": "jane@example.com",
"name": "Jane",
"plan": "pro_plus",
"createdAt": 1745000000000
}Przykład
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_..."Telefon to zweryfikowany numer WhatsApp, który może otrzymywać alerty. Numer trzeba zweryfikować przed przypisaniem do niego subskrypcji konta X.
POST /phonesGeneruje 6-cyfrowy kod i wysyła go na numer przez WhatsApp. Telefon jest tworzony w stanie pending_verification.
Żądanie
| Pole | Typ | Wymagane | Uwagi |
|---|---|---|---|
phoneNumber | string | tak | format E.164, np. +34612345678 |
displayName | string | nie | Czytelna etykieta wyświetlana w panelu |
Odpowiedź
{ "phoneNumber": "+34612345678", "status": "pending_verification" }Błędy
400 "invalid phone number format" — niezgodny z E.164400 "phone number limit reached" — przekroczony limit planu (Free/Pro/Pro+ 1, Business 3, Enterprise 10)Przykład
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/verifyPotwierdza telefon, wysyłając 6-cyfrowy kod. Kody wygasają po 15 minutach.
Żądanie
| Pole | Typ | Wymagane |
|---|---|---|
phoneNumber | string (E.164) | tak |
code | string (6 cyfr) | tak |
Odpowiedź
{ "phoneNumber": "+34612345678", "status": "verified" }Błędy
404 "phone not found"400 "invalid code" — nieprawidłowy kod400 "code expired" — starszy niż 15 minut400 "phone already verified"GET /phonesOdpowiedź
{
"phones": [
{
"phoneNumber": "+34612345678",
"status": "verified",
"displayName": "Work",
"createdAt": 1745000000000,
"verifiedAt": 1745000060000
}
],
"count": 1
}DELETE /phones/{phoneNumber}Usuwa telefon i dezaktywuje wszystkie subskrypcje, które go używały. Zakoduj + w URL jako %2B.
Odpowiedź
{ "success": true }Przykład
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
-H "x-api-key: bws_prod_..."Subskrypcja wiąże konto X, które chcesz monitorować, z jednym z Twoich zweryfikowanych telefonów. Gdy konto X publikuje, WallaWhats wysyła alert WhatsApp na ten telefon.
POST /subscriptionsŻądanie
| Pole | Typ | Wymagane | Uwagi |
|---|---|---|---|
xUsername | string | tak | 1–15 znaków, alfanumeryczne + podkreślenie. Prefiks @ jest akceptowany i usuwany. |
phoneNumber | string (E.164) | tak | Musi być jednym z Twoich zweryfikowanych telefonów. |
Odpowiedź
{
"xUsername": "elonmusk",
"xUserId": "44196397",
"xDisplayName": "Elon Musk",
"xProfileImage": "https://pbs.twimg.com/...",
"phoneNumber": "+34612345678",
"isActive": true,
"createdAt": 1745000000000
}Błędy
400 "invalid X username format" — niezgodny z wyrażeniem regularnym400 "phone not found" / "phone not verified"400 "subscription limit reached" — zobacz tabelę planów poniżej404 "X account not found" — nazwa użytkownika nie rozwiązuje się w XLimity planów
| Plan | Subskrypcje |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 50 |
GET /subscriptionsOdpowiedź
{
"subscriptions": [ /* ten sam kształt co odpowiedź POST /subscriptions */ ],
"count": 3
}DELETE /subscriptions/{xUsername}Dopasowanie xUsername bez rozróżniania wielkości liter. Przed wysłaniem usuń @.
Odpowiedź
{ "success": true }Każdy alert wysłany przez WallaWhats jest tutaj rejestrowany wraz ze statusem dostarczenia w WhatsApp.
GET /notificationsParametry zapytania
| Parametr | Typ | Opis |
|---|---|---|
from | number (ms epoch) | Filtruj powiadomienia utworzone w tym czasie lub później |
to | number (ms epoch) | Filtruj powiadomienia utworzone w tym czasie lub wcześniej |
lastKey | string | Kursor stronicowania zwrócony w poprzedniej odpowiedzi |
Odpowiedź
{
"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..."
}Możliwe wartości status: queued, sent, delivered, read, failed.
Rozmiar strony to 50. Gdy lastKey nie występuje, dotarłeś do końca.
Zarządzaj kluczami, których Twoje aplikacje używają do wywoływania tego API.
POST /apikeysŻądanie
| Pole | Typ | Wymagane |
|---|---|---|
name | string | nie, domyślnie "Default" |
Odpowiedź (201 Created)
{
"apiKey": "bws_prod_00000000000000000000000000000000",
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"expiresAt": 1776536000000
}Wartość widoczna raz
apiKey jest zwracany tylko podczas tworzenia. Natychmiast zapisz go w menedżerze sekretów. Kolejne wywołania ujawniają tylko keyPrefix.
GET /apikeysOdpowiedź
[
{
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"lastUsedAt": 1745086400000,
"expiresAt": 1776536000000
}
]DELETE /apikeys/{keyPrefix}Użyj 12-znakowego keyPrefix z odpowiedzi listującej — nigdy pełnego klucza.
Odpowiedź
{ "success": true }# 1. Utwórz klucz w panelu i wyeksportuj go
export WALLA_API_KEY="bws_prod_..."
# 2. Zarejestruj i zweryfikuj numer 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"}'
# -> telefon otrzymuje kod WhatsApp. Wyślij go:
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. Subskrybuj konto 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. Obserwuj napływające alerty
curl https://api.wallawhats.com/notifications \
-H "x-api-key: $WALLA_API_KEY"To wszystko — gdy konto X opublikuje post, alert trafi na telefon w około 10 sekund.
Pytania o API, zgłoszenia błędów lub prośby o zwiększenie limitów: otwórz zgłoszenie z zakładki Wsparcie w panelu lub napisz na hello@support.wallawhats.com.