Català
Català
Appearance
Català
Català
Appearance
L'API REST de WallaWhats us permet gestionar telèfons, subscripcions a comptes d'X i l'historial de notificacions de manera programàtica — exactament el que faríeu des del tauler.
https://api.wallawhats.comapplication/jsonTotes les peticions han d'incloure una clau d'API a la capçalera x-api-key:
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_00000000000000000000000000000000"Les claus es creen al tauler, a Configuració → Claus d'API, o mitjançant POST /apikeys. Un prefix de clau comença per bws_ i té 36 caràcters. Les claus només es mostren una vegada, en el moment de la creació — si en perdeu alguna, esborreu-la i creeu-ne una de nova.
401 Unauthorized.| Pla | Claus permeses |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 20 |
Intentar crear-ne més de les que permet el pla retorna 400 amb "error": "api key limit reached".
Els errors es retornen com a JSON amb un camp error i un codi d'estat HTTP:
{ "error": "phoneNumber is required" }| Estat | Significat |
|---|---|
400 | Paràmetres no vàlids, quota superada o violació de regla de negoci |
401 | Clau d'API absent o no vàlida |
402 | No hi ha prou crèdits per completar l'operació |
404 | Recurs no trobat |
500 | Error del servidor — torneu-ho a provar amb retrocés exponencial |
lastKey per paginar.403 en patrons abusius. Contacteu amb el suport si teniu limitacions de freqüència inesperades.GET /user/profileRetorna el perfil de l'usuari autenticat.
Resposta
{
"userId": "5a4cbd70-...",
"email": "jane@example.com",
"name": "Jane",
"plan": "pro_plus",
"createdAt": 1745000000000
}Exemple
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_..."Un telèfon és un número de WhatsApp verificat que pot rebre alertes. Cal verificar un telèfon abans de subscriure-hi un compte d'X.
POST /phonesGenera un codi de 6 dígits i l'envia al número per WhatsApp. El telèfon es crea en estat pending_verification.
Petició
| Camp | Tipus | Obligatori | Notes |
|---|---|---|---|
phoneNumber | string | sí | Format E.164, p. ex. +34612345678 |
displayName | string | no | Etiqueta descriptiva mostrada al tauler |
Resposta
{ "phoneNumber": "+34612345678", "status": "pending_verification" }Errors
400 "invalid phone number format" — no compleix E.164400 "phone number limit reached" — supera el límit del pla (Free/Pro/Pro+ 1, Business 3, Enterprise 10)Exemple
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/verifyConfirma un telèfon enviant el codi de 6 dígits. Els codis caduquen al cap de 15 minuts.
Petició
| Camp | Tipus | Obligatori |
|---|---|---|
phoneNumber | string (E.164) | sí |
code | string (6 dígits) | sí |
Resposta
{ "phoneNumber": "+34612345678", "status": "verified" }Errors
404 "phone not found"400 "invalid code" — codi incorrecte400 "code expired" — més de 15 minuts400 "phone already verified"GET /phonesResposta
{
"phones": [
{
"phoneNumber": "+34612345678",
"status": "verified",
"displayName": "Work",
"createdAt": 1745000000000,
"verifiedAt": 1745000060000
}
],
"count": 1
}DELETE /phones/{phoneNumber}Elimina el telèfon i desactiva qualsevol subscripció que l'utilitzés com a destí. Codifiqueu el + com a %2B a la URL.
Resposta
{ "success": true }Exemple
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
-H "x-api-key: bws_prod_..."Una subscripció enllaça un compte d'X que voleu monitorar amb un dels vostres telèfons verificats. Quan el compte d'X publica, WallaWhats envia una alerta de WhatsApp a aquest telèfon.
POST /subscriptionsPetició
| Camp | Tipus | Obligatori | Notes |
|---|---|---|---|
xUsername | string | sí | 1–15 caràcters, alfanumèrics i guió baix. S'accepta el prefix @ i s'elimina. |
phoneNumber | string (E.164) | sí | Ha de ser un dels vostres telèfons verificats. |
Resposta
{
"xUsername": "elonmusk",
"xUserId": "44196397",
"xDisplayName": "Elon Musk",
"xProfileImage": "https://pbs.twimg.com/...",
"phoneNumber": "+34612345678",
"isActive": true,
"createdAt": 1745000000000
}Errors
400 "invalid X username format" — no coincideix amb l'expressió regular400 "phone not found" / "phone not verified"400 "subscription limit reached" — vegeu la taula del pla més avall404 "X account not found" — el nom d'usuari no es resol a XLímits del pla
| Pla | Subscripcions |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 50 |
GET /subscriptionsResposta
{
"subscriptions": [ /* mateixa forma que la resposta de POST /subscriptions */ ],
"count": 3
}DELETE /subscriptions/{xUsername}Coincidència insensible a majúscules i minúscules a xUsername. Elimineu l'@ abans d'enviar.
Resposta
{ "success": true }Cada alerta que WallaWhats envia es registra aquí, juntament amb el seu estat de lliurament a WhatsApp.
GET /notificationsParàmetres de consulta
| Paràmetre | Tipus | Descripció |
|---|---|---|
from | number (ms epoch) | Filtra notificacions creades en aquest instant o després |
to | number (ms epoch) | Filtra notificacions creades en aquest instant o abans |
lastKey | string | Cursor de paginació retornat per la resposta anterior |
Resposta
{
"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..."
}Valors possibles de status: queued, sent, delivered, read, failed.
La mida de pàgina és 50. Quan lastKey no hi és, heu arribat al final.
Gestioneu les claus que les vostres aplicacions utilitzen per cridar aquesta API.
POST /apikeysPetició
| Camp | Tipus | Obligatori |
|---|---|---|
name | string | no, per defecte "Default" |
Resposta (201 Created)
{
"apiKey": "bws_prod_00000000000000000000000000000000",
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"expiresAt": 1776536000000
}Valor mostrat només una vegada
apiKey es retorna només en el moment de la creació. Deseu-la immediatament al vostre gestor de secrets. Les crides següents només exposen el keyPrefix.
GET /apikeysResposta
[
{
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"lastUsedAt": 1745086400000,
"expiresAt": 1776536000000
}
]DELETE /apikeys/{keyPrefix}Utilitzeu el keyPrefix de 12 caràcters de la resposta de la llista — mai la clau sencera.
Resposta
{ "success": true }# 1. Creeu una clau al tauler i exporteu-la
export WALLA_API_KEY="bws_prod_..."
# 2. Registreu i verifiqueu el vostre número de 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"}'
# -> el telèfon rep un codi de WhatsApp. Envieu-lo:
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. Subscriviu-vos a un compte d'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. Mireu com arriben les alertes
curl https://api.wallawhats.com/notifications \
-H "x-api-key: $WALLA_API_KEY"Ja està — quan el compte d'X publiqui, l'alerta arribarà al telèfon en uns 10 segons.
Preguntes sobre l'API, informes d'errors o sol·licituds d'increment de quota: obriu una sol·licitud des de la pestanya Suport del vostre tauler, o envieu un correu a hello@support.wallawhats.com.